Midday / apps /dashboard /src /trpc /query-client.ts
Jules
Final deployment with all fixes and verified content
c09f67c
import {
defaultShouldDehydrateQuery,
isServer,
QueryClient,
} from "@tanstack/react-query";
import superjson from "superjson";
export function makeQueryClient() {
return new QueryClient({
defaultOptions: {
queries: {
// Default staleTime of 2 minutes - queries won't refetch if data is fresh
// For static data (user settings, team config), override with longer staleTime (5+ min)
staleTime: 2 * 60 * 1000,
// Keep unused data in cache for 10 minutes before garbage collection
gcTime: 10 * 60 * 1000,
// On the server, limit retries to 1 so fetchQuery/prefetchQuery fail
// fast (prevents 3× exponential-backoff delays that stall SSR).
// On the client, allow 2 retries for resilience against transient
// network hiccups (mobile, slow connections, etc.).
retry: isServer ? 1 : 2,
},
dehydrate: {
serializeData: superjson.serialize,
shouldDehydrateQuery: (query) =>
defaultShouldDehydrateQuery(query) ||
query.state.status === "pending",
},
hydrate: {
deserializeData: superjson.deserialize,
},
},
});
}