From be1edcd9498fc46bdcce2bc9e3ba1ab5d6193625 Mon Sep 17 00:00:00 2001 From: Ivan <8611739+IRBorisov@users.noreply.github.com> Date: Wed, 19 Feb 2025 19:25:11 +0300 Subject: [PATCH] F: Add query invalidation after error in mutation --- .../frontend/src/features/library/backend/useCloneItem.tsx | 3 ++- .../frontend/src/features/library/backend/useCreateItem.tsx | 3 ++- .../frontend/src/features/library/backend/useDeleteItem.tsx | 3 ++- .../src/features/library/backend/useRenameLocation.tsx | 3 ++- .../src/features/library/backend/useSetAccessPolicy.tsx | 3 ++- .../frontend/src/features/library/backend/useSetEditors.tsx | 3 ++- .../src/features/library/backend/useSetLocation.tsx | 3 ++- .../frontend/src/features/library/backend/useSetOwner.tsx | 3 ++- .../frontend/src/features/library/backend/useUpdateItem.tsx | 3 ++- .../src/features/library/backend/useVersionCreate.tsx | 3 ++- .../src/features/library/backend/useVersionDelete.tsx | 3 ++- .../src/features/library/backend/useVersionRestore.tsx | 3 ++- .../src/features/library/backend/useVersionUpdate.tsx | 3 ++- .../src/features/oss/backend/useFindPredecessor.tsx | 6 ++++-- .../frontend/src/features/oss/backend/useInputCreate.tsx | 3 ++- .../frontend/src/features/oss/backend/useInputUpdate.tsx | 3 ++- .../src/features/oss/backend/useOperationCreate.tsx | 3 ++- .../src/features/oss/backend/useOperationDelete.tsx | 3 ++- .../src/features/oss/backend/useOperationExecute.tsx | 3 ++- .../src/features/oss/backend/useOperationUpdate.tsx | 3 ++- .../src/features/oss/backend/useRelocateConstituents.tsx | 3 ++- .../src/features/oss/backend/useUpdatePositions.tsx | 6 ++++-- .../frontend/src/features/rsform/backend/useCstCreate.tsx | 3 ++- .../frontend/src/features/rsform/backend/useCstDelete.tsx | 3 ++- .../frontend/src/features/rsform/backend/useCstMove.tsx | 3 ++- .../frontend/src/features/rsform/backend/useCstRename.tsx | 3 ++- .../src/features/rsform/backend/useCstSubstitute.tsx | 3 ++- .../frontend/src/features/rsform/backend/useCstUpdate.tsx | 3 ++- .../src/features/rsform/backend/useInlineSynthesis.tsx | 3 ++- .../src/features/rsform/backend/useProduceStructure.tsx | 3 ++- .../src/features/rsform/backend/useResetAliases.tsx | 3 ++- .../src/features/rsform/backend/useRestoreOrder.tsx | 3 ++- .../frontend/src/features/rsform/backend/useUploadTRS.tsx | 3 ++- .../src/features/users/backend/useUpdateProfile.tsx | 3 ++- 34 files changed, 72 insertions(+), 36 deletions(-) diff --git a/rsconcept/frontend/src/features/library/backend/useCloneItem.tsx b/rsconcept/frontend/src/features/library/backend/useCloneItem.tsx index c259c96a..bd273659 100644 --- a/rsconcept/frontend/src/features/library/backend/useCloneItem.tsx +++ b/rsconcept/frontend/src/features/library/backend/useCloneItem.tsx @@ -10,7 +10,8 @@ export const useCloneItem = () => { const mutation = useMutation({ mutationKey: [KEYS.global_mutation, libraryApi.baseKey, 'clone-item'], mutationFn: libraryApi.cloneItem, - onSuccess: () => client.invalidateQueries({ queryKey: [libraryApi.baseKey] }) + onSuccess: () => client.invalidateQueries({ queryKey: [libraryApi.baseKey] }), + onError: () => client.invalidateQueries() }); return { cloneItem: (data: ICloneLibraryItemDTO) => mutation.mutateAsync(data) diff --git a/rsconcept/frontend/src/features/library/backend/useCreateItem.tsx b/rsconcept/frontend/src/features/library/backend/useCreateItem.tsx index 44df4a75..3408a805 100644 --- a/rsconcept/frontend/src/features/library/backend/useCreateItem.tsx +++ b/rsconcept/frontend/src/features/library/backend/useCreateItem.tsx @@ -10,7 +10,8 @@ export const useCreateItem = () => { const mutation = useMutation({ mutationKey: [KEYS.global_mutation, libraryApi.baseKey, 'create-item'], mutationFn: libraryApi.createItem, - onSuccess: () => client.invalidateQueries({ queryKey: [libraryApi.baseKey] }) + onSuccess: () => client.invalidateQueries({ queryKey: [libraryApi.baseKey] }), + onError: () => client.invalidateQueries() }); return { createItem: (data: ICreateLibraryItemDTO) => mutation.mutateAsync(data), diff --git a/rsconcept/frontend/src/features/library/backend/useDeleteItem.tsx b/rsconcept/frontend/src/features/library/backend/useDeleteItem.tsx index 6288836b..c46cc73c 100644 --- a/rsconcept/frontend/src/features/library/backend/useDeleteItem.tsx +++ b/rsconcept/frontend/src/features/library/backend/useDeleteItem.tsx @@ -21,7 +21,8 @@ export const useDeleteItem = () => { ]).catch(console.error), PARAMETER.navigationDuration ); - } + }, + onError: () => client.invalidateQueries() }); return { deleteItem: (target: number) => mutation.mutateAsync(target), diff --git a/rsconcept/frontend/src/features/library/backend/useRenameLocation.tsx b/rsconcept/frontend/src/features/library/backend/useRenameLocation.tsx index 2c515bbf..67b5d5d4 100644 --- a/rsconcept/frontend/src/features/library/backend/useRenameLocation.tsx +++ b/rsconcept/frontend/src/features/library/backend/useRenameLocation.tsx @@ -15,7 +15,8 @@ export const useRenameLocation = () => { client.invalidateQueries({ queryKey: [KEYS.library] }), client.invalidateQueries({ queryKey: [KEYS.rsform] }), client.invalidateQueries({ queryKey: [KEYS.oss] }) - ]) + ]), + onError: () => client.invalidateQueries() }); return { renameLocation: (data: IRenameLocationDTO) => mutation.mutateAsync(data) diff --git a/rsconcept/frontend/src/features/library/backend/useSetAccessPolicy.tsx b/rsconcept/frontend/src/features/library/backend/useSetAccessPolicy.tsx index 1201fed2..bf235806 100644 --- a/rsconcept/frontend/src/features/library/backend/useSetAccessPolicy.tsx +++ b/rsconcept/frontend/src/features/library/backend/useSetAccessPolicy.tsx @@ -39,7 +39,8 @@ export const useSetAccessPolicy = () => { client.setQueryData(libraryApi.libraryListKey, (prev: ILibraryItem[] | undefined) => prev?.map(item => (item.id === variables.itemID ? { ...item, access_policy: variables.policy } : item)) ); - } + }, + onError: () => client.invalidateQueries() }); return { diff --git a/rsconcept/frontend/src/features/library/backend/useSetEditors.tsx b/rsconcept/frontend/src/features/library/backend/useSetEditors.tsx index 3fa03ca7..f3069897 100644 --- a/rsconcept/frontend/src/features/library/backend/useSetEditors.tsx +++ b/rsconcept/frontend/src/features/library/backend/useSetEditors.tsx @@ -34,7 +34,8 @@ export const useSetEditors = () => { client.setQueryData(rsKey, (prev: IRSFormDTO | undefined) => !prev ? undefined : { ...prev, editors: variables.editors } ); - } + }, + onError: () => client.invalidateQueries() }); return { diff --git a/rsconcept/frontend/src/features/library/backend/useSetLocation.tsx b/rsconcept/frontend/src/features/library/backend/useSetLocation.tsx index afcbc8ba..93fb51f4 100644 --- a/rsconcept/frontend/src/features/library/backend/useSetLocation.tsx +++ b/rsconcept/frontend/src/features/library/backend/useSetLocation.tsx @@ -39,7 +39,8 @@ export const useSetLocation = () => { client.setQueryData(libraryApi.libraryListKey, (prev: ILibraryItem[] | undefined) => prev?.map(item => (item.id === variables.itemID ? { ...item, location: variables.location } : item)) ); - } + }, + onError: () => client.invalidateQueries() }); return { diff --git a/rsconcept/frontend/src/features/library/backend/useSetOwner.tsx b/rsconcept/frontend/src/features/library/backend/useSetOwner.tsx index a74bf663..c28af3ad 100644 --- a/rsconcept/frontend/src/features/library/backend/useSetOwner.tsx +++ b/rsconcept/frontend/src/features/library/backend/useSetOwner.tsx @@ -39,7 +39,8 @@ export const useSetOwner = () => { client.setQueryData(libraryApi.libraryListKey, (prev: ILibraryItem[] | undefined) => prev?.map(item => (item.id === variables.itemID ? { ...item, owner: variables.owner } : item)) ); - } + }, + onError: () => client.invalidateQueries() }); return { diff --git a/rsconcept/frontend/src/features/library/backend/useUpdateItem.tsx b/rsconcept/frontend/src/features/library/backend/useUpdateItem.tsx index 5bee0ed3..7bcd0f29 100644 --- a/rsconcept/frontend/src/features/library/backend/useUpdateItem.tsx +++ b/rsconcept/frontend/src/features/library/backend/useUpdateItem.tsx @@ -32,7 +32,8 @@ export const useUpdateItem = () => { ); } } - } + }, + onError: () => client.invalidateQueries() }); return { updateItem: (data: IUpdateLibraryItemDTO) => mutation.mutateAsync(data) diff --git a/rsconcept/frontend/src/features/library/backend/useVersionCreate.tsx b/rsconcept/frontend/src/features/library/backend/useVersionCreate.tsx index 92415380..95a92abe 100644 --- a/rsconcept/frontend/src/features/library/backend/useVersionCreate.tsx +++ b/rsconcept/frontend/src/features/library/backend/useVersionCreate.tsx @@ -15,7 +15,8 @@ export const useVersionCreate = () => { onSuccess: data => { client.setQueryData(KEYS.composite.rsItem({ itemID: data.schema.id }), data.schema); updateTimestamp(data.schema.id); - } + }, + onError: () => client.invalidateQueries() }); return { versionCreate: (data: { itemID: number; data: IVersionCreateDTO }) => diff --git a/rsconcept/frontend/src/features/library/backend/useVersionDelete.tsx b/rsconcept/frontend/src/features/library/backend/useVersionDelete.tsx index 7e8dcb7a..d6a625e5 100644 --- a/rsconcept/frontend/src/features/library/backend/useVersionDelete.tsx +++ b/rsconcept/frontend/src/features/library/backend/useVersionDelete.tsx @@ -20,7 +20,8 @@ export const useVersionDelete = () => { versions: prev.versions.filter(version => version.id !== variables.versionID) } ); - } + }, + onError: () => client.invalidateQueries() }); return { versionDelete: (data: { itemID: number; versionID: number }) => mutation.mutateAsync(data) diff --git a/rsconcept/frontend/src/features/library/backend/useVersionRestore.tsx b/rsconcept/frontend/src/features/library/backend/useVersionRestore.tsx index b07824ad..fa022d5f 100644 --- a/rsconcept/frontend/src/features/library/backend/useVersionRestore.tsx +++ b/rsconcept/frontend/src/features/library/backend/useVersionRestore.tsx @@ -12,7 +12,8 @@ export const useVersionRestore = () => { onSuccess: data => { client.setQueryData(KEYS.composite.rsItem({ itemID: data.id }), data); return client.invalidateQueries({ queryKey: [libraryApi.baseKey] }); - } + }, + onError: () => client.invalidateQueries() }); return { versionRestore: (data: { versionID: number }) => mutation.mutateAsync(data) diff --git a/rsconcept/frontend/src/features/library/backend/useVersionUpdate.tsx b/rsconcept/frontend/src/features/library/backend/useVersionUpdate.tsx index 5cb4d276..944264ad 100644 --- a/rsconcept/frontend/src/features/library/backend/useVersionUpdate.tsx +++ b/rsconcept/frontend/src/features/library/backend/useVersionUpdate.tsx @@ -23,7 +23,8 @@ export const useVersionUpdate = () => { ) } ); - } + }, + onError: () => client.invalidateQueries() }); return { versionUpdate: (data: { itemID: number; version: IVersionUpdateDTO }) => mutation.mutateAsync(data) diff --git a/rsconcept/frontend/src/features/oss/backend/useFindPredecessor.tsx b/rsconcept/frontend/src/features/oss/backend/useFindPredecessor.tsx index 52ec48c7..38689a75 100644 --- a/rsconcept/frontend/src/features/oss/backend/useFindPredecessor.tsx +++ b/rsconcept/frontend/src/features/oss/backend/useFindPredecessor.tsx @@ -1,11 +1,13 @@ -import { useMutation } from '@tanstack/react-query'; +import { useMutation, useQueryClient } from '@tanstack/react-query'; import { ossApi } from './api'; export const useFindPredecessor = () => { + const client = useQueryClient(); const mutation = useMutation({ mutationKey: [ossApi.baseKey, 'find-predecessor'], - mutationFn: ossApi.getPredecessor + mutationFn: ossApi.getPredecessor, + onError: () => client.invalidateQueries() }); return { findPredecessor: (target: number) => mutation.mutateAsync({ target: target }) diff --git a/rsconcept/frontend/src/features/oss/backend/useInputCreate.tsx b/rsconcept/frontend/src/features/oss/backend/useInputCreate.tsx index e20af714..4ef4f79e 100644 --- a/rsconcept/frontend/src/features/oss/backend/useInputCreate.tsx +++ b/rsconcept/frontend/src/features/oss/backend/useInputCreate.tsx @@ -16,7 +16,8 @@ export const useInputCreate = () => { client.invalidateQueries({ queryKey: KEYS.composite.libraryList }), client.invalidateQueries({ queryKey: [KEYS.rsform] }) ]); - } + }, + onError: () => client.invalidateQueries() }); return { inputCreate: (data: { itemID: number; data: ITargetOperation }) => diff --git a/rsconcept/frontend/src/features/oss/backend/useInputUpdate.tsx b/rsconcept/frontend/src/features/oss/backend/useInputUpdate.tsx index 27262b6d..d2a8a250 100644 --- a/rsconcept/frontend/src/features/oss/backend/useInputUpdate.tsx +++ b/rsconcept/frontend/src/features/oss/backend/useInputUpdate.tsx @@ -16,7 +16,8 @@ export const useInputUpdate = () => { client.invalidateQueries({ queryKey: KEYS.composite.libraryList }), client.invalidateQueries({ queryKey: [KEYS.rsform] }) ]); - } + }, + onError: () => client.invalidateQueries() }); return { inputUpdate: (data: { itemID: number; data: IInputUpdateDTO }) => mutation.mutateAsync(data) diff --git a/rsconcept/frontend/src/features/oss/backend/useOperationCreate.tsx b/rsconcept/frontend/src/features/oss/backend/useOperationCreate.tsx index 9f77ab7d..505a281b 100644 --- a/rsconcept/frontend/src/features/oss/backend/useOperationCreate.tsx +++ b/rsconcept/frontend/src/features/oss/backend/useOperationCreate.tsx @@ -16,7 +16,8 @@ export const useOperationCreate = () => { onSuccess: response => { client.setQueryData(ossApi.getOssQueryOptions({ itemID: response.oss.id }).queryKey, response.oss); updateTimestamp(response.oss.id); - } + }, + onError: () => client.invalidateQueries() }); return { operationCreate: (data: { itemID: number; data: IOperationCreateDTO }) => mutation.mutateAsync(data) diff --git a/rsconcept/frontend/src/features/oss/backend/useOperationDelete.tsx b/rsconcept/frontend/src/features/oss/backend/useOperationDelete.tsx index 57f5a859..e31bb24d 100644 --- a/rsconcept/frontend/src/features/oss/backend/useOperationDelete.tsx +++ b/rsconcept/frontend/src/features/oss/backend/useOperationDelete.tsx @@ -16,7 +16,8 @@ export const useOperationDelete = () => { client.invalidateQueries({ queryKey: KEYS.composite.libraryList }), client.invalidateQueries({ queryKey: [KEYS.rsform] }) ]); - } + }, + onError: () => client.invalidateQueries() }); return { operationDelete: (data: { itemID: number; data: IOperationDeleteDTO }) => mutation.mutateAsync(data) diff --git a/rsconcept/frontend/src/features/oss/backend/useOperationExecute.tsx b/rsconcept/frontend/src/features/oss/backend/useOperationExecute.tsx index 6f5d21b2..dcb4a4cd 100644 --- a/rsconcept/frontend/src/features/oss/backend/useOperationExecute.tsx +++ b/rsconcept/frontend/src/features/oss/backend/useOperationExecute.tsx @@ -16,7 +16,8 @@ export const useOperationExecute = () => { client.invalidateQueries({ queryKey: KEYS.composite.libraryList }), client.invalidateQueries({ queryKey: [KEYS.rsform] }) ]); - } + }, + onError: () => client.invalidateQueries() }); return { operationExecute: (data: { itemID: number; data: ITargetOperation }) => mutation.mutateAsync(data) diff --git a/rsconcept/frontend/src/features/oss/backend/useOperationUpdate.tsx b/rsconcept/frontend/src/features/oss/backend/useOperationUpdate.tsx index b78e4669..4f38f416 100644 --- a/rsconcept/frontend/src/features/oss/backend/useOperationUpdate.tsx +++ b/rsconcept/frontend/src/features/oss/backend/useOperationUpdate.tsx @@ -28,7 +28,8 @@ export const useOperationUpdate = () => { return client.invalidateQueries({ queryKey: KEYS.composite.rsItem({ itemID: schemaID }) }); - } + }, + onError: () => client.invalidateQueries() }); return { operationUpdate: (data: { itemID: number; data: IOperationUpdateDTO }) => mutation.mutateAsync(data) diff --git a/rsconcept/frontend/src/features/oss/backend/useRelocateConstituents.tsx b/rsconcept/frontend/src/features/oss/backend/useRelocateConstituents.tsx index 4a446a0e..8ed5c1f5 100644 --- a/rsconcept/frontend/src/features/oss/backend/useRelocateConstituents.tsx +++ b/rsconcept/frontend/src/features/oss/backend/useRelocateConstituents.tsx @@ -16,7 +16,8 @@ export const useRelocateConstituents = () => { client.invalidateQueries({ queryKey: KEYS.composite.libraryList }), client.invalidateQueries({ queryKey: [KEYS.rsform] }) ]); - } + }, + onError: () => client.invalidateQueries() }); return { relocateConstituents: (data: ICstRelocateDTO) => mutation.mutateAsync(data) diff --git a/rsconcept/frontend/src/features/oss/backend/useUpdatePositions.tsx b/rsconcept/frontend/src/features/oss/backend/useUpdatePositions.tsx index 18bbbd77..d6cdba0d 100644 --- a/rsconcept/frontend/src/features/oss/backend/useUpdatePositions.tsx +++ b/rsconcept/frontend/src/features/oss/backend/useUpdatePositions.tsx @@ -1,4 +1,4 @@ -import { useMutation } from '@tanstack/react-query'; +import { useMutation, useQueryClient } from '@tanstack/react-query'; import { useUpdateTimestamp } from '@/features/library'; @@ -8,11 +8,13 @@ import { ossApi } from './api'; import { IOperationPosition } from './types'; export const useUpdatePositions = () => { + const client = useQueryClient(); const { updateTimestamp } = useUpdateTimestamp(); const mutation = useMutation({ mutationKey: [KEYS.global_mutation, ossApi.baseKey, 'update-positions'], mutationFn: ossApi.updatePositions, - onSuccess: (_, variables) => updateTimestamp(variables.itemID) + onSuccess: (_, variables) => updateTimestamp(variables.itemID), + onError: () => client.invalidateQueries() }); return { updatePositions: (data: { diff --git a/rsconcept/frontend/src/features/rsform/backend/useCstCreate.tsx b/rsconcept/frontend/src/features/rsform/backend/useCstCreate.tsx index e6304987..2988922d 100644 --- a/rsconcept/frontend/src/features/rsform/backend/useCstCreate.tsx +++ b/rsconcept/frontend/src/features/rsform/backend/useCstCreate.tsx @@ -24,7 +24,8 @@ export const useCstCreate = () => { predicate: query => query.queryKey.length > 2 && query.queryKey[2] !== data.schema.id }) ]); - } + }, + onError: () => client.invalidateQueries() }); return { cstCreate: (data: { itemID: number; data: ICstCreateDTO }) => diff --git a/rsconcept/frontend/src/features/rsform/backend/useCstDelete.tsx b/rsconcept/frontend/src/features/rsform/backend/useCstDelete.tsx index 8e086598..69e28fc1 100644 --- a/rsconcept/frontend/src/features/rsform/backend/useCstDelete.tsx +++ b/rsconcept/frontend/src/features/rsform/backend/useCstDelete.tsx @@ -24,7 +24,8 @@ export const useCstDelete = () => { predicate: query => query.queryKey.length > 2 && query.queryKey[2] !== data.id }) ]); - } + }, + onError: () => client.invalidateQueries() }); return { cstDelete: (data: { itemID: number; data: IConstituentaList }) => mutation.mutateAsync(data) diff --git a/rsconcept/frontend/src/features/rsform/backend/useCstMove.tsx b/rsconcept/frontend/src/features/rsform/backend/useCstMove.tsx index 85d54f5f..57691183 100644 --- a/rsconcept/frontend/src/features/rsform/backend/useCstMove.tsx +++ b/rsconcept/frontend/src/features/rsform/backend/useCstMove.tsx @@ -16,7 +16,8 @@ export const useCstMove = () => { onSuccess: data => { client.setQueryData(rsformsApi.getRSFormQueryOptions({ itemID: data.id }).queryKey, data); updateTimestamp(data.id); - } + }, + onError: () => client.invalidateQueries() }); return { cstMove: (data: { itemID: number; data: ICstMoveDTO }) => mutation.mutateAsync(data) diff --git a/rsconcept/frontend/src/features/rsform/backend/useCstRename.tsx b/rsconcept/frontend/src/features/rsform/backend/useCstRename.tsx index 3fcf5ffe..f08fb941 100644 --- a/rsconcept/frontend/src/features/rsform/backend/useCstRename.tsx +++ b/rsconcept/frontend/src/features/rsform/backend/useCstRename.tsx @@ -24,7 +24,8 @@ export const useCstRename = () => { predicate: query => query.queryKey.length > 2 && query.queryKey[2] !== data.schema.id }) ]); - } + }, + onError: () => client.invalidateQueries() }); return { cstRename: (data: { itemID: number; data: ICstRenameDTO }) => mutation.mutateAsync(data) diff --git a/rsconcept/frontend/src/features/rsform/backend/useCstSubstitute.tsx b/rsconcept/frontend/src/features/rsform/backend/useCstSubstitute.tsx index 8034dcde..41a7404c 100644 --- a/rsconcept/frontend/src/features/rsform/backend/useCstSubstitute.tsx +++ b/rsconcept/frontend/src/features/rsform/backend/useCstSubstitute.tsx @@ -24,7 +24,8 @@ export const useCstSubstitute = () => { predicate: query => query.queryKey.length > 2 && query.queryKey[2] !== data.id }) ]); - } + }, + onError: () => client.invalidateQueries() }); return { cstSubstitute: (data: { itemID: number; data: ICstSubstitutionsDTO }) => mutation.mutateAsync(data) diff --git a/rsconcept/frontend/src/features/rsform/backend/useCstUpdate.tsx b/rsconcept/frontend/src/features/rsform/backend/useCstUpdate.tsx index 845e8d3c..63443f9e 100644 --- a/rsconcept/frontend/src/features/rsform/backend/useCstUpdate.tsx +++ b/rsconcept/frontend/src/features/rsform/backend/useCstUpdate.tsx @@ -20,7 +20,8 @@ export const useCstUpdate = () => { client.invalidateQueries({ queryKey: [KEYS.oss] }), client.invalidateQueries({ queryKey: [rsformsApi.baseKey] }) ]); - } + }, + onError: () => client.invalidateQueries() }); return { cstUpdate: (data: { itemID: number; data: ICstUpdateDTO }) => mutation.mutateAsync(data) diff --git a/rsconcept/frontend/src/features/rsform/backend/useInlineSynthesis.tsx b/rsconcept/frontend/src/features/rsform/backend/useInlineSynthesis.tsx index 0317618f..40b77552 100644 --- a/rsconcept/frontend/src/features/rsform/backend/useInlineSynthesis.tsx +++ b/rsconcept/frontend/src/features/rsform/backend/useInlineSynthesis.tsx @@ -24,7 +24,8 @@ export const useInlineSynthesis = () => { predicate: query => query.queryKey.length > 2 && query.queryKey[2] !== data.id }) ]); - } + }, + onError: () => client.invalidateQueries() }); return { inlineSynthesis: (data: IInlineSynthesisDTO) => mutation.mutateAsync(data) diff --git a/rsconcept/frontend/src/features/rsform/backend/useProduceStructure.tsx b/rsconcept/frontend/src/features/rsform/backend/useProduceStructure.tsx index a8bbb079..41c2d4a5 100644 --- a/rsconcept/frontend/src/features/rsform/backend/useProduceStructure.tsx +++ b/rsconcept/frontend/src/features/rsform/backend/useProduceStructure.tsx @@ -24,7 +24,8 @@ export const useProduceStructure = () => { predicate: query => query.queryKey.length > 2 && query.queryKey[2] !== data.schema.id }) ]); - } + }, + onError: () => client.invalidateQueries() }); return { produceStructure: (data: { itemID: number; data: ITargetCst }) => diff --git a/rsconcept/frontend/src/features/rsform/backend/useResetAliases.tsx b/rsconcept/frontend/src/features/rsform/backend/useResetAliases.tsx index ea955ddd..22ec49f8 100644 --- a/rsconcept/frontend/src/features/rsform/backend/useResetAliases.tsx +++ b/rsconcept/frontend/src/features/rsform/backend/useResetAliases.tsx @@ -23,7 +23,8 @@ export const useResetAliases = () => { predicate: query => query.queryKey.length > 2 && query.queryKey[2] !== data.id }) ]); - } + }, + onError: () => client.invalidateQueries() }); return { resetAliases: (data: { itemID: number }) => mutation.mutateAsync(data) diff --git a/rsconcept/frontend/src/features/rsform/backend/useRestoreOrder.tsx b/rsconcept/frontend/src/features/rsform/backend/useRestoreOrder.tsx index 966b9db3..5d1897a3 100644 --- a/rsconcept/frontend/src/features/rsform/backend/useRestoreOrder.tsx +++ b/rsconcept/frontend/src/features/rsform/backend/useRestoreOrder.tsx @@ -15,7 +15,8 @@ export const useRestoreOrder = () => { onSuccess: data => { client.setQueryData(rsformsApi.getRSFormQueryOptions({ itemID: data.id }).queryKey, data); updateTimestamp(data.id); - } + }, + onError: () => client.invalidateQueries() }); return { restoreOrder: (data: { itemID: number }) => mutation.mutateAsync(data) diff --git a/rsconcept/frontend/src/features/rsform/backend/useUploadTRS.tsx b/rsconcept/frontend/src/features/rsform/backend/useUploadTRS.tsx index 525b55f4..f8330f51 100644 --- a/rsconcept/frontend/src/features/rsform/backend/useUploadTRS.tsx +++ b/rsconcept/frontend/src/features/rsform/backend/useUploadTRS.tsx @@ -25,7 +25,8 @@ export const useUploadTRS = () => { predicate: query => query.queryKey.length > 2 && query.queryKey[2] !== data.id }) ]); - } + }, + onError: () => client.invalidateQueries() }); return { upload: (data: IRSFormUploadDTO) => mutation.mutateAsync(data) diff --git a/rsconcept/frontend/src/features/users/backend/useUpdateProfile.tsx b/rsconcept/frontend/src/features/users/backend/useUpdateProfile.tsx index b4b10ee0..2d3892b6 100644 --- a/rsconcept/frontend/src/features/users/backend/useUpdateProfile.tsx +++ b/rsconcept/frontend/src/features/users/backend/useUpdateProfile.tsx @@ -13,7 +13,8 @@ export const useUpdateProfile = () => { onSuccess: data => { client.setQueryData(usersApi.getProfileQueryOptions().queryKey, data); return client.invalidateQueries({ queryKey: usersApi.getUsersQueryOptions().queryKey }); - } + }, + onError: () => client.invalidateQueries() }); return { updateProfile: (data: IUpdateProfileDTO) => mutation.mutateAsync(data),