diff --git a/ts/ConversationController.ts b/ts/ConversationController.ts index 627dcff24c..68c6992a65 100644 --- a/ts/ConversationController.ts +++ b/ts/ConversationController.ts @@ -744,37 +744,4 @@ export class ConversationController { return this._initialPromise; } - - getPinnedConversationIds(): Array { - let pinnedConversationIds = window.storage.get>( - 'pinnedConversationIds' - ); - - // If pinnedConversationIds is missing, we're upgrading from - // a previous version and need to backfill storage from pinned - // conversation models. - if (pinnedConversationIds === undefined) { - window.log.info( - 'getPinnedConversationIds: no pinned conversations in storage' - ); - - const modelPinnedConversationIds = this._conversations - .filter(conversation => conversation.get('isPinned')) - // pinIndex is a deprecated field. We now rely on the order of - // the ids in storage, which is synced with the AccountRecord. - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - .sort((a, b) => (a.get('pinIndex') || 0) - (b.get('pinIndex') || 0)) - .map(conversation => conversation.get('id')); - - window.log.info( - `getPinnedConversationIds: falling back to ${modelPinnedConversationIds.length} pinned models` - ); - - window.storage.put('pinnedConversationIds', modelPinnedConversationIds); - pinnedConversationIds = modelPinnedConversationIds; - } - - return pinnedConversationIds; - } } diff --git a/ts/services/storageRecordOps.ts b/ts/services/storageRecordOps.ts index 68792f1e2b..4f72acbbe2 100644 --- a/ts/services/storageRecordOps.ts +++ b/ts/services/storageRecordOps.ts @@ -606,9 +606,9 @@ export async function mergeAccountRecord( conversation => conversation.get('id') ); - const missingStoragePinnedConversationIds = window.ConversationController.getPinnedConversationIds().filter( - id => !modelPinnedConversationIds.includes(id) - ); + const missingStoragePinnedConversationIds = window.storage + .get>('pinnedConversationIds', []) + .filter(id => !modelPinnedConversationIds.includes(id)); if (missingStoragePinnedConversationIds.length !== 0) { window.log.info( diff --git a/ts/state/selectors/conversations.ts b/ts/state/selectors/conversations.ts index 5220e42700..900bd1b55e 100644 --- a/ts/state/selectors/conversations.ts +++ b/ts/state/selectors/conversations.ts @@ -162,7 +162,10 @@ export const _getLeftPaneLists = ( conversations.sort(comparator); archivedConversations.sort(comparator); - const pinnedConversationIds = window.ConversationController.getPinnedConversationIds(); + const pinnedConversationIds = window.storage.get>( + 'pinnedConversationIds', + [] + ); pinnedConversations.sort( (a, b) => pinnedConversationIds.indexOf(a.id) - pinnedConversationIds.indexOf(b.id) diff --git a/ts/test/state/selectors/conversations_test.ts b/ts/test/state/selectors/conversations_test.ts index a60ddc9d0a..64c213e740 100644 --- a/ts/test/state/selectors/conversations_test.ts +++ b/ts/test/state/selectors/conversations_test.ts @@ -18,8 +18,8 @@ describe('state/selectors/conversations', () => { this.oldWindow = globalAsAny.window; globalAsAny.window = {}; - window.ConversationController = { - getPinnedConversationIds: sinon.stub().returns([]), + window.storage = { + get: sinon.stub().returns([]), // eslint-disable-next-line @typescript-eslint/no-explicit-any } as any; }); @@ -173,8 +173,7 @@ describe('state/selectors/conversations', () => { describe('given pinned conversations', () => { beforeEach(() => { - (window.ConversationController - .getPinnedConversationIds as sinon.SinonStub).returns([ + (window.storage.get as sinon.SinonStub).returns([ 'pin1', 'pin2', 'pin3', diff --git a/ts/views/conversation_view.ts b/ts/views/conversation_view.ts index 9116a20887..6b274546bd 100644 --- a/ts/views/conversation_view.ts +++ b/ts/views/conversation_view.ts @@ -425,7 +425,10 @@ Whisper.ConversationView = Whisper.View.extend({ setPin(value: boolean) { if (value) { - const pinnedConversationIds = window.ConversationController.getPinnedConversationIds(); + const pinnedConversationIds = window.storage.get>( + 'pinnedConversationIds', + [] + ); if (pinnedConversationIds.length >= 4) { this.showToast(Whisper.PinnedConversationsFullToast);