diff --git a/src/renderer/components/AllChangesDiffModal.tsx b/src/renderer/components/AllChangesDiffModal.tsx index 110d7bfc..05898952 100644 --- a/src/renderer/components/AllChangesDiffModal.tsx +++ b/src/renderer/components/AllChangesDiffModal.tsx @@ -55,6 +55,16 @@ export const AllChangesDiffModal: React.FC = ({ const editorRefs = useRef>(new Map()); const changeDisposables = useRef>(new Map()); + // Close on escape key + useEffect(() => { + if (!open) return; + const handleKeyDown = (e: KeyboardEvent) => { + if (e.key === 'Escape') onClose(); + }; + document.addEventListener('keydown', handleKeyDown); + return () => document.removeEventListener('keydown', handleKeyDown); + }, [open, onClose]); + const updateFileData = (filePath: string, updater: (data: FileDiffData) => FileDiffData) => { setFileData((prev) => { const existing = prev.get(filePath); diff --git a/src/renderer/components/ChangesDiffModal.tsx b/src/renderer/components/ChangesDiffModal.tsx index 9d2f4de2..06826d73 100644 --- a/src/renderer/components/ChangesDiffModal.tsx +++ b/src/renderer/components/ChangesDiffModal.tsx @@ -79,6 +79,16 @@ export const ChangesDiffModal: React.FC = ({ const [isSaving, setIsSaving] = useState(false); const [saveError, setSaveError] = useState(null); + // Close on escape key + useEffect(() => { + if (!open) return; + const handleKeyDown = (e: KeyboardEvent) => { + if (e.key === 'Escape') onClose(); + }; + document.addEventListener('keydown', handleKeyDown); + return () => document.removeEventListener('keydown', handleKeyDown); + }, [open, onClose]); + // Load file data when selected file changes useEffect(() => { if (!open || !selected || !safeTaskPath) {