32 lines
698 B
TypeScript
32 lines
698 B
TypeScript
import {
|
|
QueryClient,
|
|
defaultShouldDehydrateQuery,
|
|
environmentManager,
|
|
} from '@tanstack/react-query'
|
|
|
|
function makeQueryClient() {
|
|
return new QueryClient({
|
|
defaultOptions: {
|
|
queries: {
|
|
staleTime: 60 * 1000,
|
|
},
|
|
dehydrate: {
|
|
shouldDehydrateQuery: (query) =>
|
|
defaultShouldDehydrateQuery(query) ||
|
|
query.state.status === 'pending',
|
|
},
|
|
},
|
|
})
|
|
}
|
|
|
|
let browserQueryClient: QueryClient | undefined = undefined
|
|
|
|
export function getQueryClient() {
|
|
if (environmentManager.isServer()) {
|
|
return makeQueryClient()
|
|
} else {
|
|
if (!browserQueryClient) browserQueryClient = makeQueryClient()
|
|
return browserQueryClient
|
|
}
|
|
}
|