matrix-react-sdk
Version:
SDK for matrix.org using React
63 lines (61 loc) • 8.11 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _react = _interopRequireDefault(require("react"));
var _classnames = _interopRequireDefault(require("classnames"));
var _languageHandler = require("../../../languageHandler");
var _Playback = require("../../../audio/Playback");
var _AccessibleButton = _interopRequireDefault(require("../elements/AccessibleButton"));
const _excluded = ["playback", "playbackPhase"];
/*
Copyright 2024 New Vector Ltd.
Copyright 2021 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.
*/
/**
* Displays a play/pause button (activating the play/pause function of the recorder)
* to be displayed in reference to a recording.
*/
class PlayPauseButton extends _react.default.PureComponent {
constructor(props) {
super(props);
(0, _defineProperty2.default)(this, "onClick", () => {
// noinspection JSIgnoredPromiseFromCall
this.toggleState();
});
}
async toggleState() {
await this.props.playback.toggle();
}
render() {
const _this$props = this.props,
{
playback,
playbackPhase
} = _this$props,
restProps = (0, _objectWithoutProperties2.default)(_this$props, _excluded);
const isPlaying = playback.isPlaying;
const isDisabled = playbackPhase === _Playback.PlaybackState.Decoding;
const classes = (0, _classnames.default)("mx_PlayPauseButton", {
mx_PlayPauseButton_play: !isPlaying,
mx_PlayPauseButton_pause: isPlaying,
mx_PlayPauseButton_disabled: isDisabled
});
return /*#__PURE__*/_react.default.createElement(_AccessibleButton.default, (0, _extends2.default)({
"data-testid": "play-pause-button",
className: classes,
title: isPlaying ? (0, _languageHandler._t)("action|pause") : (0, _languageHandler._t)("action|play"),
onClick: this.onClick,
disabled: isDisabled
}, restProps));
}
}
exports.default = PlayPauseButton;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9jbGFzc25hbWVzIiwiX2xhbmd1YWdlSGFuZGxlciIsIl9QbGF5YmFjayIsIl9BY2Nlc3NpYmxlQnV0dG9uIiwiX2V4Y2x1ZGVkIiwiUGxheVBhdXNlQnV0dG9uIiwiUmVhY3QiLCJQdXJlQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJkZWZhdWx0IiwidG9nZ2xlU3RhdGUiLCJwbGF5YmFjayIsInRvZ2dsZSIsInJlbmRlciIsIl90aGlzJHByb3BzIiwicGxheWJhY2tQaGFzZSIsInJlc3RQcm9wcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllczIiLCJpc1BsYXlpbmciLCJpc0Rpc2FibGVkIiwiUGxheWJhY2tTdGF0ZSIsIkRlY29kaW5nIiwiY2xhc3NlcyIsImNsYXNzTmFtZXMiLCJteF9QbGF5UGF1c2VCdXR0b25fcGxheSIsIm14X1BsYXlQYXVzZUJ1dHRvbl9wYXVzZSIsIm14X1BsYXlQYXVzZUJ1dHRvbl9kaXNhYmxlZCIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kczIiLCJjbGFzc05hbWUiLCJ0aXRsZSIsIl90Iiwib25DbGljayIsImRpc2FibGVkIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3ZpZXdzL2F1ZGlvX21lc3NhZ2VzL1BsYXlQYXVzZUJ1dHRvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5XG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIjtcblxuaW1wb3J0IHsgX3QgfSBmcm9tIFwiLi4vLi4vLi4vbGFuZ3VhZ2VIYW5kbGVyXCI7XG5pbXBvcnQgeyBQbGF5YmFjaywgUGxheWJhY2tTdGF0ZSB9IGZyb20gXCIuLi8uLi8uLi9hdWRpby9QbGF5YmFja1wiO1xuaW1wb3J0IEFjY2Vzc2libGVCdXR0b24sIHsgQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vZWxlbWVudHMvQWNjZXNzaWJsZUJ1dHRvblwiO1xuXG50eXBlIFByb3BzID0gT21pdDxCdXR0b25Qcm9wczxcImRpdlwiPiwgXCJ0aXRsZVwiIHwgXCJvbkNsaWNrXCIgfCBcImRpc2FibGVkXCIgfCBcImVsZW1lbnRcIiB8IFwicmVmXCI+ICYge1xuICAgIC8vIFBsYXliYWNrIGluc3RhbmNlIHRvIG1hbmlwdWxhdGUuIENhbm5vdCBjaGFuZ2UgZHVyaW5nIHRoZSBjb21wb25lbnQgbGlmZWN5Y2xlLlxuICAgIHBsYXliYWNrOiBQbGF5YmFjaztcblxuICAgIC8vIFRoZSBwbGF5YmFjayBwaGFzZSB0byByZW5kZXIuIEFibGUgdG8gY2hhbmdlIGR1cmluZyB0aGUgY29tcG9uZW50IGxpZmVjeWNsZS5cbiAgICBwbGF5YmFja1BoYXNlOiBQbGF5YmFja1N0YXRlO1xufTtcblxuLyoqXG4gKiBEaXNwbGF5cyBhIHBsYXkvcGF1c2UgYnV0dG9uIChhY3RpdmF0aW5nIHRoZSBwbGF5L3BhdXNlIGZ1bmN0aW9uIG9mIHRoZSByZWNvcmRlcilcbiAqIHRvIGJlIGRpc3BsYXllZCBpbiByZWZlcmVuY2UgdG8gYSByZWNvcmRpbmcuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBsYXlQYXVzZUJ1dHRvbiBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQ8UHJvcHM+IHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHJvcHM6IFByb3BzKSB7XG4gICAgICAgIHN1cGVyKHByb3BzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uQ2xpY2sgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIC8vIG5vaW5zcGVjdGlvbiBKU0lnbm9yZWRQcm9taXNlRnJvbUNhbGxcbiAgICAgICAgdGhpcy50b2dnbGVTdGF0ZSgpO1xuICAgIH07XG5cbiAgICBwdWJsaWMgYXN5bmMgdG9nZ2xlU3RhdGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IHRoaXMucHJvcHMucGxheWJhY2sudG9nZ2xlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbmRlcigpOiBSZWFjdE5vZGUge1xuICAgICAgICBjb25zdCB7IHBsYXliYWNrLCBwbGF5YmFja1BoYXNlLCAuLi5yZXN0UHJvcHMgfSA9IHRoaXMucHJvcHM7XG4gICAgICAgIGNvbnN0IGlzUGxheWluZyA9IHBsYXliYWNrLmlzUGxheWluZztcbiAgICAgICAgY29uc3QgaXNEaXNhYmxlZCA9IHBsYXliYWNrUGhhc2UgPT09IFBsYXliYWNrU3RhdGUuRGVjb2Rpbmc7XG4gICAgICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc05hbWVzKFwibXhfUGxheVBhdXNlQnV0dG9uXCIsIHtcbiAgICAgICAgICAgIG14X1BsYXlQYXVzZUJ1dHRvbl9wbGF5OiAhaXNQbGF5aW5nLFxuICAgICAgICAgICAgbXhfUGxheVBhdXNlQnV0dG9uX3BhdXNlOiBpc1BsYXlpbmcsXG4gICAgICAgICAgICBteF9QbGF5UGF1c2VCdXR0b25fZGlzYWJsZWQ6IGlzRGlzYWJsZWQsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8QWNjZXNzaWJsZUJ1dHRvblxuICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwicGxheS1wYXVzZS1idXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlc31cbiAgICAgICAgICAgICAgICB0aXRsZT17aXNQbGF5aW5nID8gX3QoXCJhY3Rpb258cGF1c2VcIikgOiBfdChcImFjdGlvbnxwbGF5XCIpfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMub25DbGlja31cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNEaXNhYmxlZH1cbiAgICAgICAgICAgICAgICB7Li4ucmVzdFByb3BzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgKTtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFRQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxXQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBRSxnQkFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsU0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksaUJBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUE2RSxNQUFBSyxTQUFBO0FBYjdFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBaUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ2UsTUFBTUMsZUFBZSxTQUFTQyxjQUFLLENBQUNDLGFBQWEsQ0FBUTtFQUM3REMsV0FBV0EsQ0FBQ0MsS0FBWSxFQUFFO0lBQzdCLEtBQUssQ0FBQ0EsS0FBSyxDQUFDO0lBQUMsSUFBQUMsZ0JBQUEsQ0FBQUMsT0FBQSxtQkFHQyxNQUFZO01BQzFCO01BQ0EsSUFBSSxDQUFDQyxXQUFXLENBQUMsQ0FBQztJQUN0QixDQUFDO0VBTEQ7RUFPQSxNQUFhQSxXQUFXQSxDQUFBLEVBQWtCO0lBQ3RDLE1BQU0sSUFBSSxDQUFDSCxLQUFLLENBQUNJLFFBQVEsQ0FBQ0MsTUFBTSxDQUFDLENBQUM7RUFDdEM7RUFFT0MsTUFBTUEsQ0FBQSxFQUFjO0lBQ3ZCLE1BQUFDLFdBQUEsR0FBa0QsSUFBSSxDQUFDUCxLQUFLO01BQXREO1FBQUVJLFFBQVE7UUFBRUk7TUFBNEIsQ0FBQyxHQUFBRCxXQUFBO01BQVhFLFNBQVMsT0FBQUMseUJBQUEsQ0FBQVIsT0FBQSxFQUFBSyxXQUFBLEVBQUFaLFNBQUE7SUFDN0MsTUFBTWdCLFNBQVMsR0FBR1AsUUFBUSxDQUFDTyxTQUFTO0lBQ3BDLE1BQU1DLFVBQVUsR0FBR0osYUFBYSxLQUFLSyx1QkFBYSxDQUFDQyxRQUFRO0lBQzNELE1BQU1DLE9BQU8sR0FBRyxJQUFBQyxtQkFBVSxFQUFDLG9CQUFvQixFQUFFO01BQzdDQyx1QkFBdUIsRUFBRSxDQUFDTixTQUFTO01BQ25DTyx3QkFBd0IsRUFBRVAsU0FBUztNQUNuQ1EsMkJBQTJCLEVBQUVQO0lBQ2pDLENBQUMsQ0FBQztJQUVGLG9CQUNJeEIsTUFBQSxDQUFBYyxPQUFBLENBQUFrQixhQUFBLENBQUMxQixpQkFBQSxDQUFBUSxPQUFnQixNQUFBbUIsU0FBQSxDQUFBbkIsT0FBQTtNQUNiLGVBQVksbUJBQW1CO01BQy9Cb0IsU0FBUyxFQUFFUCxPQUFRO01BQ25CUSxLQUFLLEVBQUVaLFNBQVMsR0FBRyxJQUFBYSxtQkFBRSxFQUFDLGNBQWMsQ0FBQyxHQUFHLElBQUFBLG1CQUFFLEVBQUMsYUFBYSxDQUFFO01BQzFEQyxPQUFPLEVBQUUsSUFBSSxDQUFDQSxPQUFRO01BQ3RCQyxRQUFRLEVBQUVkO0lBQVcsR0FDakJILFNBQVMsQ0FDaEIsQ0FBQztFQUVWO0FBQ0o7QUFBQ2tCLE9BQUEsQ0FBQXpCLE9BQUEsR0FBQU4sZUFBQSIsImlnbm9yZUxpc3QiOltdfQ==