@suspensive/react-query-4
Version:
Suspensive interfaces for @tanstack/react-query@4
20 lines (17 loc) • 798 B
text/typescript
'use client'
import { type FetchQueryOptions, type QueryKey, useQueryClient } from '@tanstack/react-query'
/**
* The `usePrefetchQuery` does not return anything, it should be used just to fire a prefetch during render, before a suspense boundary that wraps a component that uses `useSuspenseQuery`.
* @see {@link https://suspensive.org/docs/react-query/usePrefetchQuery Suspensive Docs}
*/
export function usePrefetchQuery<
TQueryFnData = unknown,
TError = unknown,
TData = TQueryFnData,
TQueryKey extends QueryKey = QueryKey,
>(options: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>) {
const queryClient = useQueryClient()
if (typeof options.queryKey !== 'undefined' && !queryClient.getQueryState(options.queryKey)) {
void queryClient.prefetchQuery(options)
}
}