Skip to content

Commit 38d65c0

Browse files
authored
Merge pull request #2856 from reduxjs/feature/1.9-rc-tweaks
2 parents 4c32e29 + e672cd8 commit 38d65c0

File tree

3 files changed

+30
-26
lines changed

3 files changed

+30
-26
lines changed

packages/toolkit/src/query/core/buildSelectors.ts

+24-22
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,9 @@ export function buildSelectors<
129129
}) {
130130
type RootState = _RootState<Definitions, string, string>
131131

132+
const selectSkippedQuery = (state: RootState) => defaultQuerySubState
133+
const selectSkippedMutation = (state: RootState) => defaultMutationSubState
134+
132135
return { buildQuerySelector, buildMutationSelector, selectInvalidatedBy }
133136

134137
function withRequestFlags<T extends { status: QueryStatus }>(
@@ -159,20 +162,18 @@ export function buildSelectors<
159162
endpointDefinition: QueryDefinition<any, any, any, any>
160163
) {
161164
return ((queryArgs: any) => {
162-
const selectQuerySubState = createSelector(
163-
selectInternalState,
164-
(internalState) =>
165-
(queryArgs === skipToken
166-
? undefined
167-
: internalState?.queries?.[
168-
serializeQueryArgs({
169-
queryArgs,
170-
endpointDefinition,
171-
endpointName,
172-
})
173-
]) ?? defaultQuerySubState
174-
)
175-
return createSelector(selectQuerySubState, withRequestFlags)
165+
const serializedArgs = serializeQueryArgs({
166+
queryArgs,
167+
endpointDefinition,
168+
endpointName,
169+
})
170+
const selectQuerySubstate = (state: RootState) =>
171+
selectInternalState(state)?.queries?.[serializedArgs] ??
172+
defaultQuerySubState
173+
const finalSelectQuerySubState =
174+
queryArgs === skipToken ? selectSkippedQuery : selectQuerySubstate
175+
176+
return createSelector(finalSelectQuerySubState, withRequestFlags)
176177
}) as QueryResultSelectorFactory<any, RootState>
177178
}
178179

@@ -184,14 +185,15 @@ export function buildSelectors<
184185
} else {
185186
mutationId = id
186187
}
187-
const selectMutationSubstate = createSelector(
188-
selectInternalState,
189-
(internalState) =>
190-
(mutationId === skipToken
191-
? undefined
192-
: internalState?.mutations?.[mutationId]) ?? defaultMutationSubState
193-
)
194-
return createSelector(selectMutationSubstate, withRequestFlags)
188+
const selectMutationSubstate = (state: RootState) =>
189+
selectInternalState(state)?.mutations?.[mutationId as string] ??
190+
defaultMutationSubState
191+
const finalSelectMutationSubstate =
192+
mutationId === skipToken
193+
? selectSkippedMutation
194+
: selectMutationSubstate
195+
196+
return createSelector(finalSelectMutationSubstate, withRequestFlags)
195197
}) as MutationResultSelectorFactory<any, RootState>
196198
}
197199

packages/toolkit/src/query/core/module.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,7 @@ export type CoreModule =
7171
| ReferenceQueryLifecycle
7272
| ReferenceCacheCollection
7373

74-
interface ThunkWithReturnValue<T>
75-
extends ThunkAction<T | undefined, any, any, AnyAction> {}
74+
interface ThunkWithReturnValue<T> extends ThunkAction<T, any, any, AnyAction> {}
7675

7776
declare module '../apiTypes' {
7877
export interface ApiModules<

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

+5-2
Original file line numberDiff line numberDiff line change
@@ -885,7 +885,7 @@ export function buildHooks<Definitions extends EndpointDefinitions>({
885885

886886
const useQueryState: UseQueryState<any> = (
887887
arg: any,
888-
{ skip = false, selectFromResult = defaultQueryStateSelector } = {}
888+
{ skip = false, selectFromResult } = {}
889889
) => {
890890
const { select } = api.endpoints[name] as ApiEndpointQuery<
891891
QueryDefinition<any, any, any, any, any>,
@@ -916,7 +916,10 @@ export function buildHooks<Definitions extends EndpointDefinitions>({
916916
)
917917

918918
const querySelector: Selector<ApiRootState, any, [any]> = useMemo(
919-
() => createSelector([selectDefaultResult], selectFromResult),
919+
() =>
920+
selectFromResult
921+
? createSelector([selectDefaultResult], selectFromResult)
922+
: selectDefaultResult,
920923
[selectDefaultResult, selectFromResult]
921924
)
922925

0 commit comments

Comments
 (0)