only show "can't redact" dialog when not a network error

as the redaction is queued now and might be sent later
This commit is contained in:
Bruno Windels 2019-06-04 13:10:17 +02:00
parent 1515f8de17
commit a11deffe5e

View file

@ -119,19 +119,28 @@ module.exports = React.createClass({
onRedactClick: function() { onRedactClick: function() {
const ConfirmRedactDialog = sdk.getComponent("dialogs.ConfirmRedactDialog"); const ConfirmRedactDialog = sdk.getComponent("dialogs.ConfirmRedactDialog");
Modal.createTrackedDialog('Confirm Redact Dialog', '', ConfirmRedactDialog, { Modal.createTrackedDialog('Confirm Redact Dialog', '', ConfirmRedactDialog, {
onFinished: (proceed) => { onFinished: async (proceed) => {
if (!proceed) return; if (!proceed) return;
const cli = MatrixClientPeg.get(); const cli = MatrixClientPeg.get();
cli.redactEvent(this.props.mxEvent.getRoomId(), this.props.mxEvent.getId()).catch(function(e) { try {
await cli.redactEvent(
this.props.mxEvent.getRoomId(),
this.props.mxEvent.getId(),
);
} catch (e) {
const code = e.errcode || e.statusCode;
// only show the dialog if failing for something other than a network error
// (e.g. no errcode or statusCode)
if (typeof code !== "undefined") {
const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog"); const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
// display error message stating you couldn't delete this. // display error message stating you couldn't delete this.
const code = e.errcode || e.statusCode;
Modal.createTrackedDialog('You cannot delete this message', '', ErrorDialog, { Modal.createTrackedDialog('You cannot delete this message', '', ErrorDialog, {
title: _t('Error'), title: _t('Error'),
description: _t('You cannot delete this message. (%(code)s)', {code}), description: _t('You cannot delete this message. (%(code)s)', {code}),
}); });
}).done(); }
}
}, },
}, 'mx_Dialog_confirmredact'); }, 'mx_Dialog_confirmredact');
this.closeMenu(); this.closeMenu();