diff --git a/packages/react-query/src/useSuspenseInfiniteQuery.ts b/packages/react-query/src/useSuspenseInfiniteQuery.ts index d64ef0c694c..9f922c6c302 100644 --- a/packages/react-query/src/useSuspenseInfiniteQuery.ts +++ b/packages/react-query/src/useSuspenseInfiniteQuery.ts @@ -1,5 +1,5 @@ 'use client' -import { InfiniteQueryObserver } from '@tanstack/query-core' +import { InfiniteQueryObserver, skipToken } from '@tanstack/query-core' import { useBaseQuery } from './useBaseQuery' import { defaultThrowOnError } from './suspense' import type { @@ -32,6 +32,12 @@ export function useSuspenseInfiniteQuery< >, queryClient?: QueryClient, ): UseSuspenseInfiniteQueryResult { + if (process.env.NODE_ENV !== 'production') { + if (options.queryFn === skipToken) { + console.error('skipToken is not allowed for useSuspenseInfiniteQuery') + } + } + return useBaseQuery( { ...options, diff --git a/packages/react-query/src/useSuspenseQueries.ts b/packages/react-query/src/useSuspenseQueries.ts index b316849be21..5aefd670d79 100644 --- a/packages/react-query/src/useSuspenseQueries.ts +++ b/packages/react-query/src/useSuspenseQueries.ts @@ -1,13 +1,14 @@ 'use client' +import { + type DefaultError, + type QueryClient, + type QueryFunction, + type ThrowOnError, + skipToken, +} from '@tanstack/query-core' import { useQueries } from './useQueries' import { defaultThrowOnError } from './suspense' import type { UseSuspenseQueryOptions, UseSuspenseQueryResult } from './types' -import type { - DefaultError, - QueryClient, - QueryFunction, - ThrowOnError, -} from '@tanstack/query-core' // Avoid TS depth-limit error in case of large array literal type MAXIMUM_DEPTH = 20 @@ -190,13 +191,21 @@ export function useSuspenseQueries< return useQueries( { ...options, - queries: options.queries.map((query) => ({ - ...query, - suspense: true, - throwOnError: defaultThrowOnError, - enabled: true, - placeholderData: undefined, - })), + queries: options.queries.map((query) => { + if (process.env.NODE_ENV !== 'production') { + if (query.queryFn === skipToken) { + console.error('skipToken is not allowed for useSuspenseQueries') + } + } + + return { + ...query, + suspense: true, + throwOnError: defaultThrowOnError, + enabled: true, + placeholderData: undefined, + } + }), } as any, queryClient, )