diff --git a/packages/ui/src/components/session/DirectoryTree.tsx b/packages/ui/src/components/session/DirectoryTree.tsx index 5c78b43e..44488c7f 100644 --- a/packages/ui/src/components/session/DirectoryTree.tsx +++ b/packages/ui/src/components/session/DirectoryTree.tsx @@ -815,13 +815,12 @@ export const DirectoryTree: React.FC = ({ value={newDirName} onChange={(e) => setNewDirName(e.target.value)} onKeyDown={(e) => { + e.stopPropagation(); if (e.key === 'Enter') { e.preventDefault(); - e.stopPropagation(); createDirectory(); } else if (e.key === 'Escape') { e.preventDefault(); - e.stopPropagation(); cancelCreatingDirectory(); } }} @@ -904,13 +903,12 @@ export const DirectoryTree: React.FC = ({ value={newDirName} onChange={(e) => setNewDirName(e.target.value)} onKeyDown={(e) => { + e.stopPropagation(); if (e.key === 'Enter') { e.preventDefault(); - e.stopPropagation(); createDirectory(); } else if (e.key === 'Escape') { e.preventDefault(); - e.stopPropagation(); cancelCreatingDirectory(); } }} diff --git a/packages/ui/src/components/session/NewWorktreeDialog.tsx b/packages/ui/src/components/session/NewWorktreeDialog.tsx index 7c4a0b88..f7f68b45 100644 --- a/packages/ui/src/components/session/NewWorktreeDialog.tsx +++ b/packages/ui/src/components/session/NewWorktreeDialog.tsx @@ -299,6 +299,10 @@ export function NewWorktreeDialog({ const existingBranchMobileListWrapperRef = React.useRef(null); const sourceBranchMobileListWrapperRef = React.useRef(null); + const stopDropdownTypeahead = React.useCallback((event: React.KeyboardEvent) => { + event.stopPropagation(); + }, []); + const findScrollableContainer = React.useCallback((startNode: HTMLElement | null): HTMLElement | null => { let node: HTMLElement | null = startNode; while (node && node !== document.body) { @@ -1600,6 +1604,7 @@ export function NewWorktreeDialog({ placeholder={t('session.newWorktree.searchBranches')} value={existingBranchQuery} onValueChange={setExistingBranchQuery} + onKeyDown={stopDropdownTypeahead} /> {isLoadingBranches ? ( @@ -1840,6 +1845,7 @@ export function NewWorktreeDialog({ placeholder={t('session.newWorktree.searchBranches')} value={sourceBranchQuery} onValueChange={setSourceBranchQuery} + onKeyDown={stopDropdownTypeahead} /> {isLoadingBranches ? ( diff --git a/packages/ui/src/components/views/git/BranchSelector.tsx b/packages/ui/src/components/views/git/BranchSelector.tsx index fa5e3b64..036bc112 100644 --- a/packages/ui/src/components/views/git/BranchSelector.tsx +++ b/packages/ui/src/components/views/git/BranchSelector.tsx @@ -189,6 +189,7 @@ export const BranchSelector: React.FC = ({ placeholder={t('gitView.branch.searchPlaceholder')} value={search} onValueChange={setSearch} + onKeyDown={stopDropdownTypeahead} /> - + event.stopPropagation()} + />