diff --git a/canvas/src/components/MissingKeysModal.tsx b/canvas/src/components/MissingKeysModal.tsx index 2c2a648e..f2a390e4 100644 --- a/canvas/src/components/MissingKeysModal.tsx +++ b/canvas/src/components/MissingKeysModal.tsx @@ -387,7 +387,6 @@ function AllKeysModal({ }) { const [entries, setEntries] = useState([]); const [globalError, setGlobalError] = useState(null); - const firstInputRef = useRef(null); useEffect(() => { if (!open) return; @@ -471,6 +470,15 @@ function AllKeysModal({ onKeysAdded(); }, [entries, onKeysAdded]); + // Focus trap: auto-focus first input when modal opens + useEffect(() => { + if (!open) return; + const timer = requestAnimationFrame(() => { + document.getElementById("missing-keys-title")?.focus(); + }); + return () => cancelAnimationFrame(timer); + }, [open]); + if (!open) return null; const allSaved = entries.length > 0 && entries.every((e) => e.saved); @@ -482,8 +490,8 @@ function AllKeysModal({ return (
{entry.saved && ( -