mirror of
https://github.com/BrenBroZAYT/gameyfin.git
synced 2026-06-16 16:20:04 +00:00
Use Hilla router config
This commit is contained in:
@@ -2,7 +2,6 @@ import {Outlet, useHref, useNavigate} from 'react-router';
|
|||||||
import "./main.css";
|
import "./main.css";
|
||||||
import "Frontend/util/custom-validators";
|
import "Frontend/util/custom-validators";
|
||||||
import {HeroUIProvider} from "@heroui/react";
|
import {HeroUIProvider} from "@heroui/react";
|
||||||
import {ToastProvider} from "@heroui/toast";
|
|
||||||
import {ThemeProvider as NextThemesProvider} from "next-themes";
|
import {ThemeProvider as NextThemesProvider} from "next-themes";
|
||||||
import {themeNames} from "Frontend/theming/themes";
|
import {themeNames} from "Frontend/theming/themes";
|
||||||
import {AuthProvider} from "Frontend/util/auth";
|
import {AuthProvider} from "Frontend/util/auth";
|
||||||
@@ -12,10 +11,9 @@ import {ErrorHandlingMiddleware} from "Frontend/util/middleware";
|
|||||||
import {initializeLibraryState} from "Frontend/state/LibraryState";
|
import {initializeLibraryState} from "Frontend/state/LibraryState";
|
||||||
import {initializeGameState} from "Frontend/state/GameState";
|
import {initializeGameState} from "Frontend/state/GameState";
|
||||||
import {initializeScanState} from "Frontend/state/ScanState";
|
import {initializeScanState} from "Frontend/state/ScanState";
|
||||||
|
import {ToastProvider} from "@heroui/toast";
|
||||||
|
|
||||||
export default function App() {
|
export default function App() {
|
||||||
const navigate = useNavigate();
|
|
||||||
|
|
||||||
client.middlewares = [ErrorHandlingMiddleware];
|
client.middlewares = [ErrorHandlingMiddleware];
|
||||||
|
|
||||||
initializeLibraryState();
|
initializeLibraryState();
|
||||||
@@ -23,7 +21,7 @@ export default function App() {
|
|||||||
initializeScanState();
|
initializeScanState();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<HeroUIProvider className="size-full" navigate={navigate} useHref={useHref}>
|
<HeroUIProvider className="size-full" navigate={useNavigate} useHref={useHref}>
|
||||||
<NextThemesProvider attribute="class" themes={themeNames()} defaultTheme="gameyfin-violet-dark">
|
<NextThemesProvider attribute="class" themes={themeNames()} defaultTheme="gameyfin-violet-dark">
|
||||||
<AuthProvider>
|
<AuthProvider>
|
||||||
<IconContext.Provider value={{size: 20}}>
|
<IconContext.Provider value={{size: 20}}>
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
import {protectRoutes} from '@vaadin/hilla-react-auth';
|
|
||||||
import {createBrowserRouter, RouteObject} from 'react-router';
|
|
||||||
import LoginView from "Frontend/views/LoginView";
|
import LoginView from "Frontend/views/LoginView";
|
||||||
import MainLayout from "Frontend/views/MainLayout";
|
import MainLayout from "Frontend/views/MainLayout";
|
||||||
import HomeView from "Frontend/views/HomeView";
|
import HomeView from "Frontend/views/HomeView";
|
||||||
@@ -24,8 +22,10 @@ import LibraryManagementView from "Frontend/views/LibraryManagementView";
|
|||||||
import SearchView from "Frontend/views/SearchView";
|
import SearchView from "Frontend/views/SearchView";
|
||||||
import RecentlyAddedView from "Frontend/views/RecentlyAddedView";
|
import RecentlyAddedView from "Frontend/views/RecentlyAddedView";
|
||||||
import LibraryView from "Frontend/views/LibraryView";
|
import LibraryView from "Frontend/views/LibraryView";
|
||||||
|
import {RouterConfigurationBuilder} from "@vaadin/hilla-file-router/runtime.js";
|
||||||
|
|
||||||
export const routes = protectRoutes([
|
export const {router, routes} = new RouterConfigurationBuilder()
|
||||||
|
.withReactRoutes([
|
||||||
{
|
{
|
||||||
element: <App/>,
|
element: <App/>,
|
||||||
handle: {requiresLogin: false},
|
handle: {requiresLogin: false},
|
||||||
@@ -38,7 +38,7 @@ export const routes = protectRoutes([
|
|||||||
index: true, element: <HomeView/>
|
index: true, element: <HomeView/>
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/search',
|
path: 'search',
|
||||||
element: <SearchView/>
|
element: <SearchView/>
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -84,22 +84,22 @@ export const routes = protectRoutes([
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/login', element: <LoginView/>, handle: {requiresLogin: false}
|
path: 'login', element: <LoginView/>, handle: {requiresLogin: false}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/setup', element: <SetupView/>, handle: {requiresLogin: false}
|
path: 'setup', element: <SetupView/>, handle: {requiresLogin: false}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/accept-invitation', element: <InvitationRegistrationView/>, handle: {requiresLogin: false}
|
path: 'accept-invitation', element: <InvitationRegistrationView/>, handle: {requiresLogin: false}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/reset-password', element: <PasswordResetView/>, handle: {requiresLogin: false}
|
path: 'reset-password', element: <PasswordResetView/>, handle: {requiresLogin: false}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/confirm-email', element: <EmailConfirmationView/>, handle: {requiresLogin: true}
|
path: 'confirm-email', element: <EmailConfirmationView/>, handle: {requiresLogin: true}
|
||||||
},
|
},
|
||||||
],
|
]
|
||||||
}
|
}
|
||||||
]) as RouteObject[];
|
])
|
||||||
|
.protect("/login")
|
||||||
export default createBrowserRouter(routes);
|
.build();
|
||||||
|
|||||||
Reference in New Issue
Block a user