import { StrictMode, lazy, Suspense } from "react";
import { createRoot } from "react-dom/client";
import { createBrowserRouter, RouterProvider } from "react-router";
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import "./index.css";
import { SettingsProvider } from "./lib/settings";
import { FeedbackProvider, Loading } from "./components/ui";
import { RequireAuth } from "./components/Shell";
import { ApiError } from "./lib/api";
import Login from "./pages/Login";
import Overview from "./pages/Overview";
const Traffic = lazy(() => import("./pages/Traffic"));
const Queue = lazy(() => import("./pages/Queue"));
const Addons = lazy(() => import("./pages/Addons"));
const Whitelist = lazy(() => import("./pages/Whitelist"));
const Services = lazy(() => import("./pages/Services"));
const Explorer = lazy(() => import("./pages/Explorer"));
const Events = lazy(() => import("./pages/Events"));
const System = lazy(() => import("./pages/System"));
const queryClient = new QueryClient({
defaultOptions: {
queries: {
staleTime: 10_000,
refetchOnWindowFocus: false,
retry: (count, err) => !(err instanceof ApiError && err.status < 500) && count < 2,
},
},
});
const page = (el: React.ReactNode) => }>{el};
const router = createBrowserRouter(
[
{ path: "/login", element: },
{
element: ,
children: [
{ index: true, element: },
{ path: "traffic", element: page() },
{ path: "queue", element: page() },
{ path: "addons", element: page() },
{ path: "addons/:id", element: page() },
{ path: "whitelist", element: page() },
{ path: "services", element: page() },
{ path: "explorer", element: page() },
{ path: "events", element: page() },
{ path: "system", element: page() },
{ path: "*", element: },
],
},
],
{ basename: "/admin/ui" },
);
createRoot(document.getElementById("root")!).render(
,
);