Files
Reactive-Resume/src/router.tsx
T
2026-01-19 23:31:54 +01:00

39 lines
1.2 KiB
TypeScript

import { createRouter } from "@tanstack/react-router";
import { setupRouterSsrQueryIntegration } from "@tanstack/react-router-ssr-query";
import { ErrorScreen } from "./components/layout/error-screen";
import { LoadingScreen } from "./components/layout/loading-screen";
import { NotFoundScreen } from "./components/layout/not-found-screen";
import { orpc } from "./integrations/orpc/client";
import { getQueryClient } from "./integrations/query/client";
import { routeTree } from "./routeTree.gen";
import { getLocale, loadLocale } from "./utils/locale";
import { getTheme } from "./utils/theme";
export const getRouter = async () => {
const queryClient = getQueryClient();
const [theme, locale] = await Promise.all([getTheme(), getLocale()]);
await loadLocale(locale);
const router = createRouter({
routeTree,
scrollRestoration: true,
defaultPreload: "intent",
defaultViewTransition: true,
defaultStructuralSharing: true,
defaultErrorComponent: ErrorScreen,
defaultPendingComponent: LoadingScreen,
defaultNotFoundComponent: NotFoundScreen,
context: { orpc, queryClient, theme, locale, session: null },
});
setupRouterSsrQueryIntegration({
router,
queryClient,
handleRedirects: true,
wrapQueryClient: true,
});
return router;
};