import { MutationCache, QueryCache, QueryClient } from "@tanstack/react-query"; import { toast } from "react-toastify"; import { setupQueryBroadcast } from "@/lib/query/setup-query-broadcast"; export const queryClient = new QueryClient({ queryCache: new QueryCache({ onError: (error) => { console.error("Query error:", error); const message = error instanceof Error ? error.message : "An error occurred while fetching data"; toast.error(message); }, }), mutationCache: new MutationCache({ onError: (error, _variables, _context, mutation) => { if (mutation.options.meta?.suppressErrorToast) return; console.error("Mutation error:", error); const message = error instanceof Error ? error.message : "An error occurred while updating data"; toast.error(message); }, }), defaultOptions: { queries: { staleTime: 5 * 60 * 1000, gcTime: 10 * 60 * 1000, retry: 1, refetchOnWindowFocus: false, }, }, }); setupQueryBroadcast(queryClient); export default queryClient;