MCPcopy Create free account
hub / github.com/SvelteStack/svelte-query / useInfiniteQuery

Function useInfiniteQuery

src/infiniteQuery/useInfiniteQuery.ts:38–94  ·  view source on GitHub ↗
(
    arg1: TQueryKey | UseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>,
    arg2?:
        | QueryFunction<TQueryFnData, TQueryKey>
        | UseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>,
    arg3?: UseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>
)

Source from the content-addressed store, hash-verified

36 options?: Omit<UseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>, 'queryKey' | 'queryFn'>
37): UseInfiniteQueryStoreResult<TQueryFnData, TError, TData, TQueryKey>
38export default function useInfiniteQuery<TQueryFnData, TError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(
39 arg1: TQueryKey | UseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>,
40 arg2?:
41 | QueryFunction<TQueryFnData, TQueryKey>
42 | UseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>,
43 arg3?: UseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>
44): UseInfiniteQueryStoreResult<TQueryFnData, TError, TData, TQueryKey> {
45 const options = parseQueryArgs(arg1, arg2, arg3)
46 const client: QueryClient = useQueryClient()
47 let defaultedOptions = client.defaultQueryObserverOptions(options)
48 // Include callbacks in batch renders
49 defaultedOptions = setBatchCalls<UseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>>(defaultedOptions)
50 const observer = new InfiniteQueryObserver<TQueryFnData, TError, TData>(client, defaultedOptions)
51
52 const { subscribe } = readable(observer.getCurrentResult(), set => {
53 return observer.subscribe(notifyManager.batchCalls(set))
54 })
55
56 // between creating the observer and subscribing to it.
57 observer.updateResult()
58
59 function setOptions(options: UseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>)
60 function setOptions(
61 queryKey: TQueryKey,
62 options?: UseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>
63 )
64 function setOptions(
65 queryKey: TQueryKey,
66 queryFn: QueryFunction<TQueryFnData, TQueryKey>,
67 options?: UseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>
68 )
69 function setOptions(
70 arg1: TQueryKey | UseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>,
71 arg2?:
72 | QueryFunction<TQueryFnData, TQueryKey>
73 | UseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>,
74 arg3?: UseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>
75 ) {
76 if (observer.hasListeners()) {
77 const options = parseQueryArgs(arg1, arg2, arg3)
78 let defaultedOptions = client.defaultQueryObserverOptions(options)
79 // Include callbacks in batch renders
80 defaultedOptions = setBatchCalls<UseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>>(defaultedOptions)
81 observer.setOptions(defaultedOptions, { listeners: false })
82 }
83 }
84
85 function updateOptions(options: Partial<UseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>>): void {
86 observer.updateOptions(options)
87 }
88
89 function setEnabled(enabled: boolean): void {
90 updateOptions({ enabled })
91 }
92
93 return { subscribe, setOptions, updateOptions, setEnabled }
94}

Callers

nothing calls this directly

Calls 8

getCurrentResultMethod · 0.95
subscribeMethod · 0.95
parseQueryArgsFunction · 0.90
useQueryClientFunction · 0.90
setBatchCallsFunction · 0.90
batchCallsMethod · 0.80
updateResultMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…