Api Update: Fix messages sync (#5840)

This commit is contained in:
Alexander Zinchuk 2025-04-23 18:59:13 +02:00
parent 58e79daddb
commit ec66c16f21
3 changed files with 17 additions and 1 deletions

View File

@ -175,6 +175,7 @@ export function updater(update: Update) {
message,
shouldForceReply,
poll,
shouldCreateMessageIfNeeded: true,
});
}

View File

@ -233,6 +233,8 @@ export type ApiUpdateMessage = {
id: number;
message: Partial<ApiMessage>;
poll?: ApiPoll;
shouldForceReply?: boolean;
shouldCreateMessageIfNeeded?: true;
};
export type ApiUpdateScheduledMessage = {

View File

@ -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);