From b8ec2f69d4503c49b8f3a344bf82ccd0371f67dd Mon Sep 17 00:00:00 2001 From: zubiden <19638254+zubiden@users.noreply.github.com> Date: Tue, 21 Jan 2025 18:22:03 +0100 Subject: [PATCH] Message: Prevent desync when deleting while sending (#5516) --- src/global/actions/apiUpdaters/messages.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/global/actions/apiUpdaters/messages.ts b/src/global/actions/apiUpdaters/messages.ts index ee5730409..2103e310b 100644 --- a/src/global/actions/apiUpdaters/messages.ts +++ b/src/global/actions/apiUpdaters/messages.ts @@ -410,6 +410,7 @@ addActionHandler('apiUpdate', (global, actions, update): ActionReturnType => { ...currentMessage, ...message, previousLocalId: localId, + isDeleting: undefined, }); if (poll) { @@ -487,6 +488,7 @@ addActionHandler('apiUpdate', (global, actions, update): ActionReturnType => { ...currentMessage, ...message, previousLocalId: localId, + isDeleting: undefined, }); if (poll) { @@ -1177,7 +1179,9 @@ export function deleteMessages( setTimeout(() => { global = getGlobal(); - global = deleteChatMessages(global, chatId, ids); + // Prevent local deletion of sent messages in case of desync + const stillDeletedIds = ids.filter((id) => selectChatMessage(global, chatId, id)?.isDeleting); + global = deleteChatMessages(global, chatId, stillDeletedIds); setGlobal(global); }, isAnimatingAsSnap ? SNAP_ANIMATION_DELAY : ANIMATION_DELAY);