add command palette to app menu

This commit is contained in:
jeffvli
2025-12-03 14:53:44 -08:00
parent 75ef5995ea
commit b87d63ced9
2 changed files with 33 additions and 20 deletions
+1
View File
@@ -371,6 +371,7 @@
}, },
"appMenu": { "appMenu": {
"collapseSidebar": "collapse sidebar", "collapseSidebar": "collapse sidebar",
"commandPalette": "open command palette",
"expandSidebar": "expand sidebar", "expandSidebar": "expand sidebar",
"goBack": "go back", "goBack": "go back",
"goForward": "go forward", "goForward": "go forward",
@@ -8,7 +8,7 @@ import packageJson from '../../../../../package.json';
import { ServerList } from '/@/renderer/features/servers/components/server-list'; import { ServerList } from '/@/renderer/features/servers/components/server-list';
import { AppRoute } from '/@/renderer/router/routes'; import { AppRoute } from '/@/renderer/router/routes';
import { useAppStore, useAppStoreActions } from '/@/renderer/store'; import { useAppStore, useAppStoreActions, useCommandPalette } from '/@/renderer/store';
import { DropdownMenu, MenuItemProps } from '/@/shared/components/dropdown-menu/dropdown-menu'; import { DropdownMenu, MenuItemProps } from '/@/shared/components/dropdown-menu/dropdown-menu';
import { Icon } from '/@/shared/components/icon/icon'; import { Icon } from '/@/shared/components/icon/icon';
import { toast } from '/@/shared/components/toast/toast'; import { toast } from '/@/shared/components/toast/toast';
@@ -74,6 +74,7 @@ export const AppMenu = () => {
const collapsed = useAppStore((state) => state.sidebar.collapsed); const collapsed = useAppStore((state) => state.sidebar.collapsed);
const privateMode = useAppStore((state) => state.privateMode); const privateMode = useAppStore((state) => state.privateMode);
const { setPrivateMode, setSideBar } = useAppStoreActions(); const { setPrivateMode, setSideBar } = useAppStoreActions();
const { open: openCommandPalette } = useCommandPalette();
const handleBrowserDevTools = () => { const handleBrowserDevTools = () => {
browser?.devtools(); browser?.devtools();
@@ -116,27 +117,15 @@ export const AppMenu = () => {
const menuConfig: MenuItem[] = [ const menuConfig: MenuItem[] = [
{ {
condition: privateMode, icon: 'search',
id: 'private-mode-off', id: 'command-palette',
item: { label: t('page.appMenu.commandPalette', { postProcess: 'sentenceCase' }),
icon: 'lock', onClick: openCommandPalette,
iconColor: 'error', type: 'item',
label: t('page.appMenu.privateModeOff', { postProcess: 'sentenceCase' }),
onClick: handlePrivateModeOff,
type: 'item',
},
type: 'conditional-item',
}, },
{ {
condition: !privateMode, id: 'divider-0',
id: 'private-mode-on', type: 'divider',
item: {
icon: 'lockOpen',
label: t('page.appMenu.privateModeOn', { postProcess: 'sentenceCase' }),
onClick: handlePrivateModeOn,
type: 'item',
},
type: 'conditional-item',
}, },
{ {
id: 'divider-1', id: 'divider-1',
@@ -213,6 +202,29 @@ export const AppMenu = () => {
onClick: () => navigate(AppRoute.SETTINGS), onClick: () => navigate(AppRoute.SETTINGS),
type: 'item', type: 'item',
}, },
{
condition: privateMode,
id: 'private-mode-off',
item: {
icon: 'lock',
iconColor: 'error',
label: t('page.appMenu.privateModeOff', { postProcess: 'sentenceCase' }),
onClick: handlePrivateModeOff,
type: 'item',
},
type: 'conditional-item',
},
{
condition: !privateMode,
id: 'private-mode-on',
item: {
icon: 'lockOpen',
label: t('page.appMenu.privateModeOn', { postProcess: 'sentenceCase' }),
onClick: handlePrivateModeOn,
type: 'item',
},
type: 'conditional-item',
},
{ {
id: 'divider-4', id: 'divider-4',
type: 'divider', type: 'divider',