Skip to content

Commit e17e0c3

Browse files
committed
Call useIsomorphicLayoutEffect to fix warning
1 parent 597e78c commit e17e0c3

File tree

1 file changed

+66
-57
lines changed

1 file changed

+66
-57
lines changed

packages/toolkit/src/query/react/buildHooks.ts

Lines changed: 66 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,14 @@ import { useShallowStableValue } from './useShallowStableValue'
4949
import type { UninitializedValue } from './constants'
5050
import { 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+
5260
export 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

353363
export 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

Comments
 (0)