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, message,
shouldForceReply, shouldForceReply,
poll, poll,
shouldCreateMessageIfNeeded: true,
}); });
} }

View File

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

View File

@ -256,10 +256,23 @@ addActionHandler('apiUpdate', (global, actions, update): ActionReturnType => {
case 'updateMessage': { case 'updateMessage': {
const { const {
chatId, id, message, poll, chatId, id, message, poll, shouldCreateMessageIfNeeded, shouldForceReply,
} = update; } = update;
const currentMessage = selectChatMessage(global, chatId, id); 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); const chat = selectChat(global, chatId);
global = updateWithLocalMedia(global, chatId, id, message); global = updateWithLocalMedia(global, chatId, id, message);