Skip to content

Commit

Permalink
check if messages groups contain different ids when performing soft u…
Browse files Browse the repository at this point in the history
…pdate

Signed-off-by: Maksim Sukharev <[email protected]>
  • Loading branch information
Antreesy committed Jul 24, 2023
1 parent ebe393c commit 30a1f22
Showing 1 changed file with 16 additions and 4 deletions.
20 changes: 16 additions & 4 deletions src/components/MessagesList/MessagesList.vue
Original file line number Diff line number Diff line change
Expand Up @@ -339,15 +339,27 @@ export default {
// Check if we have this group in the old list already and it is unchanged
return newGroups.map(newGroup => oldGroupsMap.has(newGroup.id)
&& newGroup.messages.length === oldGroupsMap.get(newGroup.id).messages.length
&& newGroup.dateSeparator === oldGroupsMap.get(newGroup.id).dateSeparator
&& newGroup.previousMessageId === oldGroupsMap.get(newGroup.id).previousMessageId
&& newGroup.nextMessageId === oldGroupsMap.get(newGroup.id).nextMessageId
&& this.areGroupsIdentical(newGroup, oldGroupsMap.get(newGroup.id))
? oldGroupsMap.get(newGroup.id)
: newGroup
).sort((a, b) => a.id - b.id)
},
areGroupsIdentical(group1, group2) {
if (group1.messages.length !== group2.messages.length
|| group1.dateSeparator !== group2.dateSeparator
|| group1.previousMessageId !== group2.previousMessageId
|| group1.nextMessageId !== group2.nextMessageId) {
return false
}
// Check for temporary messages, replaced with messages from server
const array1 = group1.messages.map(message => message.id)
const array2 = group2.messages.map(message => message.id)
return array1.every(item => array2.includes(item))
},
removeExpiredMessagesFromStore() {
this.$store.dispatch('removeExpiredMessages', {
token: this.token,
Expand Down

0 comments on commit 30a1f22

Please sign in to comment.