mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2026-07-15 23:39:03 +10:00
45 lines
1.3 KiB
TypeScript
45 lines
1.3 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 { getSession } from "./libs/auth/session";
|
|
import { getLocale, loadLocale } from "./libs/locale";
|
|
import { client, orpc } from "./libs/orpc/client";
|
|
import { getQueryClient } from "./libs/query/client";
|
|
import { getTheme } from "./libs/theme";
|
|
import { routeTree } from "./routeTree.gen";
|
|
|
|
export const getRouter = async () => {
|
|
const queryClient = getQueryClient();
|
|
|
|
const [theme, locale, session, flags] = await Promise.all([
|
|
getTheme(),
|
|
getLocale(),
|
|
getSession(),
|
|
client.flags.get(),
|
|
]);
|
|
|
|
await loadLocale(locale);
|
|
|
|
const router = createRouter({
|
|
routeTree,
|
|
scrollRestoration: true,
|
|
defaultViewTransition: true,
|
|
defaultStructuralSharing: true,
|
|
defaultErrorComponent: ErrorScreen,
|
|
defaultPendingComponent: LoadingScreen,
|
|
defaultNotFoundComponent: NotFoundScreen,
|
|
context: { orpc, queryClient, theme, locale, session, flags },
|
|
});
|
|
|
|
setupRouterSsrQueryIntegration({
|
|
router,
|
|
queryClient,
|
|
handleRedirects: true,
|
|
wrapQueryClient: true,
|
|
});
|
|
|
|
return router;
|
|
};
|