mirror of
https://github.com/jeffvli/feishin.git
synced 2026-05-09 20:29:36 +02:00
add manage servers item to app menu
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
import { openModal } from '@mantine/modals';
|
||||||
import isElectron from 'is-electron';
|
import isElectron from 'is-electron';
|
||||||
import { Fragment, ReactNode } from 'react';
|
import { Fragment, ReactNode } from 'react';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
@@ -5,12 +6,15 @@ import { Link, useNavigate } from 'react-router';
|
|||||||
|
|
||||||
import packageJson from '../../../../../package.json';
|
import packageJson from '../../../../../package.json';
|
||||||
|
|
||||||
|
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 } 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';
|
||||||
|
|
||||||
|
const localSettings = isElectron() ? window.api.localSettings : null;
|
||||||
|
|
||||||
const browser = isElectron() ? window.api.browser : null;
|
const browser = isElectron() ? window.api.browser : null;
|
||||||
|
|
||||||
interface BaseMenuItem {
|
interface BaseMenuItem {
|
||||||
@@ -99,6 +103,13 @@ export const AppMenu = () => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleManageServersModal = () => {
|
||||||
|
openModal({
|
||||||
|
children: <ServerList />,
|
||||||
|
title: t('page.manageServers.title', { postProcess: 'titleCase' }),
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
const handleQuit = () => {
|
const handleQuit = () => {
|
||||||
browser?.quit();
|
browser?.quit();
|
||||||
};
|
};
|
||||||
@@ -180,6 +191,21 @@ export const AppMenu = () => {
|
|||||||
id: 'divider-2',
|
id: 'divider-2',
|
||||||
type: 'divider',
|
type: 'divider',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
condition: !localSettings?.env.SERVER_LOCK,
|
||||||
|
id: 'manage-servers',
|
||||||
|
item: {
|
||||||
|
label: t('page.appMenu.manageServers', { postProcess: 'sentenceCase' }),
|
||||||
|
leftSection: <Icon icon="edit" />,
|
||||||
|
onClick: handleManageServersModal,
|
||||||
|
type: 'item',
|
||||||
|
},
|
||||||
|
type: 'conditional-item',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'divider-3',
|
||||||
|
type: 'divider',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
icon: 'settings',
|
icon: 'settings',
|
||||||
id: 'settings',
|
id: 'settings',
|
||||||
@@ -188,7 +214,7 @@ export const AppMenu = () => {
|
|||||||
type: 'item',
|
type: 'item',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'divider-3',
|
id: 'divider-4',
|
||||||
type: 'divider',
|
type: 'divider',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user