@@ -49,6 +49,14 @@ import { useShallowStableValue } from './useShallowStableValue'
4949import type { UninitializedValue } from './constants'
5050import { UNINITIALIZED_VALUE } from './constants'
5151
52+ // Copy-pasted from React-Redux
53+ export const useIsomorphicLayoutEffect =
54+ typeof window !== 'undefined' &&
55+ typeof window . document !== 'undefined' &&
56+ typeof window . document . createElement !== 'undefined'
57+ ? useLayoutEffect
58+ : useEffect
59+
5260export interface QueryHooks <
5361 Definition extends QueryDefinition < any , any , any , any , any >
5462> {
@@ -296,59 +304,61 @@ export type UseQueryStateResult<
296304 R
297305> = NoInfer < R >
298306
299- type UseQueryStateBaseResult <
300- D extends QueryDefinition < any , any , any , any >
301- > = QuerySubState < D > & {
302- /**
303- * Query has not started yet.
304- */
305- isUninitialized : false
306- /**
307- * Query is currently loading for the first time. No data yet.
308- */
309- isLoading : false
310- /**
311- * Query is currently fetching, but might have data from an earlier request.
312- */
313- isFetching : false
314- /**
315- * Query has data from a successful load.
316- */
317- isSuccess : false
318- /**
319- * Query is currently in "error" state.
320- */
321- isError : false
322- }
307+ type UseQueryStateBaseResult < D extends QueryDefinition < any , any , any , any > > =
308+ QuerySubState < D > & {
309+ /**
310+ * Query has not started yet.
311+ */
312+ isUninitialized : false
313+ /**
314+ * Query is currently loading for the first time. No data yet.
315+ */
316+ isLoading : false
317+ /**
318+ * Query is currently fetching, but might have data from an earlier request.
319+ */
320+ isFetching : false
321+ /**
322+ * Query has data from a successful load.
323+ */
324+ isSuccess : false
325+ /**
326+ * Query is currently in "error" state.
327+ */
328+ isError : false
329+ }
323330
324- type UseQueryStateDefaultResult <
325- D extends QueryDefinition < any , any , any , any >
326- > = Id <
327- | Override <
328- Extract <
331+ type UseQueryStateDefaultResult < D extends QueryDefinition < any , any , any , any > > =
332+ Id <
333+ | Override <
334+ Extract <
335+ UseQueryStateBaseResult < D > ,
336+ { status : QueryStatus . uninitialized }
337+ > ,
338+ { isUninitialized : true }
339+ >
340+ | Override <
329341 UseQueryStateBaseResult < D > ,
330- { status : QueryStatus . uninitialized }
331- > ,
332- { isUninitialized : true }
333- >
334- | Override <
335- UseQueryStateBaseResult < D > ,
336- | { isLoading : true ; isFetching : boolean ; data : undefined }
337- | ( { isSuccess : true ; isFetching : boolean ; error : undefined } & Required <
338- Pick < UseQueryStateBaseResult < D > , 'data' | 'fulfilledTimeStamp' >
339- > )
340- | ( { isError : true } & Required <
341- Pick < UseQueryStateBaseResult < D > , 'error' >
342- > )
343- >
344- > & {
345- /**
346- * @deprecated will be removed in the next version
347- * please use the `isLoading`, `isFetching`, `isSuccess`, `isError`
348- * and `isUninitialized` flags instead
349- */
350- status : QueryStatus
351- }
342+ | { isLoading : true ; isFetching : boolean ; data : undefined }
343+ | ( {
344+ isSuccess : true
345+ isFetching : boolean
346+ error : undefined
347+ } & Required <
348+ Pick < UseQueryStateBaseResult < D > , 'data' | 'fulfilledTimeStamp' >
349+ > )
350+ | ( { isError : true } & Required <
351+ Pick < UseQueryStateBaseResult < D > , 'error' >
352+ > )
353+ >
354+ > & {
355+ /**
356+ * @deprecated will be removed in the next version
357+ * please use the `isLoading`, `isFetching`, `isSuccess`, `isError`
358+ * and `isUninitialized` flags instead
359+ */
360+ status : QueryStatus
361+ }
352362
353363export type MutationStateSelector <
354364 R extends Record < string , any > ,
@@ -659,7 +669,7 @@ export function buildHooks<Definitions extends EndpointDefinitions>({
659669 store . getState ( ) ,
660670 lastValue . current
661671 )
662- useLayoutEffect ( ( ) => {
672+ useIsomorphicLayoutEffect ( ( ) => {
663673 lastValue . current = newLastValue
664674 } , [ newLastValue ] )
665675
@@ -678,11 +688,10 @@ export function buildHooks<Definitions extends EndpointDefinitions>({
678688 } )
679689
680690 const info = useMemo ( ( ) => ( { lastArg : arg } ) , [ arg ] )
681- return useMemo ( ( ) => [ trigger , queryStateResults , info ] , [
682- trigger ,
683- queryStateResults ,
684- info ,
685- ] )
691+ return useMemo (
692+ ( ) => [ trigger , queryStateResults , info ] ,
693+ [ trigger , queryStateResults , info ]
694+ )
686695 } ,
687696 useQuery ( arg , options ) {
688697 const querySubscriptionResults = useQuerySubscription ( arg , options )
0 commit comments