@suspensive/react-query-4
Version:
Suspensive interfaces for @tanstack/react-query@4
20 lines (17 loc) • 854 B
text/typescript
'use client'
import { type FetchInfiniteQueryOptions, type QueryKey, useQueryClient } from '@tanstack/react-query'
/**
* The `usePrefetchInfiniteQuery` 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 `useSuspenseInfiniteQuery`.
* @see {@link https://suspensive.org/docs/react-query/usePrefetchInfiniteQuery Suspensive Docs}
*/
export function usePrefetchInfiniteQuery<
TQueryFnData = unknown,
TError = unknown,
TData = TQueryFnData,
TQueryKey extends QueryKey = QueryKey,
>(options: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>) {
const queryClient = useQueryClient()
if (typeof options.queryKey !== 'undefined' && !queryClient.getQueryState(options.queryKey)) {
void queryClient.prefetchInfiniteQuery(options)
}
}