All files / providers QueryProvider.tsx

100% Statements 3/3
100% Branches 0/0
100% Functions 1/1
100% Lines 3/3

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36            3x                           3x 3x                            
import { type ReactNode } from 'react';
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
import { ErrorBoundary } from '@/components/ErrorBoundary';
 
const queryClient = new QueryClient({
  defaultOptions: {
    queries: {
      staleTime: 60 * 1000, // 1 minute
      gcTime: 5 * 60 * 1000, // 5 minutes
      retry: 1,
      refetchOnWindowFocus: true,
    },
  },
});
 
interface QueryProviderProps {
  children: ReactNode;
}
 
export function QueryProvider({ children }: QueryProviderProps) {
  const isDevelopment = import.meta.env.DEV;
 
  return (
    <QueryClientProvider client={queryClient}>
      <ErrorBoundary context="QueryProvider">{children}</ErrorBoundary>
      {isDevelopment ? <ReactQueryDevtools initialIsOpen={false} /> : null}
    </QueryClientProvider>
  );
}
 
/**
 * Export queryClient for use in tests and manual cache operations
 */
export { queryClient };