updateGroup: Update group attributes last, after notifications are added

This commit is contained in:
Scott Nonnenberg 2022-02-23 10:36:44 -08:00 committed by GitHub
parent 1f191401aa
commit 3673b6d101
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 15 additions and 12 deletions

View File

@ -2692,18 +2692,6 @@ async function updateGroup(
activeAt = newAttributes.active_at;
}
conversation.set({
...newAttributes,
active_at: activeAt,
temporaryMemberCount: isInGroup
? undefined
: newAttributes.temporaryMemberCount,
});
if (idChanged) {
conversation.trigger('idUpdated', conversation, 'groupId', previousId);
}
// Save all synthetic messages describing group changes
let syntheticSentAt = initialSentAt - (groupChangeMessages.length + 1);
const changeMessagesToSave = groupChangeMessages.map(changeMessage => {
@ -2769,6 +2757,21 @@ async function updateGroup(
});
}
// We update group membership last to ensure that all notifications are in place before
// the group updates happen on the model.
conversation.set({
...newAttributes,
active_at: activeAt,
temporaryMemberCount: isInGroup
? undefined
: newAttributes.temporaryMemberCount,
});
if (idChanged) {
conversation.trigger('idUpdated', conversation, 'groupId', previousId);
}
// No need for convo.updateLastMessage(), 'newmessage' handler does that
}