message: Fix showing events which were replied to and then redacted
diff: @@ -176,6 +176,9 @@ export default class ReplyThread extends React.Component {
  componentWillMount() {
  this.unmounted = false;
  this.room = this.context.matrixClient.getRoom(this.props.parentEv.getRoomId());
  + this.room.on("Room.redaction", this.onRoomRedaction);
  + // same event handler as Room.redaction as for both we just do forceUpdate
  + this.room.on("Room.redactionCancelled", this.onRoomRedaction);
  this.initialize();
  }
  @@ -185,7 +188,19 @@ export default class ReplyThread extends React.Component {
  componentWillUnmount() {
  this.unmounted = true;
  + if (this.room) {
  + this.room.removeListener("Room.redaction", this.onRoomRedaction);
  + this.room.removeListener("Room.redactionCancelled", this.onRoomRedaction);
  }
  + }
  +
  + onRoomRedaction = (ev, room) => {
  + if (this.unmounted) return;
  +
  + // we could skip an update if the event isn't in our timeline,
  + // but that's probably an early optimisation.
  + this.forceUpdate();
  + };
  async initialize() {
  const {parentEv} = this.props;
  @@ -298,10 +313,12 @@ export default class ReplyThread extends React.Component {
  return <blockquote className="mx_ReplyThread" key={ev.getId()}>
  { dateSep }
  - <EventTile mxEvent={ev}
  + <EventTile
  + mxEvent={ev}
  tileShape="reply"
  onHeightChanged={this.props.onHeightChanged}
  permalinkCreator={this.props.permalinkCreator}
  + isRedacted={ev.isRedacted()}
  isTwelveHour={SettingsStore.getValue("showTwelveHourTimestamps")} />
  </blockquote>;
  });
  