mirror of
https://github.com/jeffvli/feishin.git
synced 2026-05-09 20:29:36 +02:00
add login page for locked server
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import { NuqsAdapter } from '@offlegacy/nuqs-hash-router';
|
||||
import isElectron from 'is-electron';
|
||||
import { useMemo } from 'react';
|
||||
import { Navigate, Outlet } from 'react-router';
|
||||
|
||||
@@ -9,10 +10,14 @@ import { Center } from '/@/shared/components/center/center';
|
||||
import { Spinner } from '/@/shared/components/spinner/spinner';
|
||||
import { AuthState } from '/@/shared/types/types';
|
||||
|
||||
const localSettings = isElectron() ? window.api.localSettings : null;
|
||||
|
||||
export const AppOutlet = () => {
|
||||
const currentServer = useCurrentServer();
|
||||
const authState = useServerAuthenticated();
|
||||
|
||||
const serverLock = localSettings?.env.SERVER_LOCK || false;
|
||||
|
||||
const isActionsRequired = useMemo(() => {
|
||||
const isServerRequired = !currentServer;
|
||||
|
||||
@@ -30,6 +35,10 @@ export const AppOutlet = () => {
|
||||
);
|
||||
}
|
||||
|
||||
if (serverLock && !currentServer) {
|
||||
return <Navigate replace to={AppRoute.LOGIN} />;
|
||||
}
|
||||
|
||||
if (isActionsRequired || authState === AuthState.INVALID) {
|
||||
return <Navigate replace to={AppRoute.ACTION_REQUIRED} />;
|
||||
}
|
||||
|
||||
@@ -35,6 +35,8 @@ const InvalidRoute = lazy(
|
||||
() => import('/@/renderer/features/action-required/routes/invalid-route'),
|
||||
);
|
||||
|
||||
const LoginRoute = lazy(() => import('/@/renderer/features/login/routes/login-route'));
|
||||
|
||||
const HomeRoute = lazy(() => import('/@/renderer/features/home/routes/home-route'));
|
||||
|
||||
const ArtistListRoute = lazy(() => import('/@/renderer/features/artists/routes/artist-list-route'));
|
||||
@@ -209,6 +211,7 @@ export const AppRouter = () => {
|
||||
element={<ActionRequiredRoute />}
|
||||
path={AppRoute.ACTION_REQUIRED}
|
||||
/>
|
||||
<Route element={<LoginRoute />} path={AppRoute.LOGIN} />
|
||||
</Route>
|
||||
</Route>
|
||||
</Routes>
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
export enum AppRoute {
|
||||
ACTION_REQUIRED = '/action-required',
|
||||
EXPLORE = '/explore',
|
||||
LOGIN = '/login',
|
||||
FAKE_LIBRARY_ALBUM_DETAILS = '/library/albums/dummy/:albumId',
|
||||
HOME = '/',
|
||||
LIBRARY_ALBUM_ARTISTS = '/library/album-artists',
|
||||
|
||||
Reference in New Issue
Block a user