Make event subscriptions conditional when needed

This commit is contained in:
Michael Telatynski 2020-08-14 13:30:27 +01:00
parent f982c7b334
commit de9816574f

View file

@ -114,15 +114,19 @@ export default class MessageActionBar extends React.PureComponent {
static contextType = RoomContext; static contextType = RoomContext;
componentDidMount() { componentDidMount() {
this.props.mxEvent.on("Event.decrypted", this.onDecrypted); if (this.props.mxEvent.isBeingDecrypted()) {
this.props.mxEvent.once("Event.decrypted", this.onDecrypted);
}
this.props.mxEvent.on("Event.beforeRedaction", this.onBeforeRedaction); this.props.mxEvent.on("Event.beforeRedaction", this.onBeforeRedaction);
this.props.mxEvent.on("Event.localEventIdReplaced", this.onEcho); if (this.props.mxEvent.getId()[0] !== "!") {
this.props.mxEvent.once("Event.localEventIdReplaced", this.onEcho);
}
} }
componentWillUnmount() { componentWillUnmount() {
this.props.mxEvent.removeListener("Event.decrypted", this.onDecrypted); this.props.mxEvent.off("Event.decrypted", this.onDecrypted);
this.props.mxEvent.removeListener("Event.beforeRedaction", this.onBeforeRedaction); this.props.mxEvent.off("Event.beforeRedaction", this.onBeforeRedaction);
this.props.mxEvent.removeListener("Event.localEventIdReplaced", this.onEcho); this.props.mxEvent.off("Event.localEventIdReplaced", this.onEcho);
} }
onDecrypted = () => { onDecrypted = () => {