matrix-react-sdk
Version:
SDK for matrix.org using React
54 lines (51 loc) • 6.42 kB
JavaScript
;
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==