Changeset View
Changeset View
Standalone View
Standalone View
lib/reducers/message-reducer.js
Show First 20 Lines • Show All 1,607 Lines • ▼ Show 20 Lines | ) { | ||||
return { | return { | ||||
messageStoreOperations, | messageStoreOperations, | ||||
messageStore: { | messageStore: { | ||||
...messageStoreAfterReassignment, | ...messageStoreAfterReassignment, | ||||
messages: processedMessageStore.messages, | messages: processedMessageStore.messages, | ||||
}, | }, | ||||
}; | }; | ||||
} else if (action.type === setClientDBStoreActionType) { | } else if (action.type === setClientDBStoreActionType) { | ||||
const payloadMessages = action.payload.messages; | |||||
if (!payloadMessages) { | |||||
return { messageStoreOperations: [], messageStore }; | |||||
} | |||||
const actionPayloadMessageStoreThreads = | const actionPayloadMessageStoreThreads = | ||||
translateClientDBThreadMessageInfos(action.payload.messageStoreThreads); | translateClientDBThreadMessageInfos( | ||||
action.payload.messageStoreThreads ?? [], | |||||
); | |||||
const newThreads = {}; | const newThreads = {}; | ||||
for (const threadID in actionPayloadMessageStoreThreads) { | for (const threadID in actionPayloadMessageStoreThreads) { | ||||
newThreads[threadID] = { | newThreads[threadID] = { | ||||
...actionPayloadMessageStoreThreads[threadID], | ...actionPayloadMessageStoreThreads[threadID], | ||||
messageIDs: messageStore.threads[threadID]?.messageIDs ?? [], | messageIDs: messageStore.threads[threadID]?.messageIDs ?? [], | ||||
}; | }; | ||||
} | } | ||||
Show All 18 Lines | ) { | ||||
const existingMessageIDs = new Set(); | const existingMessageIDs = new Set(); | ||||
for (const threadID in threads) { | for (const threadID in threads) { | ||||
threads[threadID].messageIDs.forEach(msgID => { | threads[threadID].messageIDs.forEach(msgID => { | ||||
existingMessageIDs.add(msgID); | existingMessageIDs.add(msgID); | ||||
}); | }); | ||||
} | } | ||||
const threadsNeedMsgIDsResorting = new Set(); | const threadsNeedMsgIDsResorting = new Set(); | ||||
const actionPayloadMessages = | const actionPayloadMessages = | ||||
translateClientDBMessageInfosToRawMessageInfos(action.payload.messages); | translateClientDBMessageInfosToRawMessageInfos(payloadMessages); | ||||
// When starting the app on native, we filter out any local-only multimedia | // When starting the app on native, we filter out any local-only multimedia | ||||
// messages because the relevant context is no longer available | // messages because the relevant context is no longer available | ||||
const messageIDsToBeRemoved = []; | const messageIDsToBeRemoved = []; | ||||
const threadsToAdd = {}; | const threadsToAdd = {}; | ||||
for (const id in actionPayloadMessages) { | for (const id in actionPayloadMessages) { | ||||
const message = actionPayloadMessages[id]; | const message = actionPayloadMessages[id]; | ||||
const { threadID } = message; | const { threadID } = message; | ||||
▲ Show 20 Lines • Show All 113 Lines • Show Last 20 Lines |