diff --git a/src/components/views/context_menus/MessageContextMenu.js b/src/components/views/context_menus/MessageContextMenu.js index e56a3e2f6f..db416b8a06 100644 --- a/src/components/views/context_menus/MessageContextMenu.js +++ b/src/components/views/context_menus/MessageContextMenu.js @@ -62,19 +62,24 @@ module.exports = React.createClass({ }, onRedactClick: function() { - MatrixClientPeg.get().redactEvent( - this.props.mxEvent.getRoomId(), this.props.mxEvent.getId() - ).done(function() { - // message should disappear by itself - }, function(e) { - var ErrorDialog = sdk.getComponent("dialogs.ErrorDialog"); - // display error message stating you couldn't delete this. - var code = e.errcode || e.statusCode; - Modal.createDialog(ErrorDialog, { - title: "Error", - description: "You cannot delete this message. (" + code + ")" - }); - }); + const ConfirmRedactDialog = sdk.getComponent("dialogs.ConfirmRedactDialog"); + Modal.createDialog(ConfirmRedactDialog, { + onFinished: (proceed) => { + if (!proceed) return; + + MatrixClientPeg.get().redactEvent( + this.props.mxEvent.getRoomId(), this.props.mxEvent.getId() + ).catch(function(e) { + var ErrorDialog = sdk.getComponent("dialogs.ErrorDialog"); + // display error message stating you couldn't delete this. + var code = e.errcode || e.statusCode; + Modal.createDialog(ErrorDialog, { + title: "Error", + description: "You cannot delete this message. (" + code + ")" + }); + }).done(); + }, + }, 'mx_Dialog_confirmredact'); if (this.props.onFinished) this.props.onFinished(); }, diff --git a/src/components/views/elements/ImageView.js b/src/components/views/elements/ImageView.js index 4a0c1663be..42730aca79 100644 --- a/src/components/views/elements/ImageView.js +++ b/src/components/views/elements/ImageView.js @@ -23,6 +23,8 @@ var MatrixClientPeg = require('matrix-react-sdk/lib/MatrixClientPeg'); var DateUtils = require('matrix-react-sdk/lib/DateUtils'); var filesize = require('filesize'); var AccessibleButton = require('matrix-react-sdk/lib/components/views/elements/AccessibleButton'); +const Modal = require('matrix-react-sdk/lib/Modal'); +const sdk = require('matrix-react-sdk'); module.exports = React.createClass({ displayName: 'ImageView', @@ -62,19 +64,23 @@ module.exports = React.createClass({ }, onRedactClick: function() { - var self = this; - MatrixClientPeg.get().redactEvent( - this.props.mxEvent.getRoomId(), this.props.mxEvent.getId() - ).done(function() { - if (self.props.onFinished) self.props.onFinished(); - }, function(e) { - var ErrorDialog = sdk.getComponent("dialogs.ErrorDialog"); - // display error message stating you couldn't delete this. - var code = e.errcode || e.statusCode; - Modal.createDialog(ErrorDialog, { - title: "Error", - description: "You cannot delete this image. (" + code + ")" - }); + const ConfirmRedactDialog = sdk.getComponent("dialogs.ConfirmRedactDialog"); + Modal.createDialog(ConfirmRedactDialog, { + onFinished: (proceed) => { + if (!proceed) return; + var self = this; + MatrixClientPeg.get().redactEvent( + this.props.mxEvent.getRoomId(), this.props.mxEvent.getId() + ).catch(function(e) { + var ErrorDialog = sdk.getComponent("dialogs.ErrorDialog"); + // display error message stating you couldn't delete this. + var code = e.errcode || e.statusCode; + Modal.createDialog(ErrorDialog, { + title: "Error", + description: "You cannot delete this image. (" + code + ")" + }); + }).done(); + } }); },