mirror of
https://github.com/jeffvli/feishin.git
synced 2026-06-16 00:14:23 +02:00
add command palette to app menu
This commit is contained in:
@@ -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',
|
||||||
|
|||||||
Reference in New Issue
Block a user