fix(app): keep unsent messages and stop the unread jump on reconnect (#1861)

This commit is contained in:
Hampus authored and GitHub committed 2026-08-24 12:33:17 +02:00
1 parent 2af0405317
commit b7f75e25ad
16 files changed
+295 -312

No files matched your search

@@ -240,7 +240,7 @@ export class ReadStateEntry {
let loadedOlderMessages = false;
let oldestUnread: string | null = null;
let loadedUnreadCount = 0;
messages.forAll((message) => {
messages.forEachBuffered((message) => {
if (!foundAckMessage) {
foundAckMessage = message.id === this.storedAckMessageId;
} else if (this.storedOldestUnreadMessageId == null) {
@@ -273,8 +273,8 @@ export class ReadStateEntry {
}
});
const hasUnreadBoundary = foundAckMessage || loadedOlderMessages || !messages.hasMoreBefore;
const hasPresent = messages.hasPresent();
this.estimated = !hasPresent || !hasUnreadBoundary;
const hasNewestMessages = messages.hasNewestMessages();
this.estimated = !hasNewestMessages || !hasUnreadBoundary;
if (this.estimated) {
this.unreadCount = Math.max(previousUnreadCount, loadedUnreadCount);
} else {
@@ -323,7 +323,7 @@ export class ReadStateEntry {
const messages = Messages.getMessages(this.channelId);
const isPrivate = this.isPrivate;
let mentionCount = 0;
messages.forAll((message) => {
messages.forEachBuffered((message) => {
if (snowflakeTimestamp(message.id) <= ackTimestamp) {
return;
}