Make sure isPinned is in sync with storage service

This commit is contained in:
Fedor Indutny 2022-02-02 17:21:02 -08:00 committed by GitHub
parent 40983ca73e
commit 891e72a260
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 30 additions and 8 deletions

View file

@ -832,6 +832,25 @@ export class ConversationController {
this.get(conversationId)?.onOpenComplete(loadStart);
}
repairPinnedConversations(): void {
const pinnedIds = window.storage.get('pinnedConversationIds', []);
for (const id of pinnedIds) {
const convo = this.get(id);
if (!convo || convo.get('isPinned')) {
continue;
}
log.warn(
`ConversationController: Repairing ${convo.idForLogging()}'s isPinned`
);
convo.set('isPinned', true);
window.Signal.Data.updateConversation(convo.attributes);
}
}
private async doLoad(): Promise<void> {
log.info('ConversationController: starting initial fetch');