Curated, product-agnostic snapshot of the post-story-04 tree: demo content deleted, auth-only reference feature, web-next shell, all gates green. Product-specific docs, ADRs 027-029, PRDs/epics/archive, editor library traces, and product naming are curated out; generic template repairs (coverage provider devDeps, root test:coverage script, live lint fixes, root-only release-please) are kept. See TEMPLATE.md for provenance, curation list, and usage. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016j8z4VHjedXDTjEDNg7qHK
23 lines
551 B
TypeScript
23 lines
551 B
TypeScript
import { QueryClient } from "@tanstack/react-query";
|
|
|
|
let clientQueryClient: QueryClient | undefined;
|
|
|
|
const defaultOptions = {
|
|
queries: {
|
|
staleTime: 30 * 1000,
|
|
refetchOnWindowFocus: false,
|
|
},
|
|
};
|
|
|
|
export function getQueryClient(): QueryClient {
|
|
if (typeof window === "undefined") {
|
|
// Server: always create a new instance per request
|
|
return new QueryClient({ defaultOptions });
|
|
}
|
|
// Browser: singleton
|
|
if (!clientQueryClient) {
|
|
clientQueryClient = new QueryClient({ defaultOptions });
|
|
}
|
|
return clientQueryClient;
|
|
}
|