diff --git a/src/router.tsx b/src/router.tsx index 85f04ea..08b76d7 100644 --- a/src/router.tsx +++ b/src/router.tsx @@ -1,6 +1,7 @@ import { createRouter } from '@tanstack/react-router' import { setupRouterSsrQueryIntegration } from '@tanstack/react-router-ssr-query' import { getContext as getQueryContext } from './integrations/tanstack-query' +import type { RouterContext } from './routes/__root' import { routeTree } from './routeTree.gen' export const getRouter = () => { @@ -10,7 +11,7 @@ export const getRouter = () => { routeTree, context: { ...queryContext, - }, + } satisfies RouterContext, scrollRestoration: true, defaultPreloadStaleTime: 0, diff --git a/src/routes/__root.tsx b/src/routes/__root.tsx index c652d53..056109b 100644 --- a/src/routes/__root.tsx +++ b/src/routes/__root.tsx @@ -1,5 +1,10 @@ import { TanStackDevtools } from '@tanstack/react-devtools' -import { createRootRoute, HeadContent, Scripts } from '@tanstack/react-router' +import type { QueryClient } from '@tanstack/react-query' +import { + createRootRouteWithContext, + HeadContent, + Scripts, +} from '@tanstack/react-router' import type { ReactNode } from 'react' import { ErrorComponent } from '@/components/Error' import { NotFoundComponent } from '@/components/NotFount' @@ -7,7 +12,11 @@ import { devtools as queryDevtools } from '@/integrations/tanstack-query' import { devtools as routerDevtools } from '@/integrations/tanstack-router' import appCss from '@/styles.css?url' -export const Route = createRootRoute({ +export interface RouterContext { + queryClient: QueryClient +} + +export const Route = createRootRouteWithContext()({ head: () => ({ meta: [ { diff --git a/src/routes/todos.tsx b/src/routes/todos.tsx index 8e3882f..9b88e46 100644 --- a/src/routes/todos.tsx +++ b/src/routes/todos.tsx @@ -6,9 +6,9 @@ import { orpc } from '@/orpc' export const Route = createFileRoute('/todos')({ component: Todos, - // loader: async ({ context }) => { - // await context.queryClient.prefetchQuery(orpc.todo.list.queryOptions()) - // }, + loader: async ({ context }) => { + await context.queryClient.prefetchQuery(orpc.todo.list.queryOptions()) + }, }) function Todos() {