diff --git a/lib/reducers/message-reducer.js b/lib/reducers/message-reducer.js --- a/lib/reducers/message-reducer.js +++ b/lib/reducers/message-reducer.js @@ -76,11 +76,11 @@ type ReplaceMessageOperation, type MessageStoreOperation, type MessageTruncationStatus, - type ThreadMessageInfo, type MessageTruncationStatuses, messageTruncationStatus, messageTypes, defaultNumberPerThread, + type ThreadMessageInfo, } from '../types/message-types.js'; import type { RawImagesMessageInfo } from '../types/messages/images.js'; import type { RawMediaMessageInfo } from '../types/messages/media.js'; @@ -1529,6 +1529,12 @@ type: 'replace', payload: { id: localID, messageInfo }, }, + { + type: 'replace_threads', + payload: { + threads: { [threadID]: threadState }, + }, + }, ]; const processedMessageStore = processMessageStoreOperations( @@ -1536,16 +1542,24 @@ messageStoreOperations, ); + const newMessageStore = { + ...messageStore, + threads: { + ...messageStore.threads, + [threadID]: threadState, + }, + messages: processedMessageStore.messages, + }; + + assertMessageStoreThreadsAreEqual( + processedMessageStore, + newMessageStore, + action.type, + ); + return { messageStoreOperations, - messageStore: { - ...messageStore, - threads: { - ...messageStore.threads, - [threadID]: threadState, - }, - messages: processedMessageStore.messages, - }, + messageStore: newMessageStore, }; } else if (action.type === processServerRequestsActionType) { const {