UNPKG

@fanam-pkg/core-utils

Version:

Core Functions are managed here for quick web development

34 lines (28 loc) 967 B
/* Es-lint is failing to detect the Query client form @tanstack/react-query. So suppressing the eslint */ // eslint-disable-next-line import/named import {QueryClient} from "@tanstack/react-query" import {JSONObject} from "../model" const queryClient = new QueryClient({ defaultOptions: { queries: { retry: 3, retryDelay: 2000, refetchOnWindowFocus: false, }, mutations: {retry: 3, retryDelay: 2000}, }, }) export const useReactQuery = () => { const refreshQuery = (queryKey: string) => queryClient.refetchQueries({queryKey: [queryKey]}) const clearQueryCache = () => queryClient.clear() const updateQuery = <D>(queryKey: string, identifier: JSONObject, data: D) => queryClient.setQueryData([queryKey, identifier], (oldData: JSONObject) => oldData ? {...oldData, ...data} : oldData ) return { queryClient, clearQueryCache, refreshQuery, updateQuery, } }