UNPKG

matrix-react-sdk

Version:
98 lines (95 loc) 11.8 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireDefault(require("react")); var _matrix = require("matrix-js-sdk/src/matrix"); var _languageHandler = require("../../../languageHandler"); var _ConfirmRedactDialog = _interopRequireDefault(require("./ConfirmRedactDialog")); var _ErrorDialog = _interopRequireDefault(require("./ErrorDialog")); var _BaseDialog = _interopRequireDefault(require("./BaseDialog")); var _Spinner = _interopRequireDefault(require("../elements/Spinner")); /* Copyright 2024 New Vector Ltd. Copyright 2019 The Matrix.org Foundation C.I.C. SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ /* * 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. */ 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) { let code; if (error instanceof _matrix.MatrixError) { code = error.errcode; } else if (error instanceof _matrix.HTTPError) { code = error.httpStatus; } 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 code = this.state.redactionErrorCode; return /*#__PURE__*/_react.default.createElement(_ErrorDialog.default, { onFinished: this.props.onFinished, title: (0, _languageHandler._t)("common|error"), description: (0, _languageHandler._t)("redact|error", { code }) }); } else { return /*#__PURE__*/_react.default.createElement(_BaseDialog.default, { onFinished: this.props.onFinished, hasCancel: false, title: (0, _languageHandler._t)("redact|ongoing") }, /*#__PURE__*/_react.default.createElement(_Spinner.default, null)); } } else { return /*#__PURE__*/_react.default.createElement(_ConfirmRedactDialog.default, { event: this.props.event, onFinished: this.onParentFinished }); } } } exports.default = ConfirmAndWaitRedactDialog; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9tYXRyaXgiLCJfbGFuZ3VhZ2VIYW5kbGVyIiwiX0NvbmZpcm1SZWRhY3REaWFsb2ciLCJfRXJyb3JEaWFsb2ciLCJfQmFzZURpYWxvZyIsIl9TcGlubmVyIiwiQ29uZmlybUFuZFdhaXRSZWRhY3REaWFsb2ciLCJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwiX2RlZmluZVByb3BlcnR5MiIsImRlZmF1bHQiLCJwcm9jZWVkIiwic2V0U3RhdGUiLCJpc1JlZGFjdGluZyIsInJlZGFjdCIsIm9uRmluaXNoZWQiLCJlcnJvciIsImNvZGUiLCJNYXRyaXhFcnJvciIsImVycmNvZGUiLCJIVFRQRXJyb3IiLCJodHRwU3RhdHVzIiwicmVkYWN0aW9uRXJyb3JDb2RlIiwic3RhdGUiLCJyZW5kZXIiLCJjcmVhdGVFbGVtZW50IiwidGl0bGUiLCJfdCIsImRlc2NyaXB0aW9uIiwiaGFzQ2FuY2VsIiwiZXZlbnQiLCJvblBhcmVudEZpbmlzaGVkIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3ZpZXdzL2RpYWxvZ3MvQ29uZmlybUFuZFdhaXRSZWRhY3REaWFsb2cudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seVxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IE1hdHJpeEV2ZW50LCBIVFRQRXJyb3IsIE1hdHJpeEVycm9yIH0gZnJvbSBcIm1hdHJpeC1qcy1zZGsvc3JjL21hdHJpeFwiO1xuXG5pbXBvcnQgeyBfdCB9IGZyb20gXCIuLi8uLi8uLi9sYW5ndWFnZUhhbmRsZXJcIjtcbmltcG9ydCBDb25maXJtUmVkYWN0RGlhbG9nIGZyb20gXCIuL0NvbmZpcm1SZWRhY3REaWFsb2dcIjtcbmltcG9ydCBFcnJvckRpYWxvZyBmcm9tIFwiLi9FcnJvckRpYWxvZ1wiO1xuaW1wb3J0IEJhc2VEaWFsb2cgZnJvbSBcIi4vQmFzZURpYWxvZ1wiO1xuaW1wb3J0IFNwaW5uZXIgZnJvbSBcIi4uL2VsZW1lbnRzL1NwaW5uZXJcIjtcblxuaW50ZXJmYWNlIElQcm9wcyB7XG4gICAgZXZlbnQ6IE1hdHJpeEV2ZW50O1xuICAgIHJlZGFjdDogKCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgICBvbkZpbmlzaGVkOiAoc3VjY2Vzcz86IGJvb2xlYW4pID0+IHZvaWQ7XG59XG5cbmludGVyZmFjZSBJU3RhdGUge1xuICAgIGlzUmVkYWN0aW5nOiBib29sZWFuO1xuICAgIHJlZGFjdGlvbkVycm9yQ29kZTogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbDtcbn1cblxuLypcbiAqIEEgZGlhbG9nIGZvciBjb25maXJtaW5nIGEgcmVkYWN0aW9uLlxuICogQWxzbyBzaG93cyBhIHNwaW5uZXIgKGFuZCBwb3NzaWJsZSBlcnJvcikgd2hpbGUgdGhlIHJlZGFjdGlvbiBpcyBvbmdvaW5nLFxuICogYW5kIG9ubHkgY2xvc2VzIHRoZSBkaWFsb2cgd2hlbiB0aGUgcmVkYWN0aW9uIGlzIGRvbmUgb3IgZmFpbGVkLlxuICpcbiAqIFRoaXMgaXMgZG9uZSB0byBwcmV2ZW50IHRoZSBlZGl0IGhpc3RvcnkgZGlhbG9nIHJhY2luZyB3aXRoIHRoZSByZWRhY3Rpb246XG4gKiBpZiB0aGlzIGRpYWxvZyBjbG9zZXMgYW5kIHRoZSBNZXNzYWdlRWRpdEhpc3RvcnlEaWFsb2cgaXMgc2hvd24gYWdhaW4sXG4gKiBpdCB3aWxsIGZldGNoIHRoZSByZWxhdGlvbnMgYWdhaW4sIHdoaWNoIHdpbGwgcmFjZSB3aXRoIHRoZSBvbmdvaW5nIC9yZWRhY3QgcmVxdWVzdC5cbiAqIHdoaWNoIHdpbGwgY2F1c2UgdGhlIGVkaXQgdG8gYXBwZWFyIHVucmVkYWN0ZWQuXG4gKlxuICogVG8gYXZvaWQgdGhpcywgd2Uga2VlcCB0aGUgZGlhbG9nIG9wZW4gYXMgbG9uZyBhcyAvcmVkYWN0IGlzIGluIHByb2dyZXNzLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb25maXJtQW5kV2FpdFJlZGFjdERpYWxvZyBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQ8SVByb3BzLCBJU3RhdGU+IHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHJvcHM6IElQcm9wcykge1xuICAgICAgICBzdXBlcihwcm9wcyk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICAgICAgICBpc1JlZGFjdGluZzogZmFsc2UsXG4gICAgICAgICAgICByZWRhY3Rpb25FcnJvckNvZGU6IG51bGwsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIG9uUGFyZW50RmluaXNoZWQgPSBhc3luYyAocHJvY2VlZD86IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgaWYgKHByb2NlZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBpc1JlZGFjdGluZzogdHJ1ZSB9KTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5wcm9wcy5yZWRhY3QoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uRmluaXNoZWQodHJ1ZSk7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIGxldCBjb2RlOiBzdHJpbmcgfCBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgTWF0cml4RXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgY29kZSA9IGVycm9yLmVycmNvZGU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChlcnJvciBpbnN0YW5jZW9mIEhUVFBFcnJvcikge1xuICAgICAgICAgICAgICAgICAgICBjb2RlID0gZXJyb3IuaHR0cFN0YXR1cztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNvZGUgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHJlZGFjdGlvbkVycm9yQ29kZTogY29kZSB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uRmluaXNoZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkZpbmlzaGVkKGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBwdWJsaWMgcmVuZGVyKCk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gICAgICAgIGlmICh0aGlzLnN0YXRlLmlzUmVkYWN0aW5nKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5yZWRhY3Rpb25FcnJvckNvZGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb2RlID0gdGhpcy5zdGF0ZS5yZWRhY3Rpb25FcnJvckNvZGU7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgPEVycm9yRGlhbG9nXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkZpbmlzaGVkPXt0aGlzLnByb3BzLm9uRmluaXNoZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT17X3QoXCJjb21tb258ZXJyb3JcIil9XG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj17X3QoXCJyZWRhY3R8ZXJyb3JcIiwgeyBjb2RlIH0pfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIDxCYXNlRGlhbG9nIG9uRmluaXNoZWQ9e3RoaXMucHJvcHMub25GaW5pc2hlZH0gaGFzQ2FuY2VsPXtmYWxzZX0gdGl0bGU9e190KFwicmVkYWN0fG9uZ29pbmdcIil9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPFNwaW5uZXIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9CYXNlRGlhbG9nPlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gPENvbmZpcm1SZWRhY3REaWFsb2cgZXZlbnQ9e3RoaXMucHJvcHMuZXZlbnR9IG9uRmluaXNoZWQ9e3RoaXMub25QYXJlbnRGaW5pc2hlZH0gLz47XG4gICAgICAgIH1cbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBUUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBRUEsSUFBQUUsZ0JBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLG9CQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxZQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxXQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTSxRQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFzQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ2UsTUFBTU8sMEJBQTBCLFNBQVNDLGNBQUssQ0FBQ0MsYUFBYSxDQUFpQjtFQUNqRkMsV0FBV0EsQ0FBQ0MsS0FBYSxFQUFF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