"use client"; import { QueryCache, QueryClient, QueryClientProvider, MutationCache, } from "@tanstack/react-query"; import { ReactQueryDevtools } from "@tanstack/react-query-devtools"; import { useState } from "react"; import { useRouter } from "next/navigation"; import { AuthProvider, useAuthContext } from "@/context/auth-context"; import { Toaster } from "@/components/ui/sonner"; import { ApiRequestError } from "@/lib/api"; function QueryProvider({ children }: { children: React.ReactNode }) { const { setToken } = useAuthContext(); const router = useRouter(); const [queryClient] = useState(() => { const on401 = (error: unknown) => { if (error instanceof ApiRequestError && error.status === 401) { setToken(null); router.push("/login"); } }; return new QueryClient({ queryCache: new QueryCache({ onError: on401 }), mutationCache: new MutationCache({ onError: on401 }), defaultOptions: { queries: { staleTime: 60 * 1000 } }, }); }); return ( {children} ); } export function Providers({ children }: { children: React.ReactNode }) { return ( {children} ); }