diff --git a/keyserver/src/creators/message-creator.js b/keyserver/src/creators/message-creator.js --- a/keyserver/src/creators/message-creator.js +++ b/keyserver/src/creators/message-creator.js @@ -549,16 +549,28 @@ 'message ID should exist in determineLatestMessagesPerThread', ); - let latestReadMessage; + const curLatestMessageForThread = latestMessagesPerThread.get(threadID); + + let latestReadMessage = curLatestMessageForThread?.latestReadMessage; if ( !notFocusedThreadIDs.has(threadID) || messageInfo.creatorID === userID ) { - latestReadMessage = messageID; + latestReadMessage = Math.max( + Number(messageID), + latestReadMessage ? Number(latestReadMessage) : -1, + ).toString(); } + const latestMessage = Math.max( + curLatestMessageForThread + ? Number(curLatestMessageForThread.latestMessage) + : -1, + Number(messageID), + ).toString(); + latestMessagesPerThread.set(threadID, { - latestMessage: messageID, + latestMessage, latestReadMessage, }); }