'use client' import { type QueryKey, type UseSuspenseInfiniteQueryResult, useSuspenseInfiniteQuery } from '@tanstack/react-query' import type { ReactNode } from 'react' import { type UseSuspenseInfiniteQueryOptions } from './useSuspenseInfiniteQuery' /** * We provide these components to clearly express what causes suspense at the same depth. * `` serves to make `useSuspenseInfiniteQuery` easier to use in jsx. * @see {@link https://suspensive.org/docs/react-query/SuspenseInfiniteQuery Suspensive Docs} * @example * ```tsx * import { SuspenseInfiniteQuery } from '@suspensive/react-query' * * // You can use infiniteQueryOptions as props. * * {({ data, fetchNextPage }) => { * return <> * }} * * ``` */ export const SuspenseInfiniteQuery = < TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, >({ children, ...options }: UseSuspenseInfiniteQueryOptions & { children: (query: UseSuspenseInfiniteQueryResult) => ReactNode }) => <>{children(useSuspenseInfiniteQuery(options))}