mirror of
https://github.com/fluxerapp/fluxer
synced 2026-10-18 21:45:31 +09:00
fix(app): keep unsent messages and stop the unread jump on reconnect (#1861)
This commit is contained in:
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;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user