matrix-react-sdk
Version:
SDK for matrix.org using React
51 lines (48 loc) • 5.82 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"));
var _Clock = _interopRequireDefault(require("./Clock"));
var _MarkedExecution = require("../../../utils/MarkedExecution");
/*
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.
*/
/**
* A clock for a live recording.
*/
class LiveRecordingClock extends _react.default.PureComponent {
constructor(props) {
super(props);
(0, _defineProperty2.default)(this, "seconds", 0);
(0, _defineProperty2.default)(this, "scheduledUpdate", new _MarkedExecution.MarkedExecution(() => this.updateClock(), () => requestAnimationFrame(() => this.scheduledUpdate.trigger())));
this.state = {
seconds: 0
};
}
componentDidMount() {
this.props.recorder.liveData.onUpdate(update => {
this.seconds = update.timeSeconds;
this.scheduledUpdate.mark();
});
}
updateClock() {
this.setState({
seconds: this.seconds
});
}
render() {
return /*#__PURE__*/_react.default.createElement(_Clock.default, {
seconds: this.state.seconds,
"aria-live": "off"
});
}
}
exports.default = LiveRecordingClock;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9DbG9jayIsIl9NYXJrZWRFeGVjdXRpb24iLCJMaXZlUmVjb3JkaW5nQ2xvY2siLCJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwiX2RlZmluZVByb3BlcnR5MiIsImRlZmF1bHQiLCJNYXJrZWRFeGVjdXRpb24iLCJ1cGRhdGVDbG9jayIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsInNjaGVkdWxlZFVwZGF0ZSIsInRyaWdnZXIiLCJzdGF0ZSIsInNlY29uZHMiLCJjb21wb25lbnREaWRNb3VudCIsInJlY29yZGVyIiwibGl2ZURhdGEiLCJvblVwZGF0ZSIsInVwZGF0ZSIsInRpbWVTZWNvbmRzIiwibWFyayIsInNldFN0YXRlIiwicmVuZGVyIiwiY3JlYXRlRWxlbWVudCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy92aWV3cy9hdWRpb19tZXNzYWdlcy9MaXZlUmVjb3JkaW5nQ2xvY2sudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seVxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IHsgSVJlY29yZGluZ1VwZGF0ZSB9IGZyb20gXCIuLi8uLi8uLi9hdWRpby9Wb2ljZVJlY29yZGluZ1wiO1xuaW1wb3J0IENsb2NrIGZyb20gXCIuL0Nsb2NrXCI7XG5pbXBvcnQgeyBNYXJrZWRFeGVjdXRpb24gfSBmcm9tIFwiLi4vLi4vLi4vdXRpbHMvTWFya2VkRXhlY3V0aW9uXCI7XG5pbXBvcnQgeyBWb2ljZU1lc3NhZ2VSZWNvcmRpbmcgfSBmcm9tIFwiLi4vLi4vLi4vYXVkaW8vVm9pY2VNZXNzYWdlUmVjb3JkaW5nXCI7XG5cbmludGVyZmFjZSBJUHJvcHMge1xuICAgIHJlY29yZGVyOiBWb2ljZU1lc3NhZ2VSZWNvcmRpbmc7XG59XG5cbmludGVyZmFjZSBJU3RhdGUge1xuICAgIHNlY29uZHM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBBIGNsb2NrIGZvciBhIGxpdmUgcmVjb3JkaW5nLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMaXZlUmVjb3JkaW5nQ2xvY2sgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50PElQcm9wcywgSVN0YXRlPiB7XG4gICAgcHJpdmF0ZSBzZWNvbmRzID0gMDtcbiAgICBwcml2YXRlIHNjaGVkdWxlZFVwZGF0ZTogTWFya2VkRXhlY3V0aW9uID0gbmV3IE1hcmtlZEV4ZWN1dGlvbihcbiAgICAgICAgKCkgPT4gdGhpcy51cGRhdGVDbG9jaygpLFxuICAgICAgICAoKSA9PiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gdGhpcy5zY2hlZHVsZWRVcGRhdGUudHJpZ2dlcigpKSxcbiAgICApO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByb3BzOiBJUHJvcHMpIHtcbiAgICAgICAgc3VwZXIocHJvcHMpO1xuICAgICAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgICAgICAgc2Vjb25kczogMCxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29tcG9uZW50RGlkTW91bnQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJvcHMucmVjb3JkZXIubGl2ZURhdGEub25VcGRhdGUoKHVwZGF0ZTogSVJlY29yZGluZ1VwZGF0ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZWNvbmRzID0gdXBkYXRlLnRpbWVTZWNvbmRzO1xuICAgICAgICAgICAgdGhpcy5zY2hlZHVsZWRVcGRhdGUubWFyaygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUNsb2NrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgIHNlY29uZHM6IHRoaXMuc2Vjb25kcyxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbmRlcigpOiBSZWFjdC5SZWFjdE5vZGUge1xuICAgICAgICByZXR1cm4gPENsb2NrIHNlY29uZHM9e3RoaXMuc3RhdGUuc2Vjb25kc30gYXJpYS1saXZlPVwib2ZmXCIgLz47XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQVFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUdBLElBQUFDLE1BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLGdCQUFBLEdBQUFGLE9BQUE7QUFaQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFpQkE7QUFDQTtBQUNBO0FBQ2UsTUFBTUcsa0JBQWtCLFNBQVNDLGNBQUssQ0FBQ0MsYUFBYSxDQUFpQjtFQU96RUMsV0FBV0EsQ0FBQ0MsS0FBYSxFQUFFO0lBQzlCLEtBQUssQ0FBQ0EsS0FBSyxDQUFDO0lBQUMsSUFBQUMsZ0JBQUEsQ0FBQUMsT0FBQSxtQkFQQyxDQUFDO0lBQUEsSUFBQUQsZ0JBQUEsQ0FBQUMsT0FBQSwyQkFDd0IsSUFBSUMsZ0NBQWUsQ0FDMUQsTUFBTSxJQUFJLENBQUNDLFdBQVcsQ0FBQyxDQUFDLEVBQ3hCLE1BQU1DLHFCQUFxQixDQUFDLE1BQU0sSUFBSSxDQUFDQyxlQUFlLENBQUNDLE9BQU8sQ0FBQyxDQUFDLENBQ3BFLENBQUM7SUFJRyxJQUFJLENBQUNDLEtBQUssR0FBRztNQUNUQyxPQUFPLEVBQUU7SUFDYixDQUFDO0VBQ0w7RUFFT0MsaUJBQWlCQSxDQUFBLEVBQVM7SUFDN0IsSUFBSSxDQUFDVixLQUFLLENBQUNXLFFBQVEsQ0FBQ0MsUUFBUSxDQUFDQyxRQUFRLENBQUVDLE1BQXdCLElBQUs7TUFDaEUsSUFBSSxDQUFDTCxPQUFPLEdBQUdLLE1BQU0sQ0FBQ0MsV0FBVztNQUNqQyxJQUFJLENBQUNULGVBQWUsQ0FBQ1UsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQyxDQUFDO0VBQ047RUFFUVosV0FBV0EsQ0FBQSxFQUFTO0lBQ3hCLElBQUksQ0FBQ2EsUUFBUSxDQUFDO01BQ1ZSLE9BQU8sRUFBRSxJQUFJLENBQUNBO0lBQ2xCLENBQUMsQ0FBQztFQUNOO0VBRU9TLE1BQU1BLENBQUEsRUFBb0I7SUFDN0Isb0JBQU8zQixNQUFBLENBQUFXLE9BQUEsQ0FBQWlCLGFBQUEsQ0FBQ3pCLE1BQUEsQ0FBQVEsT0FBSztNQUFDTyxPQUFPLEVBQUUsSUFBSSxDQUFDRCxLQUFLLENBQUNDLE9BQVE7TUFBQyxhQUFVO0lBQUssQ0FBRSxDQUFDO0VBQ2pFO0FBQ0o7QUFBQ1csT0FBQSxDQUFBbEIsT0FBQSxHQUFBTixrQkFBQSIsImlnbm9yZUxpc3QiOltdfQ==