import { QueryClient } from "@tanstack/react-query"; import { createRouter as createTanStackRouter } from "@tanstack/react-router"; import { routerWithQueryClient } from "@tanstack/react-router-with-query"; import { routeTree } from "./routeTree.gen"; import { DefaultCatchBoundary } from "../components/DefaultCatchBoundary"; import { defaultHeaderConfig } from "@/features/core/hooks/use-router-config"; export function createRouter() { const queryClient = new QueryClient({ defaultOptions: { queries: { staleTime: 60 * 1000, // 60 seconds gcTime: 5 * 60 * 1000, // 5 minutes refetchOnWindowFocus: false, refetchOnReconnect: "always", retry: 3, }, }, }); return routerWithQueryClient( createTanStackRouter({ routeTree, context: { queryClient, auth: undefined!, header: defaultHeaderConfig, refresh: [], withPadding: true, fullWidth: false, }, defaultPreload: "intent", defaultErrorComponent: DefaultCatchBoundary, scrollRestoration: true, defaultViewTransition: false, }), queryClient ); } declare module "@tanstack/react-router" { interface Register { router: ReturnType; } }