import { QueryClient } from '@tanstack/react-query'; // Create a client with default options export const queryClient = new QueryClient({ defaultOptions: { queries: { // Time in milliseconds that data remains fresh staleTime: 5 * 60 * 1000, // 5 minutes // Time in milliseconds that data remains in cache gcTime: 10 * 60 * 1000, // 10 minutes (formerly cacheTime) // Retry failed requests retry: (failureCount, error) => { // Don't retry on 4xx errors (client errors) if (error instanceof Error && 'status' in error) { const status = (error as { status: number }).status; if (status >= 400 && status < 500) { return false; } } // Retry up to 3 times for other errors return failureCount < 3; }, // Refetch on window focus refetchOnWindowFocus: false, // Refetch on reconnect refetchOnReconnect: true, }, mutations: { // Don't retry mutations automatically - let user retry manually retry: false, }, }, });