import { isServer, QueryClient } from "@tanstack/react-query"; function makeQueryClient() { return new QueryClient({ defaultOptions: { queries: { staleTime: 60 * 1000, gcTime: 5 * 60 * 1000, refetchOnWindowFocus: false, retry: 1, }, }, }); } let browserQueryClient: QueryClient | undefined = undefined; export function getQueryClient() { if (isServer) { // Server: fresh client per request so caches never leak between users. return makeQueryClient(); } // Browser: single shared client so the cache survives route changes. if (!browserQueryClient) { browserQueryClient = makeQueryClient(); } return browserQueryClient; }