From 6c2da09b477ce42a8625b2f0d28c955d98d2c1a8 Mon Sep 17 00:00:00 2001 From: EskiMojo14 Date: Sat, 4 May 2024 23:46:17 +0100 Subject: [PATCH] refetch with initiate so that runningQueries are tracked properly --- .../src/query/core/buildMiddleware/index.ts | 22 ++++++++----------- .../buildMiddleware/invalidationByTags.ts | 2 +- .../src/query/core/buildMiddleware/polling.ts | 2 +- .../src/query/core/buildMiddleware/types.ts | 6 ++--- .../buildMiddleware/windowEventHandling.ts | 2 +- 5 files changed, 14 insertions(+), 20 deletions(-) diff --git a/packages/toolkit/src/query/core/buildMiddleware/index.ts b/packages/toolkit/src/query/core/buildMiddleware/index.ts index 4c44107368..0d15fc1a08 100644 --- a/packages/toolkit/src/query/core/buildMiddleware/index.ts +++ b/packages/toolkit/src/query/core/buildMiddleware/index.ts @@ -11,12 +11,12 @@ import type { FullTagDescription, } from '../../endpointDefinitions' import type { QueryStatus, QuerySubState, RootState } from '../apiState' -import type { QueryThunkArg } from '../buildThunks' import { buildCacheCollectionHandler } from './cacheCollection' import { buildInvalidationByTagsHandler } from './invalidationByTags' import { buildPollingHandler } from './polling' import type { BuildMiddlewareInput, + BuildSubMiddlewareInput, InternalHandlerBuilder, InternalMiddlewareState, } from './types' @@ -63,7 +63,7 @@ export function buildMiddleware< currentSubscriptions: {}, } - const builderArgs = { + const builderArgs: BuildSubMiddlewareInput = { ...(input as any as BuildMiddlewareInput< EndpointDefinitions, string, @@ -135,17 +135,13 @@ export function buildMiddleware< QuerySubState, { status: QueryStatus.uninitialized } >, - queryCacheKey: string, - override: Partial = {}, ) { - return queryThunk({ - type: 'query', - endpointName: querySubState.endpointName, - originalArgs: querySubState.originalArgs, - subscribe: false, - forceRefetch: true, - queryCacheKey: queryCacheKey as any, - ...override, - }) + return api.endpoints[querySubState.endpointName].initiate( + querySubState.originalArgs as never, + { + forceRefetch: true, + subscribe: false, + }, + ) } } diff --git a/packages/toolkit/src/query/core/buildMiddleware/invalidationByTags.ts b/packages/toolkit/src/query/core/buildMiddleware/invalidationByTags.ts index 150406a863..7dda07a7f2 100644 --- a/packages/toolkit/src/query/core/buildMiddleware/invalidationByTags.ts +++ b/packages/toolkit/src/query/core/buildMiddleware/invalidationByTags.ts @@ -122,7 +122,7 @@ export const buildInvalidationByTagsHandler: InternalHandlerBuilder = ({ }), ) } else if (querySubState.status !== QueryStatus.uninitialized) { - mwApi.dispatch(refetchQuery(querySubState, queryCacheKey)) + mwApi.dispatch(refetchQuery(querySubState)) } } } diff --git a/packages/toolkit/src/query/core/buildMiddleware/polling.ts b/packages/toolkit/src/query/core/buildMiddleware/polling.ts index 6bee83fae4..dbf3a8533b 100644 --- a/packages/toolkit/src/query/core/buildMiddleware/polling.ts +++ b/packages/toolkit/src/query/core/buildMiddleware/polling.ts @@ -78,7 +78,7 @@ export const buildPollingHandler: InternalHandlerBuilder = ({ pollingInterval: lowestPollingInterval, timeout: setTimeout(() => { if (state.config.focused || !skipPollingIfUnfocused) { - api.dispatch(refetchQuery(querySubState, queryCacheKey)) + api.dispatch(refetchQuery(querySubState)) } startNextPoll({ queryCacheKey }, api) }, lowestPollingInterval), diff --git a/packages/toolkit/src/query/core/buildMiddleware/types.ts b/packages/toolkit/src/query/core/buildMiddleware/types.ts index e2ab377b6c..ec9503fca1 100644 --- a/packages/toolkit/src/query/core/buildMiddleware/types.ts +++ b/packages/toolkit/src/query/core/buildMiddleware/types.ts @@ -1,8 +1,8 @@ import type { Action, - AsyncThunkAction, Middleware, MiddlewareAPI, + ThunkAction, ThunkDispatch, UnknownAction, } from '@reduxjs/toolkit' @@ -64,9 +64,7 @@ export interface BuildSubMiddlewareInput QuerySubState, { status: QueryStatus.uninitialized } >, - queryCacheKey: string, - override?: Partial, - ): AsyncThunkAction + ): ThunkAction isThisApiSliceAction: (action: Action) => boolean } diff --git a/packages/toolkit/src/query/core/buildMiddleware/windowEventHandling.ts b/packages/toolkit/src/query/core/buildMiddleware/windowEventHandling.ts index d59df2eaa5..e3c17b6513 100644 --- a/packages/toolkit/src/query/core/buildMiddleware/windowEventHandling.ts +++ b/packages/toolkit/src/query/core/buildMiddleware/windowEventHandling.ts @@ -58,7 +58,7 @@ export const buildWindowEventHandler: InternalHandlerBuilder = ({ }), ) } else if (querySubState.status !== QueryStatus.uninitialized) { - api.dispatch(refetchQuery(querySubState, queryCacheKey)) + api.dispatch(refetchQuery(querySubState)) } } }