Files
movies-diary/spa/src/lib/query-client.ts
Gabriel Kaszewski 4a3a99c6d2
Some checks failed
CI / Check / Test (push) Failing after 6m35s
fix: disable vaul repositionInputs to fix iOS keyboard in drawers
2026-06-04 15:35:00 +02:00

28 lines
821 B
TypeScript

import { QueryClient, type Mutation } from "@tanstack/react-query"
import { toast } from "sonner"
import { ApiError } from "@/lib/api/client"
function onMutationError(error: Error, _vars: unknown, _ctx: unknown, mutation: Mutation) {
if (mutation.options.onError) return
const msg = error instanceof ApiError ? `Error ${error.status}` : "Something went wrong"
toast.error(msg)
}
export const queryClient = new QueryClient({
defaultOptions: {
queries: {
staleTime: 60_000,
gcTime: 5 * 60_000,
refetchOnWindowFocus: false,
refetchOnReconnect: false,
retry: (failureCount, error) => {
if (error instanceof ApiError && error.status < 500) return false
return failureCount < 2
},
},
mutations: {
onError: onMutationError as never,
},
},
})