From 80a92dcdc2d3e3ba6c97e77bf4bad7db4e6ebef6 Mon Sep 17 00:00:00 2001 From: David Baker Date: Wed, 11 Sep 2019 16:07:34 +0100 Subject: [PATCH] Update room members on member event redaction If a member event was redacted, we weren't updating the current state. --- src/models/room.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/models/room.js b/src/models/room.js index b3c22226c..453546f0f 100644 --- a/src/models/room.js +++ b/src/models/room.js @@ -1057,6 +1057,18 @@ Room.prototype._addLiveEvent = function(event, duplicateStrategy) { const redactedEvent = this.getUnfilteredTimelineSet().findEventById(redactId); if (redactedEvent) { redactedEvent.makeRedacted(event); + + // If this is in the current state, replace it with the redacted version + if (redactedEvent.getStateKey()) { + const currentStateEvent = this.currentState.getStateEvents( + redactedEvent.getType(), + redactedEvent.getStateKey(), + ); + if (currentStateEvent.getId() === redactedEvent.getId()) { + this.currentState.setStateEvents([redactedEvent]); + } + } + this.emit("Room.redaction", event, this); // TODO: we stash user displaynames (among other things) in