matrix-react-sdk
Version:
SDK for matrix.org using React
46 lines (43 loc) • 5.21 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"));
/*
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 which shows a clip's maximum duration.
*/
class DurationClock extends _react.default.PureComponent {
constructor(props) {
super(props);
(0, _defineProperty2.default)(this, "onTimeUpdate", time => {
this.setState({
durationSeconds: time[1]
});
});
this.state = {
// we track the duration on state because we won't really know what the clip duration
// is until the first time update, and as a PureComponent we are trying to dedupe state
// updates as much as possible. This is just the easiest way to avoid a forceUpdate() or
// member property to track "did we get a duration".
durationSeconds: this.props.playback.clockInfo.durationSeconds
};
this.props.playback.clockInfo.liveData.onUpdate(this.onTimeUpdate);
}
render() {
return /*#__PURE__*/_react.default.createElement(_Clock.default, {
seconds: this.state.durationSeconds
});
}
}
exports.default = DurationClock;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9DbG9jayIsIkR1cmF0aW9uQ2xvY2siLCJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwiX2RlZmluZVByb3BlcnR5MiIsImRlZmF1bHQiLCJ0aW1lIiwic2V0U3RhdGUiLCJkdXJhdGlvblNlY29uZHMiLCJzdGF0ZSIsInBsYXliYWNrIiwiY2xvY2tJbmZvIiwibGl2ZURhdGEiLCJvblVwZGF0ZSIsIm9uVGltZVVwZGF0ZSIsInJlbmRlciIsImNyZWF0ZUVsZW1lbnQiLCJzZWNvbmRzIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3ZpZXdzL2F1ZGlvX21lc3NhZ2VzL0R1cmF0aW9uQ2xvY2sudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seVxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IENsb2NrIGZyb20gXCIuL0Nsb2NrXCI7XG5pbXBvcnQgeyBQbGF5YmFjayB9IGZyb20gXCIuLi8uLi8uLi9hdWRpby9QbGF5YmFja1wiO1xuXG5pbnRlcmZhY2UgSVByb3BzIHtcbiAgICBwbGF5YmFjazogUGxheWJhY2s7XG59XG5cbmludGVyZmFjZSBJU3RhdGUge1xuICAgIGR1cmF0aW9uU2Vjb25kczogbnVtYmVyO1xufVxuXG4vKipcbiAqIEEgY2xvY2sgd2hpY2ggc2hvd3MgYSBjbGlwJ3MgbWF4aW11bSBkdXJhdGlvbi5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRHVyYXRpb25DbG9jayBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQ8SVByb3BzLCBJU3RhdGU+IHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHJvcHM6IElQcm9wcykge1xuICAgICAgICBzdXBlcihwcm9wcyk7XG5cbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgICAgICAgIC8vIHdlIHRyYWNrIHRoZSBkdXJhdGlvbiBvbiBzdGF0ZSBiZWNhdXNlIHdlIHdvbid0IHJlYWxseSBrbm93IHdoYXQgdGhlIGNsaXAgZHVyYXRpb25cbiAgICAgICAgICAgIC8vIGlzIHVudGlsIHRoZSBmaXJzdCB0aW1lIHVwZGF0ZSwgYW5kIGFzIGEgUHVyZUNvbXBvbmVudCB3ZSBhcmUgdHJ5aW5nIHRvIGRlZHVwZSBzdGF0ZVxuICAgICAgICAgICAgLy8gdXBkYXRlcyBhcyBtdWNoIGFzIHBvc3NpYmxlLiBUaGlzIGlzIGp1c3QgdGhlIGVhc2llc3Qgd2F5IHRvIGF2b2lkIGEgZm9yY2VVcGRhdGUoKSBvclxuICAgICAgICAgICAgLy8gbWVtYmVyIHByb3BlcnR5IHRvIHRyYWNrIFwiZGlkIHdlIGdldCBhIGR1cmF0aW9uXCIuXG4gICAgICAgICAgICBkdXJhdGlvblNlY29uZHM6IHRoaXMucHJvcHMucGxheWJhY2suY2xvY2tJbmZvLmR1cmF0aW9uU2Vjb25kcyxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5wcm9wcy5wbGF5YmFjay5jbG9ja0luZm8ubGl2ZURhdGEub25VcGRhdGUodGhpcy5vblRpbWVVcGRhdGUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25UaW1lVXBkYXRlID0gKHRpbWU6IG51bWJlcltdKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBkdXJhdGlvblNlY29uZHM6IHRpbWVbMV0gfSk7XG4gICAgfTtcblxuICAgIHB1YmxpYyByZW5kZXIoKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgICAgICAgcmV0dXJuIDxDbG9jayBzZWNvbmRzPXt0aGlzLnN0YXRlLmR1cmF0aW9uU2Vjb25kc30gLz47XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQVFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLE1BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQVZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQWVBO0FBQ0E7QUFDQTtBQUNlLE1BQU1FLGFBQWEsU0FBU0MsY0FBSyxDQUFDQyxhQUFhLENBQWlCO0VBQ3BFQyxXQUFXQSxDQUFDQyxLQUFhLEVBQUU7SUFDOUIsS0FBSyxDQUFDQSxLQUFLLENBQUM7SUFBQyxJQUFBQyxnQkFBQSxDQUFBQyxPQUFBLHdCQVlPQyxJQUFjLElBQVc7TUFDN0MsSUFBSSxDQUFDQyxRQUFRLENBQUM7UUFBRUMsZUFBZSxFQUFFRixJQUFJLENBQUMsQ0FBQztNQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBWkcsSUFBSSxDQUFDRyxLQUFLLEdBQUc7TUFDVDtNQUNBO01BQ0E7TUFDQTtNQUNBRCxlQUFlLEVBQUUsSUFBSSxDQUFDTCxLQUFLLENBQUNPLFFBQVEsQ0FBQ0MsU0FBUyxDQUFDSDtJQUNuRCxDQUFDO0lBQ0QsSUFBSSxDQUFDTCxLQUFLLENBQUNPLFFBQVEsQ0FBQ0MsU0FBUyxDQUFDQyxRQUFRLENBQUNDLFFBQVEsQ0FBQyxJQUFJLENBQUNDLFlBQVksQ0FBQztFQUN0RTtFQU1PQyxNQUFNQSxDQUFBLEVBQW9CO0lBQzdCLG9CQUFPcEIsTUFBQSxDQUFBVSxPQUFBLENBQUFXLGFBQUEsQ0FBQ2xCLE1BQUEsQ0FBQU8sT0FBSztNQUFDWSxPQUFPLEVBQUUsSUFBSSxDQUFDUixLQUFLLENBQUNEO0lBQWdCLENBQUUsQ0FBQztFQUN6RDtBQUNKO0FBQUNVLE9BQUEsQ0FBQWIsT0FBQSxHQUFBTixhQUFBIiwiaWdub3JlTGlzdCI6W119