UNPKG

matrix-react-sdk

Version:
109 lines (87 loc) 11.2 kB
"use strict"; 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 _propTypes = _interopRequireDefault(require("prop-types")); var _AccessibleButton = _interopRequireDefault(require("./AccessibleButton")); var _dispatcher = _interopRequireDefault(require("../../../dispatcher/dispatcher")); var sdk = _interopRequireWildcard(require("../../../index")); var _Analytics = _interopRequireDefault(require("../../../Analytics")); var _replaceableComponent = require("../../../utils/replaceableComponent"); var _dec, _class, _class2, _temp; let ActionButton = (_dec = (0, _replaceableComponent.replaceableComponent)("views.elements.ActionButton"), _dec(_class = (_temp = _class2 = class ActionButton extends _react.default.Component { constructor(...args) { super(...args); (0, _defineProperty2.default)(this, "state", { showTooltip: false }); (0, _defineProperty2.default)(this, "_onClick", ev => { ev.stopPropagation(); _Analytics.default.trackEvent('Action Button', 'click', this.props.action); _dispatcher.default.dispatch({ action: this.props.action }); }); (0, _defineProperty2.default)(this, "_onMouseEnter", () => { if (this.props.tooltip) this.setState({ showTooltip: true }); if (this.props.mouseOverAction) { _dispatcher.default.dispatch({ action: this.props.mouseOverAction }); } }); (0, _defineProperty2.default)(this, "_onMouseLeave", () => { this.setState({ showTooltip: false }); }); } render() { const TintableSvg = sdk.getComponent("elements.TintableSvg"); let tooltip; if (this.state.showTooltip) { const Tooltip = sdk.getComponent("elements.Tooltip"); tooltip = /*#__PURE__*/_react.default.createElement(Tooltip, { className: "mx_RoleButton_tooltip", label: this.props.label }); } const icon = this.props.iconPath ? /*#__PURE__*/_react.default.createElement(TintableSvg, { src: this.props.iconPath, width: this.props.size, height: this.props.size }) : undefined; const classNames = ["mx_RoleButton"]; if (this.props.className) { classNames.push(this.props.className); } return /*#__PURE__*/_react.default.createElement(_AccessibleButton.default, { className: classNames.join(" "), onClick: this._onClick, onMouseEnter: this._onMouseEnter, onMouseLeave: this._onMouseLeave, "aria-label": this.props.label }, icon, tooltip, this.props.children); } }, (0, _defineProperty2.default)(_class2, "propTypes", { size: _propTypes.default.string, tooltip: _propTypes.default.bool, action: _propTypes.default.string.isRequired, mouseOverAction: _propTypes.default.string, label: _propTypes.default.string.isRequired, iconPath: _propTypes.default.string, className: _propTypes.default.string, children: _propTypes.default.node }), (0, _defineProperty2.default)(_class2, "defaultProps", { size: "25", tooltip: false }), _temp)) || _class); exports.default = ActionButton; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3ZpZXdzL2VsZW1lbnRzL0FjdGlvbkJ1dHRvbi5qcyJdLCJuYW1lcyI6WyJBY3Rpb25CdXR0b24iLCJSZWFjdCIsIkNvbXBvbmVudCIsInNob3dUb29sdGlwIiwiZXYiLCJzdG9wUHJvcGFnYXRpb24iLCJBbmFseXRpY3MiLCJ0cmFja0V2ZW50IiwicHJvcHMiLCJhY3Rpb24iLCJkaXMiLCJkaXNwYXRjaCIsInRvb2x0aXAiLCJzZXRTdGF0ZSIsIm1vdXNlT3ZlckFjdGlvbiIsInJlbmRlciIsIlRpbnRhYmxlU3ZnIiwic2RrIiwiZ2V0Q29tcG9uZW50Iiwic3RhdGUiLCJUb29sdGlwIiwibGFiZWwiLCJpY29uIiwiaWNvblBhdGgiLCJzaXplIiwidW5kZWZpbmVkIiwiY2xhc3NOYW1lcyIsImNsYXNzTmFtZSIsInB1c2giLCJqb2luIiwiX29uQ2xpY2siLCJfb25Nb3VzZUVudGVyIiwiX29uTW91c2VMZWF2ZSIsImNoaWxkcmVuIiwiUHJvcFR5cGVzIiwic3RyaW5nIiwiYm9vbCIsImlzUmVxdWlyZWQiLCJub2RlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBZ0JBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7O0lBR3FCQSxZLFdBRHBCLGdEQUFxQiw2QkFBckIsQyxtQ0FBRCxNQUNxQkEsWUFEckIsU0FDMENDLGVBQU1DLFNBRGhELENBQzBEO0FBQUE7QUFBQTtBQUFBLGlEQWlCOUM7QUFDSkMsTUFBQUEsV0FBVyxFQUFFO0FBRFQsS0FqQjhDO0FBQUEsb0RBcUIxQ0MsRUFBRCxJQUFRO0FBQ2ZBLE1BQUFBLEVBQUUsQ0FBQ0MsZUFBSDs7QUFDQUMseUJBQVVDLFVBQVYsQ0FBcUIsZUFBckIsRUFBc0MsT0FBdEMsRUFBK0MsS0FBS0MsS0FBTCxDQUFXQyxNQUExRDs7QUFDQUMsMEJBQUlDLFFBQUosQ0FBYTtBQUFDRixRQUFBQSxNQUFNLEVBQUUsS0FBS0QsS0FBTCxDQUFXQztBQUFwQixPQUFiO0FBQ0gsS0F6QnFEO0FBQUEseURBMkJ0QyxNQUFNO0FBQ2xCLFVBQUksS0FBS0QsS0FBTCxDQUFXSSxPQUFmLEVBQXdCLEtBQUtDLFFBQUwsQ0FBYztBQUFDVixRQUFBQSxXQUFXLEVBQUU7QUFBZCxPQUFkOztBQUN4QixVQUFJLEtBQUtLLEtBQUwsQ0FBV00sZUFBZixFQUFnQztBQUM1QkosNEJBQUlDLFFBQUosQ0FBYTtBQUFDRixVQUFBQSxNQUFNLEVBQUUsS0FBS0QsS0FBTCxDQUFXTTtBQUFwQixTQUFiO0FBQ0g7QUFDSixLQWhDcUQ7QUFBQSx5REFrQ3RDLE1BQU07QUFDbEIsV0FBS0QsUUFBTCxDQUFjO0FBQUNWLFFBQUFBLFdBQVcsRUFBRTtBQUFkLE9BQWQ7QUFDSCxLQXBDcUQ7QUFBQTs7QUFzQ3REWSxFQUFBQSxNQUFNLEdBQUc7QUFDTCxVQUFNQyxXQUFXLEdBQUdDLEdBQUcsQ0FBQ0MsWUFBSixDQUFpQixzQkFBakIsQ0FBcEI7QUFFQSxRQUFJTixPQUFKOztBQUNBLFFBQUksS0FBS08sS0FBTCxDQUFXaEIsV0FBZixFQUE0QjtBQUN4QixZQUFNaUIsT0FBTyxHQUFHSCxHQUFHLENBQUNDLFlBQUosQ0FBaUIsa0JBQWpCLENBQWhCO0FBQ0FOLE1BQUFBLE9BQU8sZ0JBQUcsNkJBQUMsT0FBRDtBQUFTLFFBQUEsU0FBUyxFQUFDLHVCQUFuQjtBQUEyQyxRQUFBLEtBQUssRUFBRSxLQUFLSixLQUFMLENBQVdhO0FBQTdELFFBQVY7QUFDSDs7QUFFRCxVQUFNQyxJQUFJLEdBQUcsS0FBS2QsS0FBTCxDQUFXZSxRQUFYLGdCQUNSLDZCQUFDLFdBQUQ7QUFBYSxNQUFBLEdBQUcsRUFBRSxLQUFLZixLQUFMLENBQVdlLFFBQTdCO0FBQXVDLE1BQUEsS0FBSyxFQUFFLEtBQUtmLEtBQUwsQ0FBV2dCLElBQXpEO0FBQStELE1BQUEsTUFBTSxFQUFFLEtBQUtoQixLQUFMLENBQVdnQjtBQUFsRixNQURRLEdBRVRDLFNBRko7QUFJQSxVQUFNQyxVQUFVLEdBQUcsQ0FBQyxlQUFELENBQW5COztBQUNBLFFBQUksS0FBS2xCLEtBQUwsQ0FBV21CLFNBQWYsRUFBMEI7QUFDdEJELE1BQUFBLFVBQVUsQ0FBQ0UsSUFBWCxDQUFnQixLQUFLcEIsS0FBTCxDQUFXbUIsU0FBM0I7QUFDSDs7QUFFRCx3QkFDSSw2QkFBQyx5QkFBRDtBQUNJLE1BQUEsU0FBUyxFQUFFRCxVQUFVLENBQUNHLElBQVgsQ0FBZ0IsR0FBaEIsQ0FEZjtBQUVJLE1BQUEsT0FBTyxFQUFFLEtBQUtDLFFBRmxCO0FBR0ksTUFBQSxZQUFZLEVBQUUsS0FBS0MsYUFIdkI7QUFJSSxNQUFBLFlBQVksRUFBRSxLQUFLQyxhQUp2QjtBQUtJLG9CQUFZLEtBQUt4QixLQUFMLENBQVdhO0FBTDNCLE9BT01DLElBUE4sRUFRTVYsT0FSTixFQVNNLEtBQUtKLEtBQUwsQ0FBV3lCLFFBVGpCLENBREo7QUFhSDs7QUFyRXFELEMsc0RBQ25DO0FBQ2ZULEVBQUFBLElBQUksRUFBRVUsbUJBQVVDLE1BREQ7QUFFZnZCLEVBQUFBLE9BQU8sRUFBRXNCLG1CQUFVRSxJQUZKO0FBR2YzQixFQUFBQSxNQUFNLEVBQUV5QixtQkFBVUMsTUFBVixDQUFpQkUsVUFIVjtBQUlmdkIsRUFBQUEsZUFBZSxFQUFFb0IsbUJBQVVDLE1BSlo7QUFLZmQsRUFBQUEsS0FBSyxFQUFFYSxtQkFBVUMsTUFBVixDQUFpQkUsVUFMVDtBQU1mZCxFQUFBQSxRQUFRLEVBQUVXLG1CQUFVQyxNQU5MO0FBT2ZSLEVBQUFBLFNBQVMsRUFBRU8sbUJBQVVDLE1BUE47QUFRZkYsRUFBQUEsUUFBUSxFQUFFQyxtQkFBVUk7QUFSTCxDLDBEQVdHO0FBQ2xCZCxFQUFBQSxJQUFJLEVBQUUsSUFEWTtBQUVsQlosRUFBQUEsT0FBTyxFQUFFO0FBRlMsQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAxNyBWZWN0b3IgQ3JlYXRpb25zIEx0ZFxuXG5MaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xueW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG5TZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG5saW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiovXG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IEFjY2Vzc2libGVCdXR0b24gZnJvbSAnLi9BY2Nlc3NpYmxlQnV0dG9uJztcbmltcG9ydCBkaXMgZnJvbSAnLi4vLi4vLi4vZGlzcGF0Y2hlci9kaXNwYXRjaGVyJztcbmltcG9ydCAqIGFzIHNkayBmcm9tICcuLi8uLi8uLi9pbmRleCc7XG5pbXBvcnQgQW5hbHl0aWNzIGZyb20gJy4uLy4uLy4uL0FuYWx5dGljcyc7XG5pbXBvcnQge3JlcGxhY2VhYmxlQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vLi4vdXRpbHMvcmVwbGFjZWFibGVDb21wb25lbnRcIjtcblxuQHJlcGxhY2VhYmxlQ29tcG9uZW50KFwidmlld3MuZWxlbWVudHMuQWN0aW9uQnV0dG9uXCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBY3Rpb25CdXR0b24gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICAgIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgICAgIHNpemU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIHRvb2x0aXA6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICBhY3Rpb246IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgICAgbW91c2VPdmVyQWN0aW9uOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICBsYWJlbDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgICBpY29uUGF0aDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUsXG4gICAgfTtcblxuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICAgIHNpemU6IFwiMjVcIixcbiAgICAgICAgdG9vbHRpcDogZmFsc2UsXG4gICAgfTtcblxuICAgIHN0YXRlID0ge1xuICAgICAgICBzaG93VG9vbHRpcDogZmFsc2UsXG4gICAgfTtcblxuICAgIF9vbkNsaWNrID0gKGV2KSA9PiB7XG4gICAgICAgIGV2LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBBbmFseXRpY3MudHJhY2tFdmVudCgnQWN0aW9uIEJ1dHRvbicsICdjbGljaycsIHRoaXMucHJvcHMuYWN0aW9uKTtcbiAgICAgICAgZGlzLmRpc3BhdGNoKHthY3Rpb246IHRoaXMucHJvcHMuYWN0aW9ufSk7XG4gICAgfTtcblxuICAgIF9vbk1vdXNlRW50ZXIgPSAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLnRvb2x0aXApIHRoaXMuc2V0U3RhdGUoe3Nob3dUb29sdGlwOiB0cnVlfSk7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLm1vdXNlT3ZlckFjdGlvbikge1xuICAgICAgICAgICAgZGlzLmRpc3BhdGNoKHthY3Rpb246IHRoaXMucHJvcHMubW91c2VPdmVyQWN0aW9ufSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgX29uTW91c2VMZWF2ZSA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7c2hvd1Rvb2x0aXA6IGZhbHNlfSk7XG4gICAgfTtcblxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgY29uc3QgVGludGFibGVTdmcgPSBzZGsuZ2V0Q29tcG9uZW50KFwiZWxlbWVudHMuVGludGFibGVTdmdcIik7XG5cbiAgICAgICAgbGV0IHRvb2x0aXA7XG4gICAgICAgIGlmICh0aGlzLnN0YXRlLnNob3dUb29sdGlwKSB7XG4gICAgICAgICAgICBjb25zdCBUb29sdGlwID0gc2RrLmdldENvbXBvbmVudChcImVsZW1lbnRzLlRvb2x0aXBcIik7XG4gICAgICAgICAgICB0b29sdGlwID0gPFRvb2x0aXAgY2xhc3NOYW1lPVwibXhfUm9sZUJ1dHRvbl90b29sdGlwXCIgbGFiZWw9e3RoaXMucHJvcHMubGFiZWx9IC8+O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaWNvbiA9IHRoaXMucHJvcHMuaWNvblBhdGggP1xuICAgICAgICAgICAgKDxUaW50YWJsZVN2ZyBzcmM9e3RoaXMucHJvcHMuaWNvblBhdGh9IHdpZHRoPXt0aGlzLnByb3BzLnNpemV9IGhlaWdodD17dGhpcy5wcm9wcy5zaXplfSAvPikgOlxuICAgICAgICAgICAgdW5kZWZpbmVkO1xuXG4gICAgICAgIGNvbnN0IGNsYXNzTmFtZXMgPSBbXCJteF9Sb2xlQnV0dG9uXCJdO1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5jbGFzc05hbWUpIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZXMucHVzaCh0aGlzLnByb3BzLmNsYXNzTmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPEFjY2Vzc2libGVCdXR0b25cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMuam9pbihcIiBcIil9XG4gICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5fb25DbGlja31cbiAgICAgICAgICAgICAgICBvbk1vdXNlRW50ZXI9e3RoaXMuX29uTW91c2VFbnRlcn1cbiAgICAgICAgICAgICAgICBvbk1vdXNlTGVhdmU9e3RoaXMuX29uTW91c2VMZWF2ZX1cbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXt0aGlzLnByb3BzLmxhYmVsfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHsgaWNvbiB9XG4gICAgICAgICAgICAgICAgeyB0b29sdGlwIH1cbiAgICAgICAgICAgICAgICB7IHRoaXMucHJvcHMuY2hpbGRyZW4gfVxuICAgICAgICAgICAgPC9BY2Nlc3NpYmxlQnV0dG9uPlxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==