diff --git a/packages/onboarding-ui/src/wavex-os/components/ConfirmResetModal.tsx b/packages/onboarding-ui/src/wavex-os/components/ConfirmResetModal.tsx index ea4b5bf..0c124d7 100644 --- a/packages/onboarding-ui/src/wavex-os/components/ConfirmResetModal.tsx +++ b/packages/onboarding-ui/src/wavex-os/components/ConfirmResetModal.tsx @@ -10,7 +10,7 @@ * for the advanced option, or use the legacy explicit affordance from * the welcome screen. */ -import { useState } from "react"; +import { useState, useEffect } from "react"; interface Props { companyId: string; @@ -24,6 +24,17 @@ interface Props { export function ConfirmResetModal({ companyId, busy, onCancel, onConfirm }: Props) { const [showAdvanced, setShowAdvanced] = useState(false); + useEffect(() => { + const handleEscape = (e: KeyboardEvent) => { + if (e.key === 'Escape' && !busy) { + e.preventDefault(); + onCancel(); + } + }; + window.addEventListener('keydown', handleEscape); + return () => window.removeEventListener('keydown', handleEscape); + }, [busy, onCancel]); + return (