Lint all files

This commit is contained in:
jeffvli 2023-07-01 19:10:05 -07:00
parent 22af76b4d6
commit 30e52ebb54
334 changed files with 76519 additions and 75932 deletions

View file

@ -2,17 +2,17 @@ import { Group } from '@mantine/core';
import { openModal, closeAllModals } from '@mantine/modals';
import isElectron from 'is-electron';
import {
RiLockLine,
RiWindowFill,
RiArrowLeftSLine,
RiArrowRightSLine,
RiLayoutRightLine,
RiLayoutLeftLine,
RiEdit2Line,
RiSettings3Line,
RiServerLine,
RiGithubLine,
RiExternalLinkLine,
RiLockLine,
RiWindowFill,
RiArrowLeftSLine,
RiArrowRightSLine,
RiLayoutRightLine,
RiLayoutLeftLine,
RiEdit2Line,
RiSettings3Line,
RiServerLine,
RiGithubLine,
RiExternalLinkLine,
} from 'react-icons/ri';
import { useNavigate } from 'react-router';
import { Link } from 'react-router-dom';
@ -21,11 +21,11 @@ import { ServerList } from '/@/renderer/features/servers';
import { EditServerForm } from '/@/renderer/features/servers/components/edit-server-form';
import { AppRoute } from '/@/renderer/router/routes';
import {
useCurrentServer,
useServerList,
useAuthStoreActions,
useSidebarStore,
useAppStoreActions,
useCurrentServer,
useServerList,
useAuthStoreActions,
useSidebarStore,
useAppStoreActions,
} from '/@/renderer/store';
import { ServerListItem, ServerType } from '/@/renderer/types';
import packageJson from '../../../../../package.json';
@ -34,150 +34,157 @@ const browser = isElectron() ? window.electron.browser : null;
const localSettings = isElectron() ? window.electron.localSettings : null;
export const AppMenu = () => {
const navigate = useNavigate();
const currentServer = useCurrentServer();
const serverList = useServerList();
const { setCurrentServer } = useAuthStoreActions();
const { collapsed } = useSidebarStore();
const { setSideBar } = useAppStoreActions();
const navigate = useNavigate();
const currentServer = useCurrentServer();
const serverList = useServerList();
const { setCurrentServer } = useAuthStoreActions();
const { collapsed } = useSidebarStore();
const { setSideBar } = useAppStoreActions();
const handleSetCurrentServer = (server: ServerListItem) => {
navigate(AppRoute.HOME);
setCurrentServer(server);
};
const handleSetCurrentServer = (server: ServerListItem) => {
navigate(AppRoute.HOME);
setCurrentServer(server);
};
const handleCredentialsModal = async (server: ServerListItem) => {
let password: string | undefined;
const handleCredentialsModal = async (server: ServerListItem) => {
let password: string | undefined;
try {
if (localSettings && server.savePassword) {
password = await localSettings.passwordGet(server.id);
}
} catch (error) {
console.error(error);
}
openModal({
children: server && (
<EditServerForm
isUpdate
password={password}
server={server}
onCancel={closeAllModals}
/>
),
size: 'sm',
title: `Update session for "${server.name}"`,
});
};
try {
if (localSettings && server.savePassword) {
password = await localSettings.passwordGet(server.id);
}
} catch (error) {
console.error(error);
}
openModal({
children: server && (
<EditServerForm
isUpdate
password={password}
server={server}
onCancel={closeAllModals}
/>
),
size: 'sm',
title: `Update session for "${server.name}"`,
});
};
const handleManageServersModal = () => {
openModal({
children: <ServerList />,
title: 'Manage Servers',
});
};
const handleManageServersModal = () => {
openModal({
children: <ServerList />,
title: 'Manage Servers',
});
};
const handleBrowserDevTools = () => {
browser?.devtools();
};
const handleBrowserDevTools = () => {
browser?.devtools();
};
const handleCollapseSidebar = () => {
setSideBar({ collapsed: true });
};
const handleCollapseSidebar = () => {
setSideBar({ collapsed: true });
};
const handleExpandSidebar = () => {
setSideBar({ collapsed: false });
};
const handleExpandSidebar = () => {
setSideBar({ collapsed: false });
};
const showBrowserDevToolsButton = isElectron();
const showBrowserDevToolsButton = isElectron();
return (
<>
<DropdownMenu.Item
icon={<RiArrowLeftSLine />}
onClick={() => navigate(-1)}
>
Go back
</DropdownMenu.Item>
<DropdownMenu.Item
icon={<RiArrowRightSLine />}
onClick={() => navigate(1)}
>
Go forward
</DropdownMenu.Item>
{collapsed ? (
<DropdownMenu.Item
icon={<RiLayoutRightLine />}
onClick={handleExpandSidebar}
>
Expand sidebar
</DropdownMenu.Item>
) : (
<DropdownMenu.Item
icon={<RiLayoutLeftLine />}
onClick={handleCollapseSidebar}
>
Collapse sidebar
</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 && (
return (
<>
<DropdownMenu.Divider />
<DropdownMenu.Item
icon={<RiWindowFill />}
onClick={handleBrowserDevTools}
>
Open browser devtools
</DropdownMenu.Item>
<DropdownMenu.Item
icon={<RiArrowLeftSLine />}
onClick={() => navigate(-1)}
>
Go back
</DropdownMenu.Item>
<DropdownMenu.Item
icon={<RiArrowRightSLine />}
onClick={() => navigate(1)}
>
Go forward
</DropdownMenu.Item>
{collapsed ? (
<DropdownMenu.Item
icon={<RiLayoutRightLine />}
onClick={handleExpandSidebar}
>
Expand sidebar
</DropdownMenu.Item>
) : (
<DropdownMenu.Item
icon={<RiLayoutLeftLine />}
onClick={handleCollapseSidebar}
>
Collapse sidebar
</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 && (
<>
<DropdownMenu.Divider />
<DropdownMenu.Item
icon={<RiWindowFill />}
onClick={handleBrowserDevTools}
>
Open browser devtools
</DropdownMenu.Item>
</>
)}
</>
)}
</>
);
);
};

View file

@ -4,19 +4,19 @@ import styled from 'styled-components';
import { WindowControls } from '../../window-controls';
interface TitlebarProps {
children?: ReactNode;
children?: ReactNode;
}
const TitlebarContainer = styled.div`
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
color: var(--titlebar-fg);
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
color: var(--titlebar-fg);
button {
-webkit-app-region: no-drag;
}
button {
-webkit-app-region: no-drag;
}
`;
// const Left = styled.div`
@ -37,27 +37,27 @@ const TitlebarContainer = styled.div`
// `;
const Right = styled.div`
display: flex;
flex: 1/3;
justify-content: center;
height: 100%;
display: flex;
flex: 1/3;
justify-content: center;
height: 100%;
`;
export const Titlebar = ({ children }: TitlebarProps) => {
return (
<>
<TitlebarContainer>
<Right>
{children}
<Group spacing="xs">
<WindowControls />
</Group>
</Right>
</TitlebarContainer>
</>
);
return (
<>
<TitlebarContainer>
<Right>
{children}
<Group spacing="xs">
<WindowControls />
</Group>
</Right>
</TitlebarContainer>
</>
);
};
Titlebar.defaultProps = {
children: undefined,
children: undefined,
};