@fanam-pkg/core-utils
Version:
Core Functions are managed here for quick web development
34 lines (28 loc) • 967 B
text/typescript
/* 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,
}
}