/** * React Query Provider * Simple provider setup for TanStack Query */ "use client"; import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; import { ReactQueryDevtools } from "@tanstack/react-query-devtools"; import { useState } from "react"; import { isApiError } from "@/lib/api/runtime/client"; export function QueryProvider({ children }: { children: React.ReactNode }) { const [queryClient] = useState( () => new QueryClient({ defaultOptions: { queries: { staleTime: 5 * 60 * 1000, // 5 minutes gcTime: 10 * 60 * 1000, // 10 minutes retry: (failureCount, error: unknown) => { if (isApiError(error)) { const status = error.response?.status; if (status && status >= 400 && status < 500) { return false; } const body = error.body as Record | undefined; const code = typeof body?.code === "string" ? body.code : undefined; if (code === "AUTHENTICATION_REQUIRED" || code === "FORBIDDEN") { return false; } } return failureCount < 3; }, }, }, }) ); return ( {children} {process.env.NODE_ENV === "development" && } ); }