From ec66c16f2189b4cbf6158527669bf5c5f88db607 Mon Sep 17 00:00:00 2001 From: Alexander Zinchuk Date: Wed, 23 Apr 2025 18:59:13 +0200 Subject: [PATCH] Api Update: Fix messages sync (#5840) --- src/api/gramjs/updates/mtpUpdateHandler.ts | 1 + src/api/types/updates.ts | 2 ++ src/global/actions/apiUpdaters/messages.ts | 15 ++++++++++++++- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/api/gramjs/updates/mtpUpdateHandler.ts b/src/api/gramjs/updates/mtpUpdateHandler.ts index 58249d637..f7b382eb3 100644 --- a/src/api/gramjs/updates/mtpUpdateHandler.ts +++ b/src/api/gramjs/updates/mtpUpdateHandler.ts @@ -175,6 +175,7 @@ export function updater(update: Update) { message, shouldForceReply, poll, + shouldCreateMessageIfNeeded: true, }); } diff --git a/src/api/types/updates.ts b/src/api/types/updates.ts index 118f77231..1e756fee6 100644 --- a/src/api/types/updates.ts +++ b/src/api/types/updates.ts @@ -233,6 +233,8 @@ export type ApiUpdateMessage = { id: number; message: Partial; poll?: ApiPoll; + shouldForceReply?: boolean; + shouldCreateMessageIfNeeded?: true; }; export type ApiUpdateScheduledMessage = { diff --git a/src/global/actions/apiUpdaters/messages.ts b/src/global/actions/apiUpdaters/messages.ts index b68eb4039..affc2e99d 100644 --- a/src/global/actions/apiUpdaters/messages.ts +++ b/src/global/actions/apiUpdaters/messages.ts @@ -256,10 +256,23 @@ addActionHandler('apiUpdate', (global, actions, update): ActionReturnType => { case 'updateMessage': { const { - chatId, id, message, poll, + chatId, id, message, poll, shouldCreateMessageIfNeeded, shouldForceReply, } = update; const currentMessage = selectChatMessage(global, chatId, id); + + if (shouldCreateMessageIfNeeded && !currentMessage) { + actions.apiUpdate({ + '@type': 'newMessage', + id: update.id, + chatId: update.chatId, + message: update.message, + poll: update.poll, + shouldForceReply, + }); + return; + } + const chat = selectChat(global, chatId); global = updateWithLocalMedia(global, chatId, id, message);