From b9a13c578115c23fe2558a7b04b15e472bf98329 Mon Sep 17 00:00:00 2001 From: Carter Date: Wed, 24 Jun 2026 14:40:04 -0600 Subject: [PATCH] fixed pending change race condition --- src/interactions/InteractionsOverview.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/interactions/InteractionsOverview.tsx b/src/interactions/InteractionsOverview.tsx index 2619e97..b579660 100644 --- a/src/interactions/InteractionsOverview.tsx +++ b/src/interactions/InteractionsOverview.tsx @@ -72,6 +72,7 @@ interface Props { interface PendingInteraction { since: string; + seenUnsynced: boolean; accepted: boolean; } @@ -110,10 +111,13 @@ export default function InteractionsOverview(props: Props) { if (!existing || existing.accepted) { updatedPending.set(interaction.key(), { since: interaction.status.lastUpdate || moment().toISOString(), + seenUnsynced: true, accepted: false }); + } else if (!existing.seenUnsynced) { + updatedPending.set(interaction.key(), { ...existing, seenUnsynced: true }); } - } else if (existing && !existing.accepted) { + } else if (existing && existing.seenUnsynced && !existing.accepted) { updatedPending.set(interaction.key(), { ...existing, accepted: true }); } }); @@ -229,7 +233,7 @@ export default function InteractionsOverview(props: Props) { setPendingInteractions((prevPending) => { const updatedPending = new Map(prevPending); if (interactionKey) { - updatedPending.set(interactionKey, { since: moment().toISOString(), accepted: false }); + updatedPending.set(interactionKey, { since: moment().toISOString(), seenUnsynced: false, accepted: false }); } return updatedPending; });