UNPKG

matrix-react-sdk

Version:
59 lines (56 loc) 6.98 kB
"use strict"; 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 _temporalPolyfill = require("temporal-polyfill"); var _DateUtils = require("../../../DateUtils"); /* Copyright 2024 New Vector Ltd. Copyright 2021-2023 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. */ /** * Clock which represents time periods rather than absolute time. * Simply converts seconds using formatFn. * Defaulting to formatSeconds(). * Note that in this case hours will not be displayed, making it possible to see "82:29". */ class Clock extends _react.default.Component { constructor(props) { super(props); } shouldComponentUpdate(nextProps) { const currentFloor = Math.floor(this.props.seconds); const nextFloor = Math.floor(nextProps.seconds); return currentFloor !== nextFloor; } calculateDuration(seconds) { if (isNaN(seconds)) return undefined; return new _temporalPolyfill.Temporal.Duration(0, 0, 0, 0, 0, 0, Math.round(seconds)).round({ smallestUnit: "seconds", largestUnit: "hours" }).toString(); } render() { const { seconds, role } = this.props; return /*#__PURE__*/_react.default.createElement("time", { dateTime: this.calculateDuration(seconds), "aria-live": this.props["aria-live"], role: role, className: "mx_Clock" }, this.props.formatFn(seconds)); } } exports.default = Clock; (0, _defineProperty2.default)(Clock, "defaultProps", { formatFn: _DateUtils.formatSeconds }); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl90ZW1wb3JhbFBvbHlmaWxsIiwiX0RhdGVVdGlscyIsIkNsb2NrIiwiUmVhY3QiLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwic2hvdWxkQ29tcG9uZW50VXBkYXRlIiwibmV4dFByb3BzIiwiY3VycmVudEZsb29yIiwiTWF0aCIsImZsb29yIiwic2Vjb25kcyIsIm5leHRGbG9vciIsImNhbGN1bGF0ZUR1cmF0aW9uIiwiaXNOYU4iLCJ1bmRlZmluZWQiLCJUZW1wb3JhbCIsIkR1cmF0aW9uIiwicm91bmQiLCJzbWFsbGVzdFVuaXQiLCJsYXJnZXN0VW5pdCIsInRvU3RyaW5nIiwicmVuZGVyIiwicm9sZSIsImRlZmF1bHQiLCJjcmVhdGVFbGVtZW50IiwiZGF0ZVRpbWUiLCJjbGFzc05hbWUiLCJmb3JtYXRGbiIsImV4cG9ydHMiLCJfZGVmaW5lUHJvcGVydHkyIiwiZm9ybWF0U2Vjb25kcyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3ZpZXdzL2F1ZGlvX21lc3NhZ2VzL0Nsb2NrLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMS0yMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seVxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbmltcG9ydCBSZWFjdCwgeyBIVE1MUHJvcHMgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IFRlbXBvcmFsIH0gZnJvbSBcInRlbXBvcmFsLXBvbHlmaWxsXCI7XG5cbmltcG9ydCB7IGZvcm1hdFNlY29uZHMgfSBmcm9tIFwiLi4vLi4vLi4vRGF0ZVV0aWxzXCI7XG5cbmludGVyZmFjZSBQcm9wcyBleHRlbmRzIFBpY2s8SFRNTFByb3BzPEhUTUxTcGFuRWxlbWVudD4sIFwiYXJpYS1saXZlXCIgfCBcInJvbGVcIj4ge1xuICAgIHNlY29uZHM6IG51bWJlcjtcbiAgICBmb3JtYXRGbjogKHNlY29uZHM6IG51bWJlcikgPT4gc3RyaW5nO1xufVxuXG4vKipcbiAqIENsb2NrIHdoaWNoIHJlcHJlc2VudHMgdGltZSBwZXJpb2RzIHJhdGhlciB0aGFuIGFic29sdXRlIHRpbWUuXG4gKiBTaW1wbHkgY29udmVydHMgc2Vjb25kcyB1c2luZyBmb3JtYXRGbi5cbiAqIERlZmF1bHRpbmcgdG8gZm9ybWF0U2Vjb25kcygpLlxuICogTm90ZSB0aGF0IGluIHRoaXMgY2FzZSBob3VycyB3aWxsIG5vdCBiZSBkaXNwbGF5ZWQsIG1ha2luZyBpdCBwb3NzaWJsZSB0byBzZWUgXCI4MjoyOVwiLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDbG9jayBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxQcm9wcz4ge1xuICAgIHB1YmxpYyBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgICAgICBmb3JtYXRGbjogZm9ybWF0U2Vjb25kcyxcbiAgICB9O1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByb3BzOiBQcm9wcykge1xuICAgICAgICBzdXBlcihwcm9wcyk7XG4gICAgfVxuXG4gICAgcHVibGljIHNob3VsZENvbXBvbmVudFVwZGF0ZShuZXh0UHJvcHM6IFJlYWRvbmx5PFByb3BzPik6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBjdXJyZW50Rmxvb3IgPSBNYXRoLmZsb29yKHRoaXMucHJvcHMuc2Vjb25kcyk7XG4gICAgICAgIGNvbnN0IG5leHRGbG9vciA9IE1hdGguZmxvb3IobmV4dFByb3BzLnNlY29uZHMpO1xuICAgICAgICByZXR1cm4gY3VycmVudEZsb29yICE9PSBuZXh0Rmxvb3I7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVEdXJhdGlvbihzZWNvbmRzOiBudW1iZXIpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoaXNOYU4oc2Vjb25kcykpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiBuZXcgVGVtcG9yYWwuRHVyYXRpb24oMCwgMCwgMCwgMCwgMCwgMCwgTWF0aC5yb3VuZChzZWNvbmRzKSlcbiAgICAgICAgICAgIC5yb3VuZCh7IHNtYWxsZXN0VW5pdDogXCJzZWNvbmRzXCIsIGxhcmdlc3RVbml0OiBcImhvdXJzXCIgfSlcbiAgICAgICAgICAgIC50b1N0cmluZygpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZW5kZXIoKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgICAgICAgY29uc3QgeyBzZWNvbmRzLCByb2xlIH0gPSB0aGlzLnByb3BzO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPHRpbWVcbiAgICAgICAgICAgICAgICBkYXRlVGltZT17dGhpcy5jYWxjdWxhdGVEdXJhdGlvbihzZWNvbmRzKX1cbiAgICAgICAgICAgICAgICBhcmlhLWxpdmU9e3RoaXMucHJvcHNbXCJhcmlhLWxpdmVcIl19XG4gICAgICAgICAgICAgICAgcm9sZT17cm9sZX1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJteF9DbG9ja1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3RoaXMucHJvcHMuZm9ybWF0Rm4oc2Vjb25kcyl9XG4gICAgICAgICAgICA8L3RpbWU+XG4gICAgICAgICk7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQVFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFELE9BQUE7QUFFQSxJQUFBRSxVQUFBLEdBQUFGLE9BQUE7QUFYQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFZQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDZSxNQUFNRyxLQUFLLFNBQVNDLGNBQUssQ0FBQ0MsU0FBUyxDQUFRO0VBSy9DQyxXQUFXQSxDQUFDQyxLQUFZLEVBQUU7SUFDN0IsS0FBSyxDQUFDQSxLQUFLLENBQUM7RUFDaEI7RUFFT0MscUJBQXFCQSxDQUFDQyxTQUEwQixFQUFXO0lBQzlELE1BQU1DLFlBQVksR0FBR0MsSUFBSSxDQUFDQyxLQUFLLENBQUMsSUFBSSxDQUFDTCxLQUFLLENBQUNNLE9BQU8sQ0FBQztJQUNuRCxNQUFNQyxTQUFTLEdBQUdILElBQUksQ0FBQ0MsS0FBSyxDQUFDSCxTQUFTLENBQUNJLE9BQU8sQ0FBQztJQUMvQyxPQUFPSCxZQUFZLEtBQUtJLFNBQVM7RUFDckM7RUFFUUMsaUJBQWlCQSxDQUFDRixPQUFlLEVBQXNCO0lBQzNELElBQUlHLEtBQUssQ0FBQ0gsT0FBTyxDQUFDLEVBQUUsT0FBT0ksU0FBUztJQUNwQyxPQUFPLElBQUlDLDBCQUFRLENBQUNDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRVIsSUFBSSxDQUFDUyxLQUFLLENBQUNQLE9BQU8sQ0FBQyxDQUFDLENBQzlETyxLQUFLLENBQUM7TUFBRUMsWUFBWSxFQUFFLFNBQVM7TUFBRUMsV0FBVyxFQUFFO0lBQVEsQ0FBQyxDQUFDLENBQ3hEQyxRQUFRLENBQUMsQ0FBQztFQUNuQjtFQUVPQyxNQUFNQSxDQUFBLEVBQW9CO0lBQzdCLE1BQU07TUFBRVgsT0FBTztNQUFFWTtJQUFLLENBQUMsR0FBRyxJQUFJLENBQUNsQixLQUFLO0lBQ3BDLG9CQUNJVCxNQUFBLENBQUE0QixPQUFBLENBQUFDLGFBQUE7TUFDSUMsUUFBUSxFQUFFLElBQUksQ0FBQ2IsaUJBQWlCLENBQUNGLE9BQU8sQ0FBRTtNQUMxQyxhQUFXLElBQUksQ0FBQ04sS0FBSyxDQUFDLFdBQVcsQ0FBRTtNQUNuQ2tCLElBQUksRUFBRUEsSUFBSztNQUNYSSxTQUFTLEVBQUM7SUFBVSxHQUVuQixJQUFJLENBQUN0QixLQUFLLENBQUN1QixRQUFRLENBQUNqQixPQUFPLENBQzFCLENBQUM7RUFFZjtBQUNKO0FBQUNrQixPQUFBLENBQUFMLE9BQUEsR0FBQXZCLEtBQUE7QUFBQSxJQUFBNkIsZ0JBQUEsQ0FBQU4sT0FBQSxFQW5Db0J2QixLQUFLLGtCQUNPO0VBQ3pCMkIsUUFBUSxFQUFFRztBQUNkLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=