Files
nextjs-template/lib/query-client.ts
T

29 lines
705 B
TypeScript
Raw Normal View History

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;
}