MCPcopy Create free account
hub / github.com/TanStack/query / useQueries

Function useQueries

packages/preact-query/src/useQueries.ts:207–327  ·  view source on GitHub ↗
(
  {
    queries,
    ...options
  }: {
    queries:
      | readonly [...QueriesOptions<T>]
      | readonly [...{ [K in keyof T]: GetUseQueryOptionsForUseQueries<T[K]> }]
    combine?: (result: QueriesResults<T>) => TCombinedResult
    subscribed?: boolean
  },
  queryClient?: QueryClient,
)

Source from the content-addressed store, hash-verified

205 : { [K in keyof T]: GetUseQueryResult<T[K]> }
206
207export function useQueries<
208 T extends Array<any>,
209 TCombinedResult = QueriesResults<T>,
210>(
211 {
212 queries,
213 ...options
214 }: {
215 queries:
216 | readonly [...QueriesOptions<T>]
217 | readonly [...{ [K in keyof T]: GetUseQueryOptionsForUseQueries<T[K]> }]
218 combine?: (result: QueriesResults<T>) => TCombinedResult
219 subscribed?: boolean
220 },
221 queryClient?: QueryClient,
222): TCombinedResult {
223 const client = useQueryClient(queryClient)
224 const isRestoring = useIsRestoring()
225 const errorResetBoundary = useQueryErrorResetBoundary()
226
227 const defaultedQueries = useMemo(
228 () =>
229 queries.map((opts) => {
230 const defaultedOptions = client.defaultQueryOptions(
231 opts as QueryObserverOptions,
232 )
233
234 // Make sure the results are already in fetching state before subscribing or updating options
235 defaultedOptions._optimisticResults = isRestoring
236 ? 'isRestoring'
237 : 'optimistic'
238
239 return defaultedOptions
240 }),
241 [queries, client, isRestoring],
242 )
243
244 defaultedQueries.forEach((queryOptions) => {
245 ensureSuspenseTimers(queryOptions)
246 const query = client.getQueryCache().get(queryOptions.queryHash)
247 ensurePreventErrorBoundaryRetry(queryOptions, errorResetBoundary, query)
248 })
249
250 useClearResetErrorBoundary(errorResetBoundary)
251
252 const [observer] = useState(
253 () =>
254 new QueriesObserver<TCombinedResult>(
255 client,
256 defaultedQueries,
257 options as QueriesObserverOptions<TCombinedResult>,
258 ),
259 )
260
261 // note: this must be called before useSyncExternalStore
262 const [optimisticResult, getCombinedResult, trackResult] =
263 observer.getOptimisticResult(
264 defaultedQueries,

Callers 9

useSuspenseQueriesFunction · 0.90
useCustomQueriesFunction · 0.90
PageFunction · 0.90
useWrappedQueriesFunction · 0.90
TestComponentFunction · 0.90
PageFunction · 0.50
PageFunction · 0.50

Calls 15

useQueryClientFunction · 0.90
useIsRestoringFunction · 0.90
ensureSuspenseTimersFunction · 0.90
useSyncExternalStoreFunction · 0.90
shouldSuspendFunction · 0.90
fetchOptimisticFunction · 0.90
getHasErrorFunction · 0.90
defaultQueryOptionsMethod · 0.80
getMethod · 0.80

Tested by 6

useCustomQueriesFunction · 0.72
PageFunction · 0.72
useWrappedQueriesFunction · 0.72
TestComponentFunction · 0.72
PageFunction · 0.40
PageFunction · 0.40