diff --git a/src/global/actions/apiUpdaters/messages.ts b/src/global/actions/apiUpdaters/messages.ts index c5e1587a3..b83d1727a 100644 --- a/src/global/actions/apiUpdaters/messages.ts +++ b/src/global/actions/apiUpdaters/messages.ts @@ -267,14 +267,16 @@ addActionHandler('apiUpdate', (global, actions, update): ActionReturnType => { const thread = selectThreadByMessage(global, message); // For some reason Telegram requires to manually mark outgoing thread messages read + Object.values(global.byTabId).forEach(({ id: tabId }) => { + const { chatId: currentChatId, threadId: currentThreadId } = selectCurrentMessageList(global, tabId) || {}; + if (currentChatId !== chatId + || (thread?.threadInfo?.threadId || MAIN_THREAD_ID) !== currentThreadId) { + return; + } + + actions.markMessageListRead({ maxId: message.id, tabId }); + }); if (thread?.threadInfo) { - Object.values(global.byTabId).forEach(({ id: tabId }) => { - const { chatId: currentChatId, threadId: currentThreadId } = selectCurrentMessageList(global, tabId) || {}; - if (currentChatId !== chatId || thread.threadInfo?.threadId !== currentThreadId) return; - - actions.markMessageListRead({ maxId: message.id, tabId }); - }); - global = replaceThreadParam(global, chatId, thread.threadInfo.threadId, 'threadInfo', { ...thread.threadInfo, lastMessageId: message.id,