import {RouterProvider, createBrowserRouter} from "react-router-dom" import {SnackbarProvider} from "notistack" import React, {ReactElement} from "react" import {QueryClientProvider} from "@tanstack/react-query" import {CssBaseline, ThemeProvider} from "@mui/material" import {queryClient} from "~/constants/react-query" import {getServerSettings} from "~/apis" import {lightTheme} from "~/constants/themes" import AliasDetailRoute from "~/routes/AliasDetailRoute" import AliasesRoute from "~/routes/AliasesRoute" import AuthenticateRoute from "~/routes/AuthenticateRoute" import AuthenticatedRoute from "~/routes/AuthenticatedRoute" import CompleteAccountRoute from "~/routes/CompleteAccountRoute" import CreateReservedAliasRoute from "~/routes/CreateReservedAliasRoute" import EnterDecryptionPassword from "~/routes/EnterDecryptionPassword" import I18nHandler from "./I18nHandler" import LoginRoute from "~/routes/LoginRoute" import LogoutRoute from "~/routes/LogoutRoute" import OverviewRoute from "~/routes/OverviewRoute" import ReportDetailRoute from "~/routes/ReportDetailRoute" import ReportsRoute from "~/routes/ReportsRoute" import ReservedAliasesRoute from "~/routes/ReservedAliasesRoute" import RootRoute from "~/routes/Root" import SettingsRoute from "~/routes/SettingsRoute" import SignupRoute from "~/routes/SignupRoute" import VerifyEmailRoute from "~/routes/VerifyEmailRoute" import "./init-i18n" const router = createBrowserRouter([ { path: "/", element: , errorElement:
, children: [ { path: "/auth", element: , children: [ { path: "/auth/login", loader: getServerSettings, element: , }, { path: "/auth/signup", loader: getServerSettings, element: , }, { path: "/auth/verify-email", loader: getServerSettings, element: , }, { path: "/auth/complete-account", loader: getServerSettings, element: , }, { path: "/auth/logout", element: , }, ], }, { path: "/", element: , children: [ { path: "/", element: , }, { path: "/aliases", loader: getServerSettings, element: , }, { path: "/aliases/:addressInBase64", element: , }, { path: "/settings", element: , }, { path: "/reports", loader: getServerSettings, element: , }, { path: "/reports/:id", loader: getServerSettings, element: , }, { path: "/enter-password", loader: getServerSettings, element: , }, { path: "/admin/reserved-aliases", element: , }, { path: "/admin/reserved-aliases/create", loader: getServerSettings, element: , }, ], }, ], }, ]) export default function App(): ReactElement { return ( ) }