From aad530670978bca34101d6c45f409f8e3a722426 Mon Sep 17 00:00:00 2001 From: Ptrhnk Date: Wed, 25 Oct 2023 12:34:17 +0200 Subject: [PATCH] handle updating statement on detail changes (#1863) --- .../EntityDetail/EntityDetail.tsx | 27 ++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/packages/client/src/pages/MainPage/containers/EntityDetailBox/EntityDetail/EntityDetail.tsx b/packages/client/src/pages/MainPage/containers/EntityDetailBox/EntityDetail/EntityDetail.tsx index 40e0454a0..cd3962b8e 100644 --- a/packages/client/src/pages/MainPage/containers/EntityDetailBox/EntityDetail/EntityDetail.tsx +++ b/packages/client/src/pages/MainPage/containers/EntityDetailBox/EntityDetail/EntityDetail.tsx @@ -208,12 +208,35 @@ export const EntityDetail: React.FC = ({ detailId }) => { ); }, [entity]); + const { + status: statusStatement, + data: statement, + error: statementError, + isFetching: isFetchingStatement, + } = useQuery( + ["statement", statementId], + async () => { + const res = await api.statementGet(statementId); + return res.data; + }, + { enabled: !!statementId && api.isLoggedIn() } + ); + const updateEntityMutation = useMutation( async (changes: any) => await api.entityUpdate(detailId, changes), { onSuccess: (data, variables) => { queryClient.invalidateQueries(["entity"]); + if ( + statementId && + statement?.entities && + entity && + Object.keys(statement.entities).includes(entity.id) + ) { + queryClient.invalidateQueries(["statement"]); + } + if ( variables.references !== undefined || variables.detail !== undefined || @@ -225,9 +248,7 @@ export const EntityDetail: React.FC = ({ detailId }) => { if (entity?.class === EntityEnums.Class.Territory) { queryClient.invalidateQueries(["tree"]); } - if (entity?.class === EntityEnums.Class.Statement) { - queryClient.invalidateQueries(["statement"]); - } + queryClient.invalidateQueries(["territory"]); queryClient.invalidateQueries(["bookmarks"]); }