From 90faa0d90e609b8d5279eef140469c33f5a61f4c Mon Sep 17 00:00:00 2001 From: Fedor Indutny <79877362+indutny-signal@users.noreply.github.com> Date: Tue, 24 Sep 2024 16:12:28 -0700 Subject: [PATCH] Fix cache invalidation for conversation preload --- ts/state/ducks/conversations.ts | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/ts/state/ducks/conversations.ts b/ts/state/ducks/conversations.ts index d510a1391..24e1493a0 100644 --- a/ts/state/ducks/conversations.ts +++ b/ts/state/ducks/conversations.ts @@ -5635,7 +5635,7 @@ export function reducer( if (action.type === MESSAGE_EXPIRED) { return maybeUpdateSelectedMessageForDetails( { messageId: action.payload.id, targetedMessageForDetails: undefined }, - state + dropPreloadData(state) ); } @@ -5949,20 +5949,21 @@ export function reducer( if (action.type === 'MESSAGES_ADDED') { const { conversationId, isActive, isJustSent, isNewMessage, messages } = action.payload; - const { messagesByConversation, messagesLookup } = state; - - const existingConversation = messagesByConversation[conversationId]; - if (!existingConversation) { - return state; - } - - let { newest, oldest, oldestUnseen, totalUnseen } = - existingConversation.metrics; if (messages.length < 1) { return state; } + const { messagesByConversation, messagesLookup } = state; + + const existingConversation = messagesByConversation[conversationId]; + if (!existingConversation) { + return dropPreloadData(state); + } + + let { newest, oldest, oldestUnseen, totalUnseen } = + existingConversation.metrics; + const lookup = fromPairs( existingConversation.messageIds.map(id => [id, messagesLookup[id]]) );