@@ -49,6 +49,14 @@ import { useShallowStableValue } from './useShallowStableValue'
49
49
import type { UninitializedValue } from './constants'
50
50
import { UNINITIALIZED_VALUE } from './constants'
51
51
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
+
52
60
export interface QueryHooks <
53
61
Definition extends QueryDefinition < any , any , any , any , any >
54
62
> {
@@ -296,59 +304,61 @@ export type UseQueryStateResult<
296
304
R
297
305
> = NoInfer < R >
298
306
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
+ }
323
330
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 <
329
341
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
+ }
352
362
353
363
export type MutationStateSelector <
354
364
R extends Record < string , any > ,
@@ -659,7 +669,7 @@ export function buildHooks<Definitions extends EndpointDefinitions>({
659
669
store . getState ( ) ,
660
670
lastValue . current
661
671
)
662
- useLayoutEffect ( ( ) => {
672
+ useIsomorphicLayoutEffect ( ( ) => {
663
673
lastValue . current = newLastValue
664
674
} , [ newLastValue ] )
665
675
@@ -678,11 +688,10 @@ export function buildHooks<Definitions extends EndpointDefinitions>({
678
688
} )
679
689
680
690
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
+ )
686
695
} ,
687
696
useQuery ( arg , options ) {
688
697
const querySubscriptionResults = useQuerySubscription ( arg , options )
0 commit comments