import { createRouter as createTanstackRouter } from "@tanstack/react-router"; import { QueryClient } from "@tanstack/react-query"; import { setupRouterSsrQueryIntegration } from "@tanstack/react-router-ssr-query"; // Import the generated route tree import { routeTree } from "./routeTree.gen.ts"; import { articleSlugs } from "./articles/schemas.tsx"; import { getArticleQueryOptions } from "./articles/querys.ts"; function DefaultErrorComponent() { return (

Error

Something went wrong. Try refreshing the page.

); } function DefaultPendingComponent() { return (
Loading...
); } function DefaultNotFoundComponent() { return (

404 — Not Found

The page you are looking for does not exist.

); } export function getRouter() { const queryClient = new QueryClient(); const router = createTanstackRouter({ routeTree, scrollRestoration: true, defaultPreload: false, defaultStructuralSharing: true, defaultPreloadStaleTime: 0, defaultPendingMs: 0, defaultErrorComponent: DefaultErrorComponent, defaultPendingComponent: DefaultPendingComponent, defaultNotFoundComponent: DefaultNotFoundComponent, context: { queryClient, }, }); setupRouterSsrQueryIntegration({ router, queryClient, }); void Promise.all( articleSlugs.map((slug) => queryClient.prefetchQuery(getArticleQueryOptions({ slug }))), ); return router; } // Register the router instance for type safety declare module "@tanstack/react-router" { interface Register { router: ReturnType; } interface StaticDataRouteOption { routeTitle?: string; routeSubtitle?: string; } }