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 @@ -1315,6 +1315,7 @@ for (const id in actionPayloadMessages) { const message = actionPayloadMessages[id]; const { threadID } = message; + const existingThread = threads[threadID] ?? newThread(); if ( (message.type === messageTypes.IMAGES || message.type === messageTypes.MULTIMEDIA) && @@ -1324,8 +1325,8 @@ threads = { ...threads, [threadID]: { - ...threads[threadID], - messageIDs: threads[threadID].messageIDs.filter( + ...existingThread, + messageIDs: existingThread.messageIDs.filter( curMessageID => curMessageID !== id, ), }, @@ -1337,11 +1338,13 @@ threads = { ...threads, [threadID]: { - ...threads[threadID], - messageIDs: [...threads[threadID].messageIDs, id], + ...existingThread, + messageIDs: [...existingThread.messageIDs, id], }, }; threadsNeedMsgIDsResorting.add(threadID); + } else if (!threads[threadID]) { + threads = { ...threads, [threadID]: existingThread }; } }