Disable edits on redacted events

Fixes https://github.com/vector-im/riot-web/issues/12633
This commit is contained in:
Travis Ralston 2020-03-06 14:23:20 -07:00
parent 4fd1d8a5e7
commit e4d323d2f2
2 changed files with 8 additions and 1 deletions

View file

@ -121,10 +121,12 @@ export default class MessageActionBar extends React.PureComponent {
componentDidMount() {
this.props.mxEvent.on("Event.decrypted", this.onDecrypted);
this.props.mxEvent.on("Event.beforeRedaction", this.onBeforeRedaction);
}
componentWillUnmount() {
this.props.mxEvent.removeListener("Event.decrypted", this.onDecrypted);
this.props.mxEvent.removeListener("Event.beforeRedaction", this.onBeforeRedaction);
}
onDecrypted = () => {
@ -133,6 +135,11 @@ export default class MessageActionBar extends React.PureComponent {
this.forceUpdate();
};
onBeforeRedaction = () => {
// When an event is redacted, we can't edit it so update the available actions.
this.forceUpdate();
};
onFocusChange = (focused) => {
if (!this.props.onFocusChange) {
return;

View file

@ -46,7 +46,7 @@ export function isContentActionable(mxEvent) {
}
export function canEditContent(mxEvent) {
if (mxEvent.status === EventStatus.CANCELLED || mxEvent.getType() !== "m.room.message") {
if (mxEvent.status === EventStatus.CANCELLED || mxEvent.getType() !== "m.room.message" || mxEvent.isRedacted()) {
return false;
}
const content = mxEvent.getOriginalContent();