feat: add desktop quick open workflow (#925)
Introduce a dedicated Quick Open dialog, wire it to Cmd+P and the macOS app menu, and show file-type icons in quick-open results so file navigation matches the rest of the app.
This commit is contained in:
@@ -18,6 +18,7 @@ export const useKeyboardShortcuts = () => {
|
||||
const currentSessionId = useSessionUIStore((s) => s.currentSessionId);
|
||||
const abortCurrentOperation = sessionActions.abortCurrentOperation;;
|
||||
const toggleCommandPalette = useUIStore((s) => s.toggleCommandPalette);
|
||||
const setQuickOpenOpen = useUIStore((s) => s.setQuickOpenOpen);
|
||||
const toggleHelpDialog = useUIStore((s) => s.toggleHelpDialog);
|
||||
const toggleSidebar = useUIStore((s) => s.toggleSidebar);
|
||||
const toggleRightSidebar = useUIStore((s) => s.toggleRightSidebar);
|
||||
@@ -61,6 +62,12 @@ export const useKeyboardShortcuts = () => {
|
||||
return;
|
||||
}
|
||||
|
||||
if (eventMatchesShortcut(e, combo('open_quick_open'))) {
|
||||
e.preventDefault();
|
||||
setQuickOpenOpen(true);
|
||||
return;
|
||||
}
|
||||
|
||||
if (eventMatchesShortcut(e, combo('open_status'))) {
|
||||
e.preventDefault();
|
||||
void showOpenCodeStatus();
|
||||
@@ -414,6 +421,7 @@ export const useKeyboardShortcuts = () => {
|
||||
openNewSessionDraft,
|
||||
abortCurrentOperation,
|
||||
toggleCommandPalette,
|
||||
setQuickOpenOpen,
|
||||
toggleHelpDialog,
|
||||
toggleSidebar,
|
||||
toggleRightSidebar,
|
||||
|
||||
@@ -29,6 +29,7 @@ type MenuAction =
|
||||
| 'about'
|
||||
| 'settings'
|
||||
| 'command-palette'
|
||||
| 'quick-open'
|
||||
| 'new-session'
|
||||
| 'new-worktree-session'
|
||||
| 'change-workspace'
|
||||
@@ -50,6 +51,7 @@ export const useMenuActions = (
|
||||
) => {
|
||||
const openNewSessionDraft = useSessionUIStore((s) => s.openNewSessionDraft);
|
||||
const toggleCommandPalette = useUIStore((s) => s.toggleCommandPalette);
|
||||
const setQuickOpenOpen = useUIStore((s) => s.setQuickOpenOpen);
|
||||
const toggleHelpDialog = useUIStore((s) => s.toggleHelpDialog);
|
||||
const toggleSidebar = useUIStore((s) => s.toggleSidebar);
|
||||
const setSessionSwitcherOpen = useUIStore((s) => s.setSessionSwitcherOpen);
|
||||
@@ -139,6 +141,10 @@ export const useMenuActions = (
|
||||
toggleCommandPalette();
|
||||
break;
|
||||
|
||||
case 'quick-open':
|
||||
setQuickOpenOpen(true);
|
||||
break;
|
||||
|
||||
case 'new-session':
|
||||
setActiveMainTab('chat');
|
||||
setSessionSwitcherOpen(false);
|
||||
@@ -227,6 +233,7 @@ export const useMenuActions = (
|
||||
setAboutDialogOpen,
|
||||
setActiveMainTab,
|
||||
setSessionSwitcherOpen,
|
||||
setQuickOpenOpen,
|
||||
setSettingsDialogOpen,
|
||||
setThemeMode,
|
||||
toggleCommandPalette,
|
||||
|
||||
Reference in New Issue
Block a user