From 66b27a9d82b1a15486308fd7ff713338011b24e9 Mon Sep 17 00:00:00 2001 From: Louis Knight-Webb Date: Tue, 24 Jun 2025 17:22:15 +0100 Subject: [PATCH] Task attempt 4f0da8cb-5ed9-4152-87e4-7232ed16b9c5 - Final changes --- frontend/src/components/tasks/TaskFormDialog.tsx | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/frontend/src/components/tasks/TaskFormDialog.tsx b/frontend/src/components/tasks/TaskFormDialog.tsx index a83074e9..87067ccb 100644 --- a/frontend/src/components/tasks/TaskFormDialog.tsx +++ b/frontend/src/components/tasks/TaskFormDialog.tsx @@ -132,6 +132,14 @@ export function TaskFormDialog({ // Handle keyboard shortcuts useEffect(() => { const handleKeyDown = (event: KeyboardEvent) => { + // ESC to close dialog (prevent it from reaching TaskDetailsPanel) + if (event.key === 'Escape') { + event.preventDefault() + event.stopPropagation() + handleCancel() + return + } + // Command/Ctrl + Enter to Create & Start (only in create mode) if ((event.metaKey || event.ctrlKey) && event.key === 'Enter') { if (!isEditMode && onCreateAndStartTask && title.trim() && !isSubmitting && !isSubmittingAndStart) { @@ -142,10 +150,10 @@ export function TaskFormDialog({ } if (isOpen) { - document.addEventListener('keydown', handleKeyDown) - return () => document.removeEventListener('keydown', handleKeyDown) + document.addEventListener('keydown', handleKeyDown, true) // Use capture phase to get priority + return () => document.removeEventListener('keydown', handleKeyDown, true) } - }, [isOpen, isEditMode, onCreateAndStartTask, title, isSubmitting, isSubmittingAndStart, handleCreateAndStart]) + }, [isOpen, isEditMode, onCreateAndStartTask, title, isSubmitting, isSubmittingAndStart, handleCreateAndStart, handleCancel]) return (