From 6abe735caddf7f335948e177fb1e4536999676ff Mon Sep 17 00:00:00 2001 From: Marie <51697796+ijreilly@users.noreply.github.com> Date: Mon, 23 Dec 2024 14:19:25 +0100 Subject: [PATCH] Fix optimistic rendering when deleting multiple records (#9198) Fixes https://discord.com/channels/1130383047699738754/1319676302944370730/1319676302944370730 --- .../triggerUpdateRecordOptimisticEffectByBatch.ts | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/packages/twenty-front/src/modules/apollo/optimistic-effect/utils/triggerUpdateRecordOptimisticEffectByBatch.ts b/packages/twenty-front/src/modules/apollo/optimistic-effect/utils/triggerUpdateRecordOptimisticEffectByBatch.ts index 0b115f958..52e88985e 100644 --- a/packages/twenty-front/src/modules/apollo/optimistic-effect/utils/triggerUpdateRecordOptimisticEffectByBatch.ts +++ b/packages/twenty-front/src/modules/apollo/optimistic-effect/utils/triggerUpdateRecordOptimisticEffectByBatch.ts @@ -75,14 +75,12 @@ export const triggerUpdateRecordOptimisticEffectByBatch = ({ objectMetadataItem, }); - const updatedRecordIndexInRootQueryEdges = - rootQueryCurrentEdges.findIndex( + const updatedRecordFoundInRootQueryEdges = isDefined( + rootQueryCurrentEdges.find( (cachedEdge) => readField('id', cachedEdge.node) === updatedRecord.id, - ); - - const updatedRecordFoundInRootQueryEdges = - updatedRecordIndexInRootQueryEdges > -1; + ), + ); const updatedRecordShouldBeAddedToRootQueryEdges = updatedRecordMatchesThisRootQueryFilter && @@ -105,7 +103,10 @@ export const triggerUpdateRecordOptimisticEffectByBatch = ({ } if (updatedRecordShouldBeRemovedFromRootQueryEdges) { - rootQueryNextEdges.splice(updatedRecordIndexInRootQueryEdges, 1); + rootQueryNextEdges = rootQueryNextEdges.filter( + (cachedEdge) => + readField('id', cachedEdge.node) !== updatedRecord.id, + ); } }