matrix-react-sdk
Version:
SDK for matrix.org using React
101 lines (87 loc) • 11.1 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _react = _interopRequireDefault(require("react"));
var sdk = _interopRequireWildcard(require("../../../index"));
var _languageHandler = require("../../../languageHandler");
var _replaceableComponent = require("../../../utils/replaceableComponent");
var _dec, _class, _temp;
let ConfirmAndWaitRedactDialog = (
/*
* A dialog for confirming a redaction.
* Also shows a spinner (and possible error) while the redaction is ongoing,
* and only closes the dialog when the redaction is done or failed.
*
* This is done to prevent the edit history dialog racing with the redaction:
* if this dialog closes and the MessageEditHistoryDialog is shown again,
* it will fetch the relations again, which will race with the ongoing /redact request.
* which will cause the edit to appear unredacted.
*
* To avoid this, we keep the dialog open as long as /redact is in progress.
*/
_dec = (0, _replaceableComponent.replaceableComponent)("views.dialogs.ConfirmAndWaitRedactDialog"), _dec(_class = (_temp = class ConfirmAndWaitRedactDialog extends _react.default.PureComponent {
constructor(props) {
super(props);
(0, _defineProperty2.default)(this, "onParentFinished", async proceed => {
if (proceed) {
this.setState({
isRedacting: true
});
try {
await this.props.redact();
this.props.onFinished(true);
} catch (error) {
const code = error.errcode || error.statusCode;
if (typeof code !== "undefined") {
this.setState({
redactionErrorCode: code
});
} else {
this.props.onFinished(true);
}
}
} else {
this.props.onFinished(false);
}
});
this.state = {
isRedacting: false,
redactionErrorCode: null
};
}
render() {
if (this.state.isRedacting) {
if (this.state.redactionErrorCode) {
const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
const code = this.state.redactionErrorCode;
return /*#__PURE__*/_react.default.createElement(ErrorDialog, {
onFinished: this.props.onFinished,
title: (0, _languageHandler._t)('Error'),
description: (0, _languageHandler._t)('You cannot delete this message. (%(code)s)', {
code
})
});
} else {
const BaseDialog = sdk.getComponent("dialogs.BaseDialog");
const Spinner = sdk.getComponent('elements.Spinner');
return /*#__PURE__*/_react.default.createElement(BaseDialog, {
onFinished: this.props.onFinished,
hasCancel: false,
title: (0, _languageHandler._t)("Removing…")
}, /*#__PURE__*/_react.default.createElement(Spinner, null));
}
} else {
const ConfirmRedactDialog = sdk.getComponent("dialogs.ConfirmRedactDialog");
return /*#__PURE__*/_react.default.createElement(ConfirmRedactDialog, {
onFinished: this.onParentFinished
});
}
}
}, _temp)) || _class);
exports.default = ConfirmAndWaitRedactDialog;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3ZpZXdzL2RpYWxvZ3MvQ29uZmlybUFuZFdhaXRSZWRhY3REaWFsb2cuanMiXSwibmFtZXMiOlsiQ29uZmlybUFuZFdhaXRSZWRhY3REaWFsb2ciLCJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwicHJvY2VlZCIsInNldFN0YXRlIiwiaXNSZWRhY3RpbmciLCJyZWRhY3QiLCJvbkZpbmlzaGVkIiwiZXJyb3IiLCJjb2RlIiwiZXJyY29kZSIsInN0YXR1c0NvZGUiLCJyZWRhY3Rpb25FcnJvckNvZGUiLCJzdGF0ZSIsInJlbmRlciIsIkVycm9yRGlhbG9nIiwic2RrIiwiZ2V0Q29tcG9uZW50IiwiQmFzZURpYWxvZyIsIlNwaW5uZXIiLCJDb25maXJtUmVkYWN0RGlhbG9nIiwib25QYXJlbnRGaW5pc2hlZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQWdCQTs7QUFDQTs7QUFDQTs7QUFDQTs7OztJQWVxQkEsMEI7QUFickI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO09BQ0MsZ0RBQXFCLDBDQUFyQixDLHlCQUFELE1BQ3FCQSwwQkFEckIsU0FDd0RDLGVBQU1DLGFBRDlELENBQzRFO0FBQ3hFQyxFQUFBQSxXQUFXLENBQUNDLEtBQUQsRUFBUTtBQUNmLFVBQU1BLEtBQU47QUFEZSw0REFRQSxNQUFPQyxPQUFQLElBQW1CO0FBQ2xDLFVBQUlBLE9BQUosRUFBYTtBQUNULGFBQUtDLFFBQUwsQ0FBYztBQUFDQyxVQUFBQSxXQUFXLEVBQUU7QUFBZCxTQUFkOztBQUNBLFlBQUk7QUFDQSxnQkFBTSxLQUFLSCxLQUFMLENBQVdJLE1BQVgsRUFBTjtBQUNBLGVBQUtKLEtBQUwsQ0FBV0ssVUFBWCxDQUFzQixJQUF0QjtBQUNILFNBSEQsQ0FHRSxPQUFPQyxLQUFQLEVBQWM7QUFDWixnQkFBTUMsSUFBSSxHQUFHRCxLQUFLLENBQUNFLE9BQU4sSUFBaUJGLEtBQUssQ0FBQ0csVUFBcEM7O0FBQ0EsY0FBSSxPQUFPRixJQUFQLEtBQWdCLFdBQXBCLEVBQWlDO0FBQzdCLGlCQUFLTCxRQUFMLENBQWM7QUFBQ1EsY0FBQUEsa0JBQWtCLEVBQUVIO0FBQXJCLGFBQWQ7QUFDSCxXQUZELE1BRU87QUFDSCxpQkFBS1AsS0FBTCxDQUFXSyxVQUFYLENBQXNCLElBQXRCO0FBQ0g7QUFDSjtBQUNKLE9BYkQsTUFhTztBQUNILGFBQUtMLEtBQUwsQ0FBV0ssVUFBWCxDQUFzQixLQUF0QjtBQUNIO0FBQ0osS0F6QmtCO0FBRWYsU0FBS00sS0FBTCxHQUFhO0FBQ1RSLE1BQUFBLFdBQVcsRUFBRSxLQURKO0FBRVRPLE1BQUFBLGtCQUFrQixFQUFFO0FBRlgsS0FBYjtBQUlIOztBQXFCREUsRUFBQUEsTUFBTSxHQUFHO0FBQ0wsUUFBSSxLQUFLRCxLQUFMLENBQVdSLFdBQWYsRUFBNEI7QUFDeEIsVUFBSSxLQUFLUSxLQUFMLENBQVdELGtCQUFmLEVBQW1DO0FBQy9CLGNBQU1HLFdBQVcsR0FBR0MsR0FBRyxDQUFDQyxZQUFKLENBQWlCLHFCQUFqQixDQUFwQjtBQUNBLGNBQU1SLElBQUksR0FBRyxLQUFLSSxLQUFMLENBQVdELGtCQUF4QjtBQUNBLDRCQUNJLDZCQUFDLFdBQUQ7QUFDSSxVQUFBLFVBQVUsRUFBRSxLQUFLVixLQUFMLENBQVdLLFVBRDNCO0FBRUksVUFBQSxLQUFLLEVBQUUseUJBQUcsT0FBSCxDQUZYO0FBR0ksVUFBQSxXQUFXLEVBQUUseUJBQUcsNENBQUgsRUFBaUQ7QUFBQ0UsWUFBQUE7QUFBRCxXQUFqRDtBQUhqQixVQURKO0FBT0gsT0FWRCxNQVVPO0FBQ0gsY0FBTVMsVUFBVSxHQUFHRixHQUFHLENBQUNDLFlBQUosQ0FBaUIsb0JBQWpCLENBQW5CO0FBQ0EsY0FBTUUsT0FBTyxHQUFHSCxHQUFHLENBQUNDLFlBQUosQ0FBaUIsa0JBQWpCLENBQWhCO0FBQ0EsNEJBQ0ksNkJBQUMsVUFBRDtBQUNJLFVBQUEsVUFBVSxFQUFFLEtBQUtmLEtBQUwsQ0FBV0ssVUFEM0I7QUFFSSxVQUFBLFNBQVMsRUFBRSxLQUZmO0FBR0ksVUFBQSxLQUFLLEVBQUUseUJBQUcsV0FBSDtBQUhYLHdCQUlJLDZCQUFDLE9BQUQsT0FKSixDQURKO0FBUUg7QUFDSixLQXZCRCxNQXVCTztBQUNILFlBQU1hLG1CQUFtQixHQUFHSixHQUFHLENBQUNDLFlBQUosQ0FBaUIsNkJBQWpCLENBQTVCO0FBQ0EsMEJBQU8sNkJBQUMsbUJBQUQ7QUFBcUIsUUFBQSxVQUFVLEVBQUUsS0FBS0k7QUFBdEMsUUFBUDtBQUNIO0FBQ0o7O0FBeER1RSxDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDE5IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cbkxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG55b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG5Zb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcblxuICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG5Vbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG5kaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG5XSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cblNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbmxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuKi9cblxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCAqIGFzIHNkayBmcm9tICcuLi8uLi8uLi9pbmRleCc7XG5pbXBvcnQgeyBfdCB9IGZyb20gJy4uLy4uLy4uL2xhbmd1YWdlSGFuZGxlcic7XG5pbXBvcnQge3JlcGxhY2VhYmxlQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vLi4vdXRpbHMvcmVwbGFjZWFibGVDb21wb25lbnRcIjtcblxuLypcbiAqIEEgZGlhbG9nIGZvciBjb25maXJtaW5nIGEgcmVkYWN0aW9uLlxuICogQWxzbyBzaG93cyBhIHNwaW5uZXIgKGFuZCBwb3NzaWJsZSBlcnJvcikgd2hpbGUgdGhlIHJlZGFjdGlvbiBpcyBvbmdvaW5nLFxuICogYW5kIG9ubHkgY2xvc2VzIHRoZSBkaWFsb2cgd2hlbiB0aGUgcmVkYWN0aW9uIGlzIGRvbmUgb3IgZmFpbGVkLlxuICpcbiAqIFRoaXMgaXMgZG9uZSB0byBwcmV2ZW50IHRoZSBlZGl0IGhpc3RvcnkgZGlhbG9nIHJhY2luZyB3aXRoIHRoZSByZWRhY3Rpb246XG4gKiBpZiB0aGlzIGRpYWxvZyBjbG9zZXMgYW5kIHRoZSBNZXNzYWdlRWRpdEhpc3RvcnlEaWFsb2cgaXMgc2hvd24gYWdhaW4sXG4gKiBpdCB3aWxsIGZldGNoIHRoZSByZWxhdGlvbnMgYWdhaW4sIHdoaWNoIHdpbGwgcmFjZSB3aXRoIHRoZSBvbmdvaW5nIC9yZWRhY3QgcmVxdWVzdC5cbiAqIHdoaWNoIHdpbGwgY2F1c2UgdGhlIGVkaXQgdG8gYXBwZWFyIHVucmVkYWN0ZWQuXG4gKlxuICogVG8gYXZvaWQgdGhpcywgd2Uga2VlcCB0aGUgZGlhbG9nIG9wZW4gYXMgbG9uZyBhcyAvcmVkYWN0IGlzIGluIHByb2dyZXNzLlxuICovXG5AcmVwbGFjZWFibGVDb21wb25lbnQoXCJ2aWV3cy5kaWFsb2dzLkNvbmZpcm1BbmRXYWl0UmVkYWN0RGlhbG9nXCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb25maXJtQW5kV2FpdFJlZGFjdERpYWxvZyBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQge1xuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgICAgIHN1cGVyKHByb3BzKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgICAgICAgIGlzUmVkYWN0aW5nOiBmYWxzZSxcbiAgICAgICAgICAgIHJlZGFjdGlvbkVycm9yQ29kZTogbnVsbCxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBvblBhcmVudEZpbmlzaGVkID0gYXN5bmMgKHByb2NlZWQpID0+IHtcbiAgICAgICAgaWYgKHByb2NlZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe2lzUmVkYWN0aW5nOiB0cnVlfSk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMucHJvcHMucmVkYWN0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkZpbmlzaGVkKHRydWUpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb2RlID0gZXJyb3IuZXJyY29kZSB8fCBlcnJvci5zdGF0dXNDb2RlO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY29kZSAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtyZWRhY3Rpb25FcnJvckNvZGU6IGNvZGV9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uRmluaXNoZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkZpbmlzaGVkKGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLnN0YXRlLmlzUmVkYWN0aW5nKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5yZWRhY3Rpb25FcnJvckNvZGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBFcnJvckRpYWxvZyA9IHNkay5nZXRDb21wb25lbnQoXCJkaWFsb2dzLkVycm9yRGlhbG9nXCIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvZGUgPSB0aGlzLnN0YXRlLnJlZGFjdGlvbkVycm9yQ29kZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICA8RXJyb3JEaWFsb2dcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uRmluaXNoZWQ9e3RoaXMucHJvcHMub25GaW5pc2hlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPXtfdCgnRXJyb3InKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPXtfdCgnWW91IGNhbm5vdCBkZWxldGUgdGhpcyBtZXNzYWdlLiAoJShjb2RlKXMpJywge2NvZGV9KX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBCYXNlRGlhbG9nID0gc2RrLmdldENvbXBvbmVudChcImRpYWxvZ3MuQmFzZURpYWxvZ1wiKTtcbiAgICAgICAgICAgICAgICBjb25zdCBTcGlubmVyID0gc2RrLmdldENvbXBvbmVudCgnZWxlbWVudHMuU3Bpbm5lcicpO1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIDxCYXNlRGlhbG9nXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkZpbmlzaGVkPXt0aGlzLnByb3BzLm9uRmluaXNoZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNDYW5jZWw9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9e190KFwiUmVtb3ZpbmfigKZcIil9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPFNwaW5uZXIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9CYXNlRGlhbG9nPlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBDb25maXJtUmVkYWN0RGlhbG9nID0gc2RrLmdldENvbXBvbmVudChcImRpYWxvZ3MuQ29uZmlybVJlZGFjdERpYWxvZ1wiKTtcbiAgICAgICAgICAgIHJldHVybiA8Q29uZmlybVJlZGFjdERpYWxvZyBvbkZpbmlzaGVkPXt0aGlzLm9uUGFyZW50RmluaXNoZWR9IC8+O1xuICAgICAgICB9XG4gICAgfVxufVxuIl19