Don't group blank membership changes

We already drop noop membership changes when they don't make it into a MELS, so we just need to make the MELS aware enough to drop messages early that are noops.

Fixes https://github.com/vector-im/riot-web/issues/12575
This commit is contained in:
Travis Ralston 2020-03-02 17:52:20 -07:00
parent db3721b10b
commit d95f843cd0

View file

@ -962,6 +962,17 @@ class MemberGrouper {
} }
add(ev) { add(ev) {
if (ev.getType() === 'm.room.member') {
// We'll just double check that it's worth our time to do so...
if (ev.getPrevContent()) {
const membershipChange = ev.getPrevContent()['membership'] !== ev.getContent()['membership'];
const displayNameChange = ev.getPrevContent()['displayname'] !== ev.getContent()['displayname'];
const avatarChange = ev.getPrevContent()['avatar_url'] !== ev.getContent()['avatar_url'];
if (!membershipChange && !displayNameChange && !avatarChange) {
return; // Not a substantial change - quietly ignore
}
}
}
this.readMarker = this.readMarker || this.panel._readMarkerForEvent(ev.getId()); this.readMarker = this.readMarker || this.panel._readMarkerForEvent(ev.getId());
this.events.push(ev); this.events.push(ev);
} }