UNPKG

matrix-react-sdk

Version:
85 lines (82 loc) 12.7 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 _classnames = _interopRequireDefault(require("classnames")); var _languageHandler = require("../../../languageHandler"); var _Modal = _interopRequireDefault(require("../../../Modal")); var _SdkConfig = _interopRequireDefault(require("../../../SdkConfig")); var _BugReportDialog = _interopRequireDefault(require("../dialogs/BugReportDialog")); var _AccessibleButton = _interopRequireDefault(require("../elements/AccessibleButton")); var _SettingsStore = _interopRequireDefault(require("../../../settings/SettingsStore")); var _ViewSource = _interopRequireDefault(require("../../structures/ViewSource")); /* Copyright 2024 New Vector Ltd. Copyright 2020-2022 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. */ class TileErrorBoundary extends _react.default.Component { constructor(props) { super(props); (0, _defineProperty2.default)(this, "onBugReport", () => { _Modal.default.createDialog(_BugReportDialog.default, { label: "react-soft-crash-tile", error: this.state.error }); }); (0, _defineProperty2.default)(this, "onViewSource", () => { _Modal.default.createDialog(_ViewSource.default, { mxEvent: this.props.mxEvent }, "mx_Dialog_viewsource"); }); this.state = {}; } static getDerivedStateFromError(error) { // Side effects are not permitted here, so we only update the state so // that the next render shows an error message. return { error }; } render() { if (this.state.error) { const { mxEvent } = this.props; const classes = { mx_EventTile: true, mx_EventTile_info: true, mx_EventTile_content: true, mx_EventTile_tileError: true }; let submitLogsButton; if (_SdkConfig.default.get().bug_report_endpoint_url) { submitLogsButton = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "\xA0", /*#__PURE__*/_react.default.createElement(_AccessibleButton.default, { kind: "link", onClick: this.onBugReport }, (0, _languageHandler._t)("bug_reporting|submit_debug_logs"))); } let viewSourceButton; if (mxEvent && _SettingsStore.default.getValue("developerMode")) { viewSourceButton = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "\xA0", /*#__PURE__*/_react.default.createElement(_AccessibleButton.default, { onClick: this.onViewSource, kind: "link" }, (0, _languageHandler._t)("action|view_source"))); } return /*#__PURE__*/_react.default.createElement("li", { className: (0, _classnames.default)(classes), "data-layout": this.props.layout }, /*#__PURE__*/_react.default.createElement("div", { className: "mx_EventTile_line" }, /*#__PURE__*/_react.default.createElement("span", null, (0, _languageHandler._t)("timeline|error_rendering_message"), mxEvent && ` (${mxEvent.getType()})`, submitLogsButton, viewSourceButton))); } return this.props.children; } } exports.default = TileErrorBoundary; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9jbGFzc25hbWVzIiwiX2xhbmd1YWdlSGFuZGxlciIsIl9Nb2RhbCIsIl9TZGtDb25maWciLCJfQnVnUmVwb3J0RGlhbG9nIiwiX0FjY2Vzc2libGVCdXR0b24iLCJfU2V0dGluZ3NTdG9yZSIsIl9WaWV3U291cmNlIiwiVGlsZUVycm9yQm91bmRhcnkiLCJSZWFjdCIsIkNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJfZGVmaW5lUHJvcGVydHkyIiwiZGVmYXVsdCIsIk1vZGFsIiwiY3JlYXRlRGlhbG9nIiwiQnVnUmVwb3J0RGlhbG9nIiwibGFiZWwiLCJlcnJvciIsInN0YXRlIiwiVmlld1NvdXJjZSIsIm14RXZlbnQiLCJnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IiLCJyZW5kZXIiLCJjbGFzc2VzIiwibXhfRXZlbnRUaWxlIiwibXhfRXZlbnRUaWxlX2luZm8iLCJteF9FdmVudFRpbGVfY29udGVudCIsIm14X0V2ZW50VGlsZV90aWxlRXJyb3IiLCJzdWJtaXRMb2dzQnV0dG9uIiwiU2RrQ29uZmlnIiwiZ2V0IiwiYnVnX3JlcG9ydF9lbmRwb2ludF91cmwiLCJjcmVhdGVFbGVtZW50IiwiRnJhZ21lbnQiLCJraW5kIiwib25DbGljayIsIm9uQnVnUmVwb3J0IiwiX3QiLCJ2aWV3U291cmNlQnV0dG9uIiwiU2V0dGluZ3NTdG9yZSIsImdldFZhbHVlIiwib25WaWV3U291cmNlIiwiY2xhc3NOYW1lIiwiY2xhc3NOYW1lcyIsImxheW91dCIsImdldFR5cGUiLCJjaGlsZHJlbiIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy92aWV3cy9tZXNzYWdlcy9UaWxlRXJyb3JCb3VuZGFyeS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAtMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5pbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xuaW1wb3J0IHsgTWF0cml4RXZlbnQgfSBmcm9tIFwibWF0cml4LWpzLXNkay9zcmMvbWF0cml4XCI7XG5cbmltcG9ydCB7IF90IH0gZnJvbSBcIi4uLy4uLy4uL2xhbmd1YWdlSGFuZGxlclwiO1xuaW1wb3J0IE1vZGFsIGZyb20gXCIuLi8uLi8uLi9Nb2RhbFwiO1xuaW1wb3J0IFNka0NvbmZpZyBmcm9tIFwiLi4vLi4vLi4vU2RrQ29uZmlnXCI7XG5pbXBvcnQgQnVnUmVwb3J0RGlhbG9nIGZyb20gXCIuLi9kaWFsb2dzL0J1Z1JlcG9ydERpYWxvZ1wiO1xuaW1wb3J0IEFjY2Vzc2libGVCdXR0b24gZnJvbSBcIi4uL2VsZW1lbnRzL0FjY2Vzc2libGVCdXR0b25cIjtcbmltcG9ydCBTZXR0aW5nc1N0b3JlIGZyb20gXCIuLi8uLi8uLi9zZXR0aW5ncy9TZXR0aW5nc1N0b3JlXCI7XG5pbXBvcnQgVmlld1NvdXJjZSBmcm9tIFwiLi4vLi4vc3RydWN0dXJlcy9WaWV3U291cmNlXCI7XG5pbXBvcnQgeyBMYXlvdXQgfSBmcm9tIFwiLi4vLi4vLi4vc2V0dGluZ3MvZW51bXMvTGF5b3V0XCI7XG5cbmludGVyZmFjZSBJUHJvcHMge1xuICAgIG14RXZlbnQ6IE1hdHJpeEV2ZW50O1xuICAgIGxheW91dDogTGF5b3V0O1xuICAgIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG59XG5cbmludGVyZmFjZSBJU3RhdGUge1xuICAgIGVycm9yPzogRXJyb3I7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRpbGVFcnJvckJvdW5kYXJ5IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PElQcm9wcywgSVN0YXRlPiB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByb3BzOiBJUHJvcHMpIHtcbiAgICAgICAgc3VwZXIocHJvcHMpO1xuXG4gICAgICAgIHRoaXMuc3RhdGUgPSB7fTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldERlcml2ZWRTdGF0ZUZyb21FcnJvcihlcnJvcjogRXJyb3IpOiBQYXJ0aWFsPElTdGF0ZT4ge1xuICAgICAgICAvLyBTaWRlIGVmZmVjdHMgYXJlIG5vdCBwZXJtaXR0ZWQgaGVyZSwgc28gd2Ugb25seSB1cGRhdGUgdGhlIHN0YXRlIHNvXG4gICAgICAgIC8vIHRoYXQgdGhlIG5leHQgcmVuZGVyIHNob3dzIGFuIGVycm9yIG1lc3NhZ2UuXG4gICAgICAgIHJldHVybiB7IGVycm9yIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkJ1Z1JlcG9ydCA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgTW9kYWwuY3JlYXRlRGlhbG9nKEJ1Z1JlcG9ydERpYWxvZywge1xuICAgICAgICAgICAgbGFiZWw6IFwicmVhY3Qtc29mdC1jcmFzaC10aWxlXCIsXG4gICAgICAgICAgICBlcnJvcjogdGhpcy5zdGF0ZS5lcnJvcixcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIHByaXZhdGUgb25WaWV3U291cmNlID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICBNb2RhbC5jcmVhdGVEaWFsb2coXG4gICAgICAgICAgICBWaWV3U291cmNlLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG14RXZlbnQ6IHRoaXMucHJvcHMubXhFdmVudCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIm14X0RpYWxvZ192aWV3c291cmNlXCIsXG4gICAgICAgICk7XG4gICAgfTtcblxuICAgIHB1YmxpYyByZW5kZXIoKTogUmVhY3ROb2RlIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUuZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgbXhFdmVudCB9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgICAgIGNvbnN0IGNsYXNzZXMgPSB7XG4gICAgICAgICAgICAgICAgbXhfRXZlbnRUaWxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIG14X0V2ZW50VGlsZV9pbmZvOiB0cnVlLFxuICAgICAgICAgICAgICAgIG14X0V2ZW50VGlsZV9jb250ZW50OiB0cnVlLFxuICAgICAgICAgICAgICAgIG14X0V2ZW50VGlsZV90aWxlRXJyb3I6IHRydWUsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBsZXQgc3VibWl0TG9nc0J1dHRvbjtcbiAgICAgICAgICAgIGlmIChTZGtDb25maWcuZ2V0KCkuYnVnX3JlcG9ydF9lbmRwb2ludF91cmwpIHtcbiAgICAgICAgICAgICAgICBzdWJtaXRMb2dzQnV0dG9uID0gKFxuICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICA8QWNjZXNzaWJsZUJ1dHRvbiBraW5kPVwibGlua1wiIG9uQ2xpY2s9e3RoaXMub25CdWdSZXBvcnR9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtfdChcImJ1Z19yZXBvcnRpbmd8c3VibWl0X2RlYnVnX2xvZ3NcIil9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0FjY2Vzc2libGVCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxldCB2aWV3U291cmNlQnV0dG9uO1xuICAgICAgICAgICAgaWYgKG14RXZlbnQgJiYgU2V0dGluZ3NTdG9yZS5nZXRWYWx1ZShcImRldmVsb3Blck1vZGVcIikpIHtcbiAgICAgICAgICAgICAgICB2aWV3U291cmNlQnV0dG9uID0gKFxuICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICA8QWNjZXNzaWJsZUJ1dHRvbiBvbkNsaWNrPXt0aGlzLm9uVmlld1NvdXJjZX0ga2luZD1cImxpbmtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7X3QoXCJhY3Rpb258dmlld19zb3VyY2VcIil9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0FjY2Vzc2libGVCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPGxpIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhjbGFzc2VzKX0gZGF0YS1sYXlvdXQ9e3RoaXMucHJvcHMubGF5b3V0fT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJteF9FdmVudFRpbGVfbGluZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge190KFwidGltZWxpbmV8ZXJyb3JfcmVuZGVyaW5nX21lc3NhZ2VcIil9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge214RXZlbnQgJiYgYCAoJHtteEV2ZW50LmdldFR5cGUoKX0pYH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c3VibWl0TG9nc0J1dHRvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dmlld1NvdXJjZUJ1dHRvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5wcm9wcy5jaGlsZHJlbjtcbiAgICB9XG59XG4i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