Sigillum/Frontend/MainApp/lib/query-provider.tsx
2025-04-25 23:10:07 +05:30

30 lines
950 B
TypeScript

'use client';
import { QueryClient, QueryClientProvider, useQueryClient } from '@tanstack/react-query';
import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
import { useState, ReactNode } from 'react';
interface QueryProviderProps {
children: ReactNode;
}
export default function QueryProvider({ children }: QueryProviderProps) {
// Create a new QueryClient instance for each session
// This avoids sharing client state between users and requests
const [queryClient] = useState(() => new QueryClient({
defaultOptions: {
queries: {
staleTime: 60 * 1000, // 1 minute
refetchOnWindowFocus: false,
retry: 1,
},
},
}));
return (
<QueryClientProvider client={queryClient}>
{children}
{/* Only show ReactQueryDevtools in development */}
{process.env.NODE_ENV === 'development' && <ReactQueryDevtools initialIsOpen={false} />}
</QueryClientProvider>
);
}