UNPKG

matrix-react-sdk

Version:
54 lines (51 loc) 6.42 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")); /* Copyright 2024 New Vector Ltd. Copyright 2019 Sorunome SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ class Spoiler extends _react.default.Component { constructor(props) { super(props); (0, _defineProperty2.default)(this, "toggleVisible", e => { if (!this.state.visible) { // we are un-blurring, we don't want this click to propagate to potential child pills e.preventDefault(); e.stopPropagation(); } this.setState({ visible: !this.state.visible }); }); this.state = { visible: false }; } render() { const reason = this.props.reason ? /*#__PURE__*/_react.default.createElement("span", { className: "mx_EventTile_spoiler_reason" }, "(" + this.props.reason + ")") : null; // react doesn't allow appending a DOM node as child. // as such, we pass the this.props.contentHtml instead and then set the raw // HTML content. This is secure as the contents have already been parsed previously return /*#__PURE__*/_react.default.createElement("button", { className: "mx_EventTile_spoiler" + (this.state.visible ? " visible" : ""), onClick: this.toggleVisible }, reason, "\xA0", /*#__PURE__*/_react.default.createElement("span", { className: "mx_EventTile_spoiler_content", dangerouslySetInnerHTML: { __html: this.props.contentHtml } })); } } exports.default = Spoiler; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIlNwb2lsZXIiLCJSZWFjdCIsIkNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJfZGVmaW5lUHJvcGVydHkyIiwiZGVmYXVsdCIsImUiLCJzdGF0ZSIsInZpc2libGUiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsInNldFN0YXRlIiwicmVuZGVyIiwicmVhc29uIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsIm9uQ2xpY2siLCJ0b2dnbGVWaXNpYmxlIiwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiLCJfX2h0bWwiLCJjb250ZW50SHRtbCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy92aWV3cy9lbGVtZW50cy9TcG9pbGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSBTb3J1bm9tZVxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4gKi9cblxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuXG5pbnRlcmZhY2UgSVByb3BzIHtcbiAgICByZWFzb24/OiBzdHJpbmc7XG4gICAgY29udGVudEh0bWw6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIElTdGF0ZSB7XG4gICAgdmlzaWJsZTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3BvaWxlciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxJUHJvcHMsIElTdGF0ZT4ge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcm9wczogSVByb3BzKSB7XG4gICAgICAgIHN1cGVyKHByb3BzKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgICAgICAgIHZpc2libGU6IGZhbHNlLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgdG9nZ2xlVmlzaWJsZSA9IChlOiBSZWFjdC5Nb3VzZUV2ZW50KTogdm9pZCA9PiB7XG4gICAgICAgIGlmICghdGhpcy5zdGF0ZS52aXNpYmxlKSB7XG4gICAgICAgICAgICAvLyB3ZSBhcmUgdW4tYmx1cnJpbmcsIHdlIGRvbid0IHdhbnQgdGhpcyBjbGljayB0byBwcm9wYWdhdGUgdG8gcG90ZW50aWFsIGNoaWxkIHBpbGxzXG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyB2aXNpYmxlOiAhdGhpcy5zdGF0ZS52aXNpYmxlIH0pO1xuICAgIH07XG5cbiAgICBwdWJsaWMgcmVuZGVyKCk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gICAgICAgIGNvbnN0IHJlYXNvbiA9IHRoaXMucHJvcHMucmVhc29uID8gKFxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibXhfRXZlbnRUaWxlX3Nwb2lsZXJfcmVhc29uXCI+e1wiKFwiICsgdGhpcy5wcm9wcy5yZWFzb24gKyBcIilcIn08L3NwYW4+XG4gICAgICAgICkgOiBudWxsO1xuICAgICAgICAvLyByZWFjdCBkb2Vzbid0IGFsbG93IGFwcGVuZGluZyBhIERPTSBub2RlIGFzIGNoaWxkLlxuICAgICAgICAvLyBhcyBzdWNoLCB3ZSBwYXNzIHRoZSB0aGlzLnByb3BzLmNvbnRlbnRIdG1sIGluc3RlYWQgYW5kIHRoZW4gc2V0IHRoZSByYXdcbiAgICAgICAgLy8gSFRNTCBjb250ZW50LiBUaGlzIGlzIHNlY3VyZSBhcyB0aGUgY29udGVudHMgaGF2ZSBhbHJlYWR5IGJlZW4gcGFyc2VkIHByZXZpb3VzbHlcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e1wibXhfRXZlbnRUaWxlX3Nwb2lsZXJcIiArICh0aGlzLnN0YXRlLnZpc2libGUgPyBcIiB2aXNpYmxlXCIgOiBcIlwiKX1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLnRvZ2dsZVZpc2libGV9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3JlYXNvbn1cbiAgICAgICAgICAgICAgICAmbmJzcDtcbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJteF9FdmVudFRpbGVfc3BvaWxlcl9jb250ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3sgX19odG1sOiB0aGlzLnByb3BzLmNvbnRlbnRIdG1sIH19XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICApO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFRQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFhZSxNQUFNQyxPQUFPLFNBQVNDLGNBQUssQ0FBQ0MsU0FBUyxDQUFpQjtFQUMxREMsV0FBV0EsQ0FBQ0MsS0FBYSxFQUFFO0lBQzlCLEtBQUssQ0FBQ0EsS0FBSyxDQUFDO0lBQUMsSUFBQUMsZ0JBQUEsQ0FBQUMsT0FBQSx5QkFNUUMsQ0FBbUIsSUFBVztNQUNuRCxJQUFJLENBQUMsSUFBSSxDQUFDQyxLQUFLLENBQUNDLE9BQU8sRUFBRTtRQUNyQjtRQUNBRixDQUFDLENBQUNHLGNBQWMsQ0FBQyxDQUFDO1FBQ2xCSCxDQUFDLENBQUNJLGVBQWUsQ0FBQyxDQUFDO01BQ3ZCO01BQ0EsSUFBSSxDQUFDQyxRQUFRLENBQUM7UUFBRUgsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDRCxLQUFLLENBQUNDO01BQVEsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFaRyxJQUFJLENBQUNELEtBQUssR0FBRztNQUNUQyxPQUFPLEVBQUU7SUFDYixDQUFDO0VBQ0w7RUFXT0ksTUFBTUEsQ0FBQSxFQUFvQjtJQUM3QixNQUFNQyxNQUFNLEdBQUcsSUFBSSxDQUFDVixLQUFLLENBQUNVLE1BQU0sZ0JBQzVCakIsTUFBQSxDQUFBUyxPQUFBLENBQUFTLGFBQUE7TUFBTUMsU0FBUyxFQUFDO0lBQTZCLEdBQUUsR0FBRyxHQUFHLElBQUksQ0FBQ1osS0FBSyxDQUFDVSxNQUFNLEdBQUcsR0FBVSxDQUFDLEdBQ3BGLElBQUk7SUFDUjtJQUNBO0lBQ0E7SUFDQSxvQkFDSWpCLE1BQUEsQ0FBQVMsT0FBQSxDQUFBUyxhQUFBO01BQ0lDLFNBQVMsRUFBRSxzQkFBc0IsSUFBSSxJQUFJLENBQUNSLEtBQUssQ0FBQ0MsT0FBTyxHQUFHLFVBQVUsR0FBRyxFQUFFLENBQUU7TUFDM0VRLE9BQU8sRUFBRSxJQUFJLENBQUNDO0lBQWMsR0FFM0JKLE1BQU0sRUFBQyxNQUVSLGVBQUFqQixNQUFBLENBQUFTLE9BQUEsQ0FBQVMsYUFBQTtNQUNJQyxTQUFTLEVBQUMsOEJBQThCO01BQ3hDRyx1QkFBdUIsRUFBRTtRQUFFQyxNQUFNLEVBQUUsSUFBSSxDQUFDaEIsS0FBSyxDQUFDaUI7TUFBWTtJQUFFLENBQy9ELENBQ0csQ0FBQztFQUVqQjtBQUNKO0FBQUNDLE9BQUEsQ0FBQWhCLE9BQUEsR0FBQU4sT0FBQSIsImlnbm9yZUxpc3QiOltdfQ==