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 AdminRoute from "~/routes/AdminRoute"
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 ErrorPage from "~/components/widgets/ErrorPage"
import GlobalSettingsRoute from "~/routes/GlobalSettingsRoute"
import I18nHandler from "./I18nHandler"
import LoginRoute from "~/routes/LoginRoute"
import LogoutRoute from "~/routes/LogoutRoute"
import RedirectRoute from "~/routes/RedirectRoute"
import ReportDetailRoute from "~/routes/ReportDetailRoute"
import ReportsRoute from "~/routes/ReportsRoute"
import ReservedAliasDetailRoute from "~/routes/ReservedAliasDetailRoute"
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/:id",
loader: getServerSettings,
element: ,
},
{
path: "/settings",
element: ,
},
{
path: "/reports",
loader: getServerSettings,
element: ,
},
{
path: "/reports/:id",
loader: getServerSettings,
element: ,
},
{
path: "/enter-password",
loader: getServerSettings,
element: ,
},
{
path: "/admin",
loader: getServerSettings,
element: ,
},
{
path: "/admin/reserved-aliases",
element: ,
},
{
path: "/admin/reserved-aliases/:id",
element: ,
},
{
path: "/admin/reserved-aliases/create",
loader: getServerSettings,
element: ,
},
{
path: "/admin/settings",
loader: getServerSettings,
element: ,
},
],
},
],
},
])
export default function App(): ReactElement {
return (
)
}