D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
home
/
forge
/
ebrokers.online
/
node_modules
/
@tanstack
/
react-query
/
src
/
Filename :
errorBoundaryUtils.ts
back
Copy
'use client' import * as React from 'react' import { shouldThrowError } from '@tanstack/query-core' import type { DefaultedQueryObserverOptions, Query, QueryKey, QueryObserverResult, ThrowOnError, } from '@tanstack/query-core' import type { QueryErrorResetBoundaryValue } from './QueryErrorResetBoundary' export const ensurePreventErrorBoundaryRetry = < TQueryFnData, TError, TData, TQueryData, TQueryKey extends QueryKey, >( options: DefaultedQueryObserverOptions< TQueryFnData, TError, TData, TQueryData, TQueryKey >, errorResetBoundary: QueryErrorResetBoundaryValue, ) => { if ( options.suspense || options.throwOnError || options.experimental_prefetchInRender ) { // Prevent retrying failed query if the error boundary has not been reset yet if (!errorResetBoundary.isReset()) { options.retryOnMount = false } } } export const useClearResetErrorBoundary = ( errorResetBoundary: QueryErrorResetBoundaryValue, ) => { React.useEffect(() => { errorResetBoundary.clearReset() }, [errorResetBoundary]) } export const getHasError = < TData, TError, TQueryFnData, TQueryData, TQueryKey extends QueryKey, >({ result, errorResetBoundary, throwOnError, query, suspense, }: { result: QueryObserverResult<TData, TError> errorResetBoundary: QueryErrorResetBoundaryValue throwOnError: ThrowOnError<TQueryFnData, TError, TQueryData, TQueryKey> query: Query<TQueryFnData, TError, TQueryData, TQueryKey> | undefined suspense: boolean | undefined }) => { return ( result.isError && !errorResetBoundary.isReset() && !result.isFetching && query && ((suspense && result.data === undefined) || shouldThrowError(throwOnError, [result.error, query])) ) }