Re-order app menu

- Move version number to menu
- Add link to github
This commit is contained in:
jeffvli 2023-05-14 02:01:37 -07:00
parent 2399105f6c
commit 684ba13175
2 changed files with 50 additions and 38 deletions

View file

@ -3,7 +3,6 @@ import { closeAllModals, openModal } from '@mantine/modals';
import { RiSettings2Fill } from 'react-icons/ri'; import { RiSettings2Fill } from 'react-icons/ri';
import { Button, ConfirmModal, PageHeader } from '/@/renderer/components'; import { Button, ConfirmModal, PageHeader } from '/@/renderer/components';
import { LibraryHeaderBar } from '/@/renderer/features/shared'; import { LibraryHeaderBar } from '/@/renderer/features/shared';
import packageJson from '../../../../../package.json';
import { useSettingsStoreActions } from '../../../store/settings.store'; import { useSettingsStoreActions } from '../../../store/settings.store';
export const SettingsHeader = () => { export const SettingsHeader = () => {
@ -33,7 +32,6 @@ export const SettingsHeader = () => {
<Group noWrap> <Group noWrap>
<RiSettings2Fill size="2rem" /> <RiSettings2Fill size="2rem" />
<LibraryHeaderBar.Title>Settings</LibraryHeaderBar.Title> <LibraryHeaderBar.Title>Settings</LibraryHeaderBar.Title>
<LibraryHeaderBar.Badge>v{packageJson.version}</LibraryHeaderBar.Badge>
</Group> </Group>
<Button <Button
compact compact

View file

@ -11,6 +11,8 @@ import {
RiEdit2Line, RiEdit2Line,
RiSettings3Line, RiSettings3Line,
RiServerLine, RiServerLine,
RiGithubLine,
RiExternalLinkLine,
} from 'react-icons/ri'; } from 'react-icons/ri';
import { useNavigate } from 'react-router'; import { useNavigate } from 'react-router';
import { Link } from 'react-router-dom'; import { Link } from 'react-router-dom';
@ -26,6 +28,7 @@ import {
useAppStoreActions, useAppStoreActions,
} from '/@/renderer/store'; } from '/@/renderer/store';
import { ServerListItem, ServerType } from '/@/renderer/types'; import { ServerListItem, ServerType } from '/@/renderer/types';
import packageJson from '../../../../../package.json';
const browser = isElectron() ? window.electron.browser : null; const browser = isElectron() ? window.electron.browser : null;
@ -79,42 +82,6 @@ export const AppMenu = () => {
return ( return (
<> <>
<DropdownMenu.Label>Select a server</DropdownMenu.Label>
{Object.keys(serverList).map((serverId) => {
const server = serverList[serverId];
const isNavidromeExpired = server.type === ServerType.NAVIDROME && !server.ndCredential;
const isJellyfinExpired = false;
const isSessionExpired = isNavidromeExpired || isJellyfinExpired;
return (
<DropdownMenu.Item
key={`server-${server.id}`}
$isActive={server.id === currentServer?.id}
icon={isSessionExpired ? <RiLockLine color="var(--danger-color)" /> : <RiServerLine />}
onClick={() => {
if (!isSessionExpired) return handleSetCurrentServer(server);
return handleCredentialsModal(server);
}}
>
<Group>{server.name}</Group>
</DropdownMenu.Item>
);
})}
<DropdownMenu.Divider />
<DropdownMenu.Item
icon={<RiEdit2Line />}
onClick={handleManageServersModal}
>
Manage servers
</DropdownMenu.Item>
<DropdownMenu.Item
component={Link}
icon={<RiSettings3Line />}
to={AppRoute.SETTINGS}
>
Settings
</DropdownMenu.Item>
<DropdownMenu.Divider />
<DropdownMenu.Item <DropdownMenu.Item
icon={<RiArrowLeftSLine />} icon={<RiArrowLeftSLine />}
onClick={() => navigate(-1)} onClick={() => navigate(-1)}
@ -142,6 +109,53 @@ export const AppMenu = () => {
Collapse sidebar Collapse sidebar
</DropdownMenu.Item> </DropdownMenu.Item>
)} )}
<DropdownMenu.Divider />
<DropdownMenu.Item
component={Link}
icon={<RiSettings3Line />}
to={AppRoute.SETTINGS}
>
Settings
</DropdownMenu.Item>
<DropdownMenu.Item
icon={<RiEdit2Line />}
onClick={handleManageServersModal}
>
Manage servers
</DropdownMenu.Item>
<DropdownMenu.Divider />
<DropdownMenu.Label>Select a server</DropdownMenu.Label>
{Object.keys(serverList).map((serverId) => {
const server = serverList[serverId];
const isNavidromeExpired = server.type === ServerType.NAVIDROME && !server.ndCredential;
const isJellyfinExpired = false;
const isSessionExpired = isNavidromeExpired || isJellyfinExpired;
return (
<DropdownMenu.Item
key={`server-${server.id}`}
$isActive={server.id === currentServer?.id}
icon={isSessionExpired ? <RiLockLine color="var(--danger-color)" /> : <RiServerLine />}
onClick={() => {
if (!isSessionExpired) return handleSetCurrentServer(server);
return handleCredentialsModal(server);
}}
>
<Group>{server.name}</Group>
</DropdownMenu.Item>
);
})}
<DropdownMenu.Divider />
<DropdownMenu.Item
component="a"
href="https://github.com/jeffvli/feishin/releases"
icon={<RiGithubLine />}
rightSection={<RiExternalLinkLine />}
target="_blank"
>
Version {packageJson.version}
</DropdownMenu.Item>
{showBrowserDevToolsButton && ( {showBrowserDevToolsButton && (
<> <>
<DropdownMenu.Divider /> <DropdownMenu.Divider />