All checks were successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com> Co-committed-by: Jason Woltje <jason@diversecanvas.com>
29 lines
857 B
TypeScript
29 lines
857 B
TypeScript
"use client";
|
|
|
|
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
|
import { useState, type ReactNode } from "react";
|
|
|
|
interface ReactQueryProviderProps {
|
|
children: ReactNode;
|
|
}
|
|
|
|
export function ReactQueryProvider({ children }: ReactQueryProviderProps): React.JSX.Element {
|
|
// Create a stable QueryClient per component mount (one per app session)
|
|
const [queryClient] = useState(
|
|
() =>
|
|
new QueryClient({
|
|
defaultOptions: {
|
|
queries: {
|
|
// Don't refetch on window focus in a dashboard context
|
|
refetchOnWindowFocus: false,
|
|
// Stale time of 30s — short enough for live data, avoids hammering
|
|
staleTime: 30_000,
|
|
retry: 1,
|
|
},
|
|
},
|
|
})
|
|
);
|
|
|
|
return <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>;
|
|
}
|