diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index ffe73bddb..cf597dc7b 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -371,6 +371,7 @@ }, "appMenu": { "collapseSidebar": "collapse sidebar", + "commandPalette": "open command palette", "expandSidebar": "expand sidebar", "goBack": "go back", "goForward": "go forward", diff --git a/src/renderer/features/titlebar/components/app-menu.tsx b/src/renderer/features/titlebar/components/app-menu.tsx index 82337c0ac..6d0ceba07 100644 --- a/src/renderer/features/titlebar/components/app-menu.tsx +++ b/src/renderer/features/titlebar/components/app-menu.tsx @@ -8,7 +8,7 @@ import packageJson from '../../../../../package.json'; import { ServerList } from '/@/renderer/features/servers/components/server-list'; 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 { Icon } from '/@/shared/components/icon/icon'; import { toast } from '/@/shared/components/toast/toast'; @@ -74,6 +74,7 @@ export const AppMenu = () => { const collapsed = useAppStore((state) => state.sidebar.collapsed); const privateMode = useAppStore((state) => state.privateMode); const { setPrivateMode, setSideBar } = useAppStoreActions(); + const { open: openCommandPalette } = useCommandPalette(); const handleBrowserDevTools = () => { browser?.devtools(); @@ -116,27 +117,15 @@ export const AppMenu = () => { const menuConfig: MenuItem[] = [ { - 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', + icon: 'search', + id: 'command-palette', + label: t('page.appMenu.commandPalette', { postProcess: 'sentenceCase' }), + onClick: openCommandPalette, + type: '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-0', + type: 'divider', }, { id: 'divider-1', @@ -213,6 +202,29 @@ export const AppMenu = () => { onClick: () => navigate(AppRoute.SETTINGS), 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', type: 'divider',