UNPKG

matrix-react-sdk

Version:
71 lines (68 loc) 10.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireWildcard(require("react")); var _matrix = require("matrix-js-sdk/src/matrix"); var _DateUtils = require("../../../DateUtils"); var _useEventEmitter = require("../../../hooks/useEventEmitter"); var _useTimeout = require("../../../hooks/useTimeout"); var _languageHandler = require("../../../languageHandler"); var _beacon = require("../../../utils/beacon"); function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } /* Copyright 2024 New Vector Ltd. Copyright 2022 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. */ const MINUTE_MS = 60000; const HOUR_MS = MINUTE_MS * 60; const getUpdateInterval = ms => { // every 10 mins when more than an hour if (ms > HOUR_MS) { return MINUTE_MS * 10; } // every minute when more than a minute if (ms > MINUTE_MS) { return MINUTE_MS; } // otherwise every second return 1000; }; const useMsRemaining = beacon => { const beaconInfo = (0, _useEventEmitter.useEventEmitterState)(beacon, _matrix.BeaconEvent.Update, () => beacon.beaconInfo); const [msRemaining, setMsRemaining] = (0, _react.useState)(() => beaconInfo ? (0, _beacon.getBeaconMsUntilExpiry)(beaconInfo) : 0); (0, _react.useEffect)(() => { if (!beaconInfo) { return; } setMsRemaining((0, _beacon.getBeaconMsUntilExpiry)(beaconInfo)); }, [beaconInfo]); const updateMsRemaining = (0, _react.useCallback)(() => { if (!beaconInfo) { return; } const ms = (0, _beacon.getBeaconMsUntilExpiry)(beaconInfo); setMsRemaining(ms); }, [beaconInfo]); (0, _useTimeout.useInterval)(updateMsRemaining, getUpdateInterval(msRemaining)); return msRemaining; }; const LiveTimeRemaining = ({ beacon }) => { const msRemaining = useMsRemaining(beacon); const timeRemaining = (0, _DateUtils.formatDuration)(msRemaining); const liveTimeRemaining = (0, _languageHandler._t)("time|left", { timeRemaining }); return /*#__PURE__*/_react.default.createElement("span", { "data-testid": "room-live-share-expiry", className: "mx_LiveTimeRemaining" }, liveTimeRemaining); }; var _default = exports.default = LiveTimeRemaining; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfbWF0cml4IiwiX0RhdGVVdGlscyIsIl91c2VFdmVudEVtaXR0ZXIiLCJfdXNlVGltZW91dCIsIl9sYW5ndWFnZUhhbmRsZXIiLCJfYmVhY29uIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiTUlOVVRFX01TIiwiSE9VUl9NUyIsImdldFVwZGF0ZUludGVydmFsIiwibXMiLCJ1c2VNc1JlbWFpbmluZyIsImJlYWNvbiIsImJlYWNvbkluZm8iLCJ1c2VFdmVudEVtaXR0ZXJTdGF0ZSIsIkJlYWNvbkV2ZW50IiwiVXBkYXRlIiwibXNSZW1haW5pbmciLCJzZXRNc1JlbWFpbmluZyIsInVzZVN0YXRlIiwiZ2V0QmVhY29uTXNVbnRpbEV4cGlyeSIsInVzZUVmZmVjdCIsInVwZGF0ZU1zUmVtYWluaW5nIiwidXNlQ2FsbGJhY2siLCJ1c2VJbnRlcnZhbCIsIkxpdmVUaW1lUmVtYWluaW5nIiwidGltZVJlbWFpbmluZyIsImZvcm1hdER1cmF0aW9uIiwibGl2ZVRpbWVSZW1haW5pbmciLCJfdCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy92aWV3cy9iZWFjb24vTGl2ZVRpbWVSZW1haW5pbmcudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seVxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgQmVhY29uRXZlbnQsIEJlYWNvbiB9IGZyb20gXCJtYXRyaXgtanMtc2RrL3NyYy9tYXRyaXhcIjtcblxuaW1wb3J0IHsgZm9ybWF0RHVyYXRpb24gfSBmcm9tIFwiLi4vLi4vLi4vRGF0ZVV0aWxzXCI7XG5pbXBvcnQgeyB1c2VFdmVudEVtaXR0ZXJTdGF0ZSB9IGZyb20gXCIuLi8uLi8uLi9ob29rcy91c2VFdmVudEVtaXR0ZXJcIjtcbmltcG9ydCB7IHVzZUludGVydmFsIH0gZnJvbSBcIi4uLy4uLy4uL2hvb2tzL3VzZVRpbWVvdXRcIjtcbmltcG9ydCB7IF90IH0gZnJvbSBcIi4uLy4uLy4uL2xhbmd1YWdlSGFuZGxlclwiO1xuaW1wb3J0IHsgZ2V0QmVhY29uTXNVbnRpbEV4cGlyeSB9IGZyb20gXCIuLi8uLi8uLi91dGlscy9iZWFjb25cIjtcblxuY29uc3QgTUlOVVRFX01TID0gNjAwMDA7XG5jb25zdCBIT1VSX01TID0gTUlOVVRFX01TICogNjA7XG5jb25zdCBnZXRVcGRhdGVJbnRlcnZhbCA9IChtczogbnVtYmVyKTogbnVtYmVyID0+IHtcbiAgICAvLyBldmVyeSAxMCBtaW5zIHdoZW4gbW9yZSB0aGFuIGFuIGhvdXJcbiAgICBpZiAobXMgPiBIT1VSX01TKSB7XG4gICAgICAgIHJldHVybiBNSU5VVEVfTVMgKiAxMDtcbiAgICB9XG4gICAgLy8gZXZlcnkgbWludXRlIHdoZW4gbW9yZSB0aGFuIGEgbWludXRlXG4gICAgaWYgKG1zID4gTUlOVVRFX01TKSB7XG4gICAgICAgIHJldHVybiBNSU5VVEVfTVM7XG4gICAgfVxuICAgIC8vIG90aGVyd2lzZSBldmVyeSBzZWNvbmRcbiAgICByZXR1cm4gMTAwMDtcbn07XG5jb25zdCB1c2VNc1JlbWFpbmluZyA9IChiZWFjb246IEJlYWNvbik6IG51bWJlciA9PiB7XG4gICAgY29uc3QgYmVhY29uSW5mbyA9IHVzZUV2ZW50RW1pdHRlclN0YXRlKGJlYWNvbiwgQmVhY29uRXZlbnQuVXBkYXRlLCAoKSA9PiBiZWFjb24uYmVhY29uSW5mbyk7XG5cbiAgICBjb25zdCBbbXNSZW1haW5pbmcsIHNldE1zUmVtYWluaW5nXSA9IHVzZVN0YXRlKCgpID0+IChiZWFjb25JbmZvID8gZ2V0QmVhY29uTXNVbnRpbEV4cGlyeShiZWFjb25JbmZvKSA6IDApKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghYmVhY29uSW5mbykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHNldE1zUmVtYWluaW5nKGdldEJlYWNvbk1zVW50aWxFeHBpcnkoYmVhY29uSW5mbykpO1xuICAgIH0sIFtiZWFjb25JbmZvXSk7XG5cbiAgICBjb25zdCB1cGRhdGVNc1JlbWFpbmluZyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgaWYgKCFiZWFjb25JbmZvKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbXMgPSBnZXRCZWFjb25Nc1VudGlsRXhwaXJ5KGJlYWNvbkluZm8pO1xuICAgICAgICBzZXRNc1JlbWFpbmluZyhtcyk7XG4gICAgfSwgW2JlYWNvbkluZm9dKTtcblxuICAgIHVzZUludGVydmFsKHVwZGF0ZU1zUmVtYWluaW5nLCBnZXRVcGRhdGVJbnRlcnZhbChtc1JlbWFpbmluZykpO1xuXG4gICAgcmV0dXJuIG1zUmVtYWluaW5nO1xufTtcblxuY29uc3QgTGl2ZVRpbWVSZW1haW5pbmc6IFJlYWN0LkZDPHsgYmVhY29uOiBCZWFjb24gfT4gPSAoeyBiZWFjb24gfSkgPT4ge1xuICAgIGNvbnN0IG1zUmVtYWluaW5nID0gdXNlTXNSZW1haW5pbmcoYmVhY29uKTtcblxuICAgIGNvbnN0IHRpbWVSZW1haW5pbmcgPSBmb3JtYXREdXJhdGlvbihtc1JlbWFpbmluZyk7XG4gICAgY29uc3QgbGl2ZVRpbWVSZW1haW5pbmcgPSBfdChcInRpbWV8bGVmdFwiLCB7IHRpbWVSZW1haW5pbmcgfSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8c3BhbiBkYXRhLXRlc3RpZD1cInJvb20tbGl2ZS1zaGFyZS1leHBpcnlcIiBjbGFzc05hbWU9XCJteF9MaXZlVGltZVJlbWFpbmluZ1wiPlxuICAgICAgICAgICAge2xpdmVUaW1lUmVtYWluaW5nfVxuICAgICAgICA8L3NwYW4+XG4gICAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IExpdmVUaW1lUmVtYWluaW5nO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFRQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFFQSxJQUFBRSxVQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxnQkFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksV0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssZ0JBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLE9BQUEsR0FBQU4sT0FBQTtBQUErRCxTQUFBTyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSxDQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBVCx3QkFBQVMsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLHVCQUFBQSxDQUFBLHlCQUFBQSxDQUFBLFdBQUFLLE9BQUEsRUFBQUwsQ0FBQSxRQUFBRyxDQUFBLEdBQUFKLHdCQUFBLENBQUFHLENBQUEsT0FBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFHLEdBQUEsQ0FBQU4sQ0FBQSxVQUFBRyxDQUFBLENBQUFJLEdBQUEsQ0FBQVAsQ0FBQSxPQUFBUSxDQUFBLEtBQUFDLFNBQUEsVUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxDQUFBLElBQUFkLENBQUEsb0JBQUFjLENBQUEsT0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFoQixDQUFBLEVBQUFjLENBQUEsU0FBQUcsQ0FBQSxHQUFBUCxDQUFBLEdBQUFDLE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQWIsQ0FBQSxFQUFBYyxDQUFBLFVBQUFHLENBQUEsS0FBQUEsQ0FBQSxDQUFBVixHQUFBLElBQUFVLENBQUEsQ0FBQUMsR0FBQSxJQUFBUCxNQUFBLENBQUFDLGNBQUEsQ0FBQUosQ0FBQSxFQUFBTSxDQUFBLEVBQUFHLENBQUEsSUFBQVQsQ0FBQSxDQUFBTSxDQUFBLElBQUFkLENBQUEsQ0FBQWMsQ0FBQSxZQUFBTixDQUFBLENBQUFILE9BQUEsR0FBQUwsQ0FBQSxFQUFBRyxDQUFBLElBQUFBLENBQUEsQ0FBQWUsR0FBQSxDQUFBbEIsQ0FBQSxFQUFBUSxDQUFBLEdBQUFBLENBQUE7QUFmL0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBV0EsTUFBTVcsU0FBUyxHQUFHLEtBQUs7QUFDdkIsTUFBTUMsT0FBTyxHQUFHRCxTQUFTLEdBQUcsRUFBRTtBQUM5QixNQUFNRSxpQkFBaUIsR0FBSUMsRUFBVSxJQUFhO0VBQzlDO0VBQ0EsSUFBSUEsRUFBRSxHQUFHRixPQUFPLEVBQUU7SUFDZCxPQUFPRCxTQUFTLEdBQUcsRUFBRTtFQUN6QjtFQUNBO0VBQ0EsSUFBSUcsRUFBRSxHQUFHSCxTQUFTLEVBQUU7SUFDaEIsT0FBT0EsU0FBUztFQUNwQjtFQUNBO0VBQ0EsT0FBTyxJQUFJO0FBQ2YsQ0FBQztBQUNELE1BQU1JLGNBQWMsR0FBSUMsTUFBYyxJQUFhO0VBQy9DLE1BQU1DLFVBQVUsR0FBRyxJQUFBQyxxQ0FBb0IsRUFBQ0YsTUFBTSxFQUFFRyxtQkFBVyxDQUFDQyxNQUFNLEVBQUUsTUFBTUosTUFBTSxDQUFDQyxVQUFVLENBQUM7RUFFNUYsTUFBTSxDQUFDSSxXQUFXLEVBQUVDLGNBQWMsQ0FBQyxHQUFHLElBQUFDLGVBQVEsRUFBQyxNQUFPTixVQUFVLEdBQUcsSUFBQU8sOEJBQXNCLEVBQUNQLFVBQVUsQ0FBQyxHQUFHLENBQUUsQ0FBQztFQUUzRyxJQUFBUSxnQkFBUyxFQUFDLE1BQU07SUFDWixJQUFJLENBQUNSLFVBQVUsRUFBRTtNQUNiO0lBQ0o7SUFDQUssY0FBYyxDQUFDLElBQUFFLDhCQUFzQixFQUFDUCxVQUFVLENBQUMsQ0FBQztFQUN0RCxDQUFDLEVBQUUsQ0FBQ0EsVUFBVSxDQUFDLENBQUM7RUFFaEIsTUFBTVMsaUJBQWlCLEdBQUcsSUFBQUMsa0JBQVcsRUFBQyxNQUFNO0lBQ3hDLElBQUksQ0FBQ1YsVUFBVSxFQUFFO01BQ2I7SUFDSjtJQUNBLE1BQU1ILEVBQUUsR0FBRyxJQUFBVSw4QkFBc0IsRUFBQ1AsVUFBVSxDQUFDO0lBQzdDSyxjQUFjLENBQUNSLEVBQUUsQ0FBQztFQUN0QixDQUFDLEVBQUUsQ0FBQ0csVUFBVSxDQUFDLENBQUM7RUFFaEIsSUFBQVcsdUJBQVcsRUFBQ0YsaUJBQWlCLEVBQUViLGlCQUFpQixDQUFDUSxXQUFXLENBQUMsQ0FBQztFQUU5RCxPQUFPQSxXQUFXO0FBQ3RCLENBQUM7QUFFRCxNQUFNUSxpQkFBK0MsR0FBR0EsQ0FBQztFQUFFYjtBQUFPLENBQUMsS0FBSztFQUNwRSxNQUFNSyxXQUFXLEdBQUdOLGNBQWMsQ0FBQ0MsTUFBTSxDQUFDO0VBRTFDLE1BQU1jLGFBQWEsR0FBRyxJQUFBQyx5QkFBYyxFQUFDVixXQUFXLENBQUM7RUFDakQsTUFBTVcsaUJBQWlCLEdBQUcsSUFBQUMsbUJBQUUsRUFBQyxXQUFXLEVBQUU7SUFBRUg7RUFBYyxDQUFDLENBQUM7RUFFNUQsb0JBQ0loRCxNQUFBLENBQUFlLE9BQUEsQ0FBQXFDLGFBQUE7SUFBTSxlQUFZLHdCQUF3QjtJQUFDQyxTQUFTLEVBQUM7RUFBc0IsR0FDdEVILGlCQUNDLENBQUM7QUFFZixDQUFDO0FBQUMsSUFBQUksUUFBQSxHQUFBQyxPQUFBLENBQUF4QyxPQUFBLEdBRWFnQyxpQkFBaUIiLCJpZ25vcmVMaXN0IjpbXX0=