Re-order app menu
- Move version number to menu - Add link to github
This commit is contained in:
parent
2399105f6c
commit
684ba13175
2 changed files with 50 additions and 38 deletions
|
@ -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
|
||||||
|
|
|
@ -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 />
|
||||||
|
|
Reference in a new issue