matrix-react-sdk
Version:
SDK for matrix.org using React
109 lines (87 loc) • 11.2 kB
JavaScript
"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==