Skip to content

Commit

Permalink
fix: types for useSuspenseInfiniteQuery
Browse files Browse the repository at this point in the history
  • Loading branch information
manudeli committed Jul 21, 2023
1 parent cd244aa commit bdc3766
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 15 deletions.
25 changes: 25 additions & 0 deletions packages/react-query/src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import type {
DefinedQueryObserverResult,
InfiniteQueryObserverOptions,
InfiniteQueryObserverResult,
InfiniteQueryObserverSuccessResult,
MutateFunction,
MutationObserverOptions,
MutationObserverResult,
Expand Down Expand Up @@ -66,6 +67,25 @@ export interface UseInfiniteQueryOptions<
'queryKey'
> {}

export interface UseSuspenseInfiniteQueryOptions<
TQueryFnData = unknown,
TError = DefaultError,
TData = TQueryFnData,
TQueryData = TQueryFnData,
TQueryKey extends QueryKey = QueryKey,
TPageParam = unknown,
> extends Omit<
UseInfiniteQueryOptions<
TQueryFnData,
TError,
TData,
TQueryData,
TQueryKey,
TPageParam
>,
'enabled' | 'suspense' | 'throwOnError' | 'placeholderData'
> {}

export type UseBaseQueryResult<
TData = unknown,
TError = DefaultError,
Expand Down Expand Up @@ -96,6 +116,11 @@ export type DefinedUseInfiniteQueryResult<
TError = DefaultError,
> = DefinedInfiniteQueryObserverResult<TData, TError>

export type UseSuspenseInfiniteQueryResult<
TData = unknown,
TError = DefaultError,
> = Omit<InfiniteQueryObserverSuccessResult<TData, TError>, 'isPlaceholderData'>

export interface UseMutationOptions<
TData = unknown,
TError = DefaultError,
Expand Down
32 changes: 17 additions & 15 deletions packages/react-query/src/useSuspenseInfiniteQuery.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,20 @@
'use client'
import { InfiniteQueryObserver } from '@tanstack/query-core'
import { useBaseQuery } from './useBaseQuery'
import type { QueryObserver } from '@tanstack/query-core'
import type {
InfiniteQueryObserverSuccessResult,
QueryObserver,
} from '@tanstack/query-core'
import type {
DefaultError,
InfiniteData,
QueryClient,
QueryKey,
} from '@tanstack/query-core'
import type { DefinedUseInfiniteQueryResult } from './types'
import type { UseInfiniteQueryOptions } from './types'
import type {
UseSuspenseInfiniteQueryOptions,
UseSuspenseInfiniteQueryResult,
} from './types'

export function useSuspenseInfiniteQuery<
TQueryFnData,
Expand All @@ -18,19 +23,16 @@ export function useSuspenseInfiniteQuery<
TQueryKey extends QueryKey = QueryKey,
TPageParam = unknown,
>(
options: Omit<
UseInfiniteQueryOptions<
TQueryFnData,
TError,
TData,
TQueryFnData,
TQueryKey,
TPageParam
>,
'enabled' | 'suspense' | 'throwOnError' | 'placeholderData'
options: UseSuspenseInfiniteQueryOptions<
TQueryFnData,
TError,
TData,
TQueryFnData,
TQueryKey,
TPageParam
>,
queryClient?: QueryClient,
): Omit<DefinedUseInfiniteQueryResult<TData, TError>, 'isPlaceholderData'> {
): UseSuspenseInfiniteQueryResult<TData, TError> {
return useBaseQuery(
{
...options,
Expand All @@ -41,5 +43,5 @@ export function useSuspenseInfiniteQuery<
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
InfiniteQueryObserver as typeof QueryObserver,
queryClient,
) as DefinedUseInfiniteQueryResult<TData, TError>
) as InfiniteQueryObserverSuccessResult<TData, TError>
}

0 comments on commit bdc3766

Please sign in to comment.