diff --git a/packages/create/src/frameworks/react/add-ons/tanstack-query/assets/src/integrations/tanstack-query/root-provider.tsx.ejs b/packages/create/src/frameworks/react/add-ons/tanstack-query/assets/src/integrations/tanstack-query/root-provider.tsx.ejs index 1d88ddb9..4e9f8857 100644 --- a/packages/create/src/frameworks/react/add-ons/tanstack-query/assets/src/integrations/tanstack-query/root-provider.tsx.ejs +++ b/packages/create/src/frameworks/react/add-ons/tanstack-query/assets/src/integrations/tanstack-query/root-provider.tsx.ejs @@ -1,11 +1,13 @@ <% if (addOnEnabled.tRPC) { %> -import { QueryClient } from "@tanstack/react-query"; +import { QueryClient, useQueryClient } from "@tanstack/react-query"; import superjson from "superjson"; import { createTRPCClient, httpBatchStreamLink } from "@trpc/client"; import { createTRPCOptionsProxy } from "@trpc/tanstack-react-query"; import type { TRPCRouter } from "@/integrations/trpc/router"; +import { TRPCProvider } from "@/integrations/trpc/react"; + function getUrl() { const base = (() => { if (typeof window !== "undefined") return ""; @@ -40,6 +42,19 @@ export function getContext() { trpc: serverHelpers, }; } + +export default function Provider({ + children, +}: { + children: React.ReactNode; +}) { + const queryClient = useQueryClient(); + return ( + + {children} + + ); +} <% } else { %> import { QueryClient } from '@tanstack/react-query' @@ -49,4 +64,12 @@ export function getContext() { queryClient, }; } + +export default function Provider({ + children, +}: { + children: React.ReactNode; +}) { + return children; +} <% } %> diff --git a/packages/create/src/frameworks/react/add-ons/tanstack-query/package.json b/packages/create/src/frameworks/react/add-ons/tanstack-query/package.json index ad1ab6e0..e65b7590 100644 --- a/packages/create/src/frameworks/react/add-ons/tanstack-query/package.json +++ b/packages/create/src/frameworks/react/add-ons/tanstack-query/package.json @@ -1,6 +1,7 @@ { "dependencies": { "@tanstack/react-query": "^5.66.5", - "@tanstack/react-query-devtools": "^5.84.2" + "@tanstack/react-query-devtools": "^5.84.2", + "@tanstack/react-router-ssr-query": "^1.159.10" } } diff --git a/packages/create/src/frameworks/react/project/base/src/router.tsx.ejs b/packages/create/src/frameworks/react/project/base/src/router.tsx.ejs index bc05da09..6478c70e 100644 --- a/packages/create/src/frameworks/react/project/base/src/router.tsx.ejs +++ b/packages/create/src/frameworks/react/project/base/src/router.tsx.ejs @@ -1,14 +1,19 @@ import { createRouter as createTanStackRouter } from '@tanstack/react-router' import { routeTree } from './routeTree.gen' <% if (addOnEnabled['tanstack-query']) { %> +import { setupRouterSsrQueryIntegration } from '@tanstack/react-router-ssr-query' import { getContext } from './integrations/tanstack-query/root-provider' <% } %> export function getRouter() { +<% if (addOnEnabled['tanstack-query']) { %> + const { queryClient, ...rest } = getContext() +<% } %> + const router = createTanStackRouter({ routeTree, <% if (addOnEnabled['tanstack-query']) { %> - context: getContext(), + context: { queryClient, ...rest }, <% } else if (addOnEnabled['apollo-client']) { %> context: {} as any, <% } %> @@ -17,6 +22,13 @@ export function getRouter() { defaultPreloadStaleTime: 0, }) +<% if (addOnEnabled['tanstack-query']) { %> + setupRouterSsrQueryIntegration({ + router, + queryClient, + }) +<% } %> + return router }