Update conversation.unreadCount in just one place, from database

This commit is contained in:
Scott Nonnenberg
2022-05-03 13:24:31 -07:00
committed by GitHub
parent a9c788b689
commit d4e0f6a38d
3 changed files with 12 additions and 6 deletions
+7 -1
View File
@@ -4644,10 +4644,16 @@ export class ConversationModel extends window.Backbone
}
): Promise<void> {
await markConversationRead(this.attributes, newestUnreadAt, options);
await this.updateUnread();
}
async updateUnread(): Promise<void> {
const unreadCount = await window.Signal.Data.getTotalUnreadForConversation(
this.id,
{ storyId: undefined, isGroup: isGroup(this.attributes) }
{
storyId: undefined,
isGroup: isGroup(this.attributes),
}
);
const prevUnreadCount = this.get('unreadCount');
+2 -1
View File
@@ -2647,6 +2647,8 @@ export class MessageModel extends window.Backbone.Model<MessageAttributesType> {
window.Whisper.events.trigger('incrementProgress');
confirm();
conversation.queueJob('updateUnread', () => conversation.updateUnread());
}
// This function is called twice - once from handleDataMessage, and then again from
@@ -2776,7 +2778,6 @@ export class MessageModel extends window.Backbone.Model<MessageAttributesType> {
);
} else if (isFirstRun && !isGroupStoryReply) {
conversation.set({
unreadCount: (conversation.get('unreadCount') || 0) + 1,
isArchived: false,
});
}