@tanstack/react-query
Version:
Hooks for managing, caching and syncing asynchronous and remote data in React
49 lines (47 loc) • 1.23 kB
text/typescript
'use client'
import { InfiniteQueryObserver } from '@tanstack/query-core'
import { useBaseQuery } from './useBaseQuery'
import { defaultThrowOnError } from './suspense'
import type {
InfiniteQueryObserverSuccessResult,
QueryObserver,
} from '@tanstack/query-core'
import type {
DefaultError,
InfiniteData,
QueryClient,
QueryKey,
} from '@tanstack/query-core'
import type {
UseSuspenseInfiniteQueryOptions,
UseSuspenseInfiniteQueryResult,
} from './types'
export function useSuspenseInfiniteQuery<
TQueryFnData,
TError = DefaultError,
TData = InfiniteData<TQueryFnData>,
TQueryKey extends QueryKey = QueryKey,
TPageParam = unknown,
>(
options: UseSuspenseInfiniteQueryOptions<
TQueryFnData,
TError,
TData,
TQueryFnData,
TQueryKey,
TPageParam
>,
queryClient?: QueryClient,
): UseSuspenseInfiniteQueryResult<TData, TError> {
return useBaseQuery(
{
...options,
enabled: true,
suspense: true,
throwOnError: defaultThrowOnError,
},
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
InfiniteQueryObserver as typeof QueryObserver,
queryClient,
) as InfiniteQueryObserverSuccessResult<TData, TError>
}