diff --git a/src/entities/applet/model/services/RefreshAppletService.ts b/src/entities/applet/model/services/RefreshAppletService.ts index dbecb324b..2c2da2ea2 100644 --- a/src/entities/applet/model/services/RefreshAppletService.ts +++ b/src/entities/applet/model/services/RefreshAppletService.ts @@ -17,6 +17,7 @@ import { ILogger } from '@app/shared/lib/types/logger'; import { ImageUrl } from '@app/shared/lib/types/url'; import { getActivityDetailsKey, + getAppletBaseInfoKey, getAppletDetailsKey, getAssignmentsKey, getDataFromQuery, @@ -80,6 +81,13 @@ export class RefreshAppletService implements IRefreshAppletService { } } + private resetAppletBaseInfoQuery(appletId: string) { + this.queryClient.removeQueries({ + exact: true, + queryKey: getAppletBaseInfoKey(appletId), + }); + } + private resetAppletDetailsQuery(appletId: string) { this.queryClient.removeQueries({ exact: true, @@ -113,6 +121,7 @@ export class RefreshAppletService implements IRefreshAppletService { private refreshAppletCaches( appletInternalDtos: CollectAppletInternalsResult, ) { + this.resetAppletBaseInfoQuery(appletInternalDtos.appletId); this.resetAppletDetailsQuery(appletInternalDtos.appletId); for (const activityDto of appletInternalDtos.activities) { @@ -195,6 +204,8 @@ export class RefreshAppletService implements IRefreshAppletService { `[RefreshAppletService.partialRefresh]: Skip refresh for Applet "${appletDto.displayName}|${appletDto.id}" as to versions are the same`, ); + this.resetAppletBaseInfoQuery(appletDto.id); + const assignmentsResponse = allAppletAssignments.appletAssignments[appletDto.id]; if (!assignmentsResponse) { diff --git a/src/shared/api/services/appletsService.ts b/src/shared/api/services/appletsService.ts index 41d3fff87..2f7fb181b 100644 --- a/src/shared/api/services/appletsService.ts +++ b/src/shared/api/services/appletsService.ts @@ -10,6 +10,8 @@ import { AppletAndActivitiesDetailsResponse, AppletAssignmentsRequest, AppletAssignmentsResponse, + AppletBaseInfoRequest, + AppletBaseInfoResponse, AppletDetailsRequest, AppletDetailsResponse, AppletsResponse, @@ -20,7 +22,7 @@ export function appletsService(): IAppletService { return { async getAppletBaseInfo(request: AppletBaseInfoRequest) { const apiCall = () => { - return httpService.get( + return httpService.get( `/applets/${request.appletId}/base_info`, ); }; diff --git a/src/shared/lib/utils/reactQueryHelpers.ts b/src/shared/lib/utils/reactQueryHelpers.ts index da919639c..379947033 100644 --- a/src/shared/lib/utils/reactQueryHelpers.ts +++ b/src/shared/lib/utils/reactQueryHelpers.ts @@ -25,6 +25,9 @@ export const hasPendingMutations = (queryClient: QueryClient): boolean => { export const getAppletsKey = () => ['applets'] as AppQueryKey; +export const getAppletBaseInfoKey = (appletId: string) => + ['base-info', { appletId }] as AppQueryKey; + export const getAppletDetailsKey = (appletId: string) => ['applets', { appletId }] as AppQueryKey; diff --git a/src/widgets/activity-group/model/hooks/useBaseInfo.ts b/src/widgets/activity-group/model/hooks/useBaseInfo.ts index 6b07d044b..aafbba350 100644 --- a/src/widgets/activity-group/model/hooks/useBaseInfo.ts +++ b/src/widgets/activity-group/model/hooks/useBaseInfo.ts @@ -1,6 +1,7 @@ import { useBaseQuery } from '@app/shared/api/hooks/useBaseQuery'; import { ResponseType } from '@app/shared/api/services/ActivityItemDto'; import { getDefaultAppletsService } from '@app/shared/api/services/appletsServiceInstance'; +import { getAppletBaseInfoKey } from '@shared/lib/utils/reactQueryHelpers.ts'; import { useTimer } from './useTimer'; @@ -8,7 +9,7 @@ export const useBaseInfo = (appletId: string) => { useTimer(); return useBaseQuery( - ['base-info', { appletId }], + getAppletBaseInfoKey(appletId), () => getDefaultAppletsService().getAppletBaseInfo({ appletId }), { select: data => {