63 lines
1.6 KiB
TypeScript
63 lines
1.6 KiB
TypeScript
import CssBaseline from "@mui/material/CssBaseline";
|
|
import { ThemeProvider, createTheme } from "@mui/material/styles";
|
|
import { RouterProvider, createRouter } from "@tanstack/react-router";
|
|
import { StrictMode } from "react";
|
|
import ReactDOM from "react-dom/client";
|
|
|
|
import "@fontsource/roboto/300.css";
|
|
import "@fontsource/roboto/400.css";
|
|
import "@fontsource/roboto/500.css";
|
|
import "@fontsource/roboto/700.css";
|
|
|
|
import * as TanStackQueryProvider from "./integrations/tanstack-query/root-provider.tsx";
|
|
|
|
import { pdfjs } from "react-pdf";
|
|
// Import the generated route tree
|
|
import { routeTree } from "./routeTree.gen";
|
|
|
|
// Create a new router instance
|
|
const router = createRouter({
|
|
routeTree,
|
|
context: {
|
|
...TanStackQueryProvider.getContext(),
|
|
},
|
|
defaultPreload: "intent",
|
|
scrollRestoration: true,
|
|
defaultStructuralSharing: true,
|
|
defaultPreloadStaleTime: 0,
|
|
});
|
|
|
|
// Register the router instance for type safety
|
|
declare module "@tanstack/react-router" {
|
|
interface Register {
|
|
router: typeof router;
|
|
}
|
|
}
|
|
|
|
pdfjs.GlobalWorkerOptions.workerSrc = new URL(
|
|
"pdfjs-dist/build/pdf.worker.min.js",
|
|
import.meta.url,
|
|
).toString();
|
|
|
|
const theme = createTheme({
|
|
palette: {
|
|
mode: "light",
|
|
},
|
|
});
|
|
|
|
// Render the app
|
|
const rootElement = document.getElementById("app");
|
|
if (rootElement && !rootElement.innerHTML) {
|
|
const root = ReactDOM.createRoot(rootElement);
|
|
root.render(
|
|
<StrictMode>
|
|
<TanStackQueryProvider.Provider>
|
|
<ThemeProvider theme={theme}>
|
|
<CssBaseline />
|
|
<RouterProvider router={router} />
|
|
</ThemeProvider>
|
|
</TanStackQueryProvider.Provider>
|
|
</StrictMode>,
|
|
);
|
|
}
|