diff --git a/packages/ui/src/hooks/useMiniChatKeyboardShortcuts.ts b/packages/ui/src/hooks/useMiniChatKeyboardShortcuts.ts index fdb8a815..4ba5d75d 100644 --- a/packages/ui/src/hooks/useMiniChatKeyboardShortcuts.ts +++ b/packages/ui/src/hooks/useMiniChatKeyboardShortcuts.ts @@ -17,6 +17,7 @@ export const useMiniChatKeyboardShortcuts = () => { const shortcutOverrides = useUIStore((state) => state.shortcutOverrides); const currentDirectory = useDirectoryStore((state) => state.currentDirectory); const activeProject = useProjectsStore((state) => state.getActiveProject()); + const openNewSessionDraft = useSessionUIStore((state) => state.openNewSessionDraft); React.useEffect(() => { const combo = (actionId: string) => getEffectiveShortcutCombo(actionId, shortcutOverrides); @@ -39,6 +40,17 @@ export const useMiniChatKeyboardShortcuts = () => { return; } + if (eventMatchesShortcut(event, combo('new_chat'))) { + event.preventDefault(); + openNewSessionDraft({ + selectedProjectId: activeProject?.id ?? null, + directoryOverride: currentDirectory || activeProject?.path || null, + preserveDirectoryOverride: Boolean(currentDirectory || activeProject?.path), + }); + focusChatInput(); + return; + } + if (eventMatchesShortcut(event, combo('open_model_selector'))) { event.preventDefault(); const { isModelSelectorOpen, setModelSelectorOpen } = useUIStore.getState(); @@ -90,5 +102,5 @@ export const useMiniChatKeyboardShortcuts = () => { window.addEventListener('keydown', handleKeyDown); return () => window.removeEventListener('keydown', handleKeyDown); - }, [activeProject?.id, activeProject?.path, currentDirectory, shortcutOverrides]); + }, [activeProject?.id, activeProject?.path, currentDirectory, openNewSessionDraft, shortcutOverrides]); };