matrix-react-sdk
Version:
SDK for matrix.org using React
55 lines (51 loc) • 8.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.SessionDuration = exports.CallDuration = void 0;
var _react = _interopRequireWildcard(require("react"));
var _DateUtils = require("../../../DateUtils");
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.
*/
/**
* A call duration counter.
*/
const CallDuration = exports.CallDuration = /*#__PURE__*/(0, _react.memo)(({
delta
}) => {
// Clock desync could lead to a negative duration, so just hide it if that happens
if (delta <= 0) return null;
return /*#__PURE__*/_react.default.createElement("div", {
className: "mx_CallDuration"
}, (0, _DateUtils.formatPreciseDuration)(delta));
});
/**
* A call duration counter that automatically counts up, given a matrixRTC session
* object.
*/
const SessionDuration = ({
session
}) => {
const [now, setNow] = (0, _react.useState)(() => Date.now());
(0, _react.useEffect)(() => {
const timer = window.setInterval(() => setNow(Date.now()), 1000);
return () => clearInterval(timer);
}, []);
// This is a temporal solution.
// Using the oldest membership will update when this user leaves.
// This implies that the displayed call duration will also update consequently.
const createdTs = session?.getOldestMembership()?.createdTs();
return createdTs ? /*#__PURE__*/_react.default.createElement(CallDuration, {
delta: now - createdTs
}) : /*#__PURE__*/_react.default.createElement(CallDuration, {
delta: 0
});
};
exports.SessionDuration = SessionDuration;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfRGF0ZVV0aWxzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiQ2FsbER1cmF0aW9uIiwiZXhwb3J0cyIsIm1lbW8iLCJkZWx0YSIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJmb3JtYXRQcmVjaXNlRHVyYXRpb24iLCJTZXNzaW9uRHVyYXRpb24iLCJzZXNzaW9uIiwibm93Iiwic2V0Tm93IiwidXNlU3RhdGUiLCJEYXRlIiwidXNlRWZmZWN0IiwidGltZXIiLCJ3aW5kb3ciLCJzZXRJbnRlcnZhbCIsImNsZWFySW50ZXJ2YWwiLCJjcmVhdGVkVHMiLCJnZXRPbGRlc3RNZW1iZXJzaGlwIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdmlld3Mvdm9pcC9DYWxsRHVyYXRpb24udHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seVxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbmltcG9ydCBSZWFjdCwgeyBGQywgdXNlU3RhdGUsIHVzZUVmZmVjdCwgbWVtbyB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgTWF0cml4UlRDU2Vzc2lvbiB9IGZyb20gXCJtYXRyaXgtanMtc2RrL3NyYy9tYXRyaXhydGNcIjtcblxuaW1wb3J0IHsgZm9ybWF0UHJlY2lzZUR1cmF0aW9uIH0gZnJvbSBcIi4uLy4uLy4uL0RhdGVVdGlsc1wiO1xuXG5pbnRlcmZhY2UgQ2FsbER1cmF0aW9uUHJvcHMge1xuICAgIGRlbHRhOiBudW1iZXI7XG59XG5cbi8qKlxuICogQSBjYWxsIGR1cmF0aW9uIGNvdW50ZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBDYWxsRHVyYXRpb246IEZDPENhbGxEdXJhdGlvblByb3BzPiA9IG1lbW8oKHsgZGVsdGEgfSkgPT4ge1xuICAgIC8vIENsb2NrIGRlc3luYyBjb3VsZCBsZWFkIHRvIGEgbmVnYXRpdmUgZHVyYXRpb24sIHNvIGp1c3QgaGlkZSBpdCBpZiB0aGF0IGhhcHBlbnNcbiAgICBpZiAoZGVsdGEgPD0gMCkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPVwibXhfQ2FsbER1cmF0aW9uXCI+e2Zvcm1hdFByZWNpc2VEdXJhdGlvbihkZWx0YSl9PC9kaXY+O1xufSk7XG5cbmludGVyZmFjZSBTZXNzaW9uRHVyYXRpb25Qcm9wcyB7XG4gICAgc2Vzc2lvbjogTWF0cml4UlRDU2Vzc2lvbiB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBBIGNhbGwgZHVyYXRpb24gY291bnRlciB0aGF0IGF1dG9tYXRpY2FsbHkgY291bnRzIHVwLCBnaXZlbiBhIG1hdHJpeFJUQyBzZXNzaW9uXG4gKiBvYmplY3QuXG4gKi9cbmV4cG9ydCBjb25zdCBTZXNzaW9uRHVyYXRpb246IEZDPFNlc3Npb25EdXJhdGlvblByb3BzPiA9ICh7IHNlc3Npb24gfSkgPT4ge1xuICAgIGNvbnN0IFtub3csIHNldE5vd10gPSB1c2VTdGF0ZSgoKSA9PiBEYXRlLm5vdygpKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHRpbWVyID0gd2luZG93LnNldEludGVydmFsKCgpID0+IHNldE5vdyhEYXRlLm5vdygpKSwgMTAwMCk7XG4gICAgICAgIHJldHVybiAoKSA9PiBjbGVhckludGVydmFsKHRpbWVyKTtcbiAgICB9LCBbXSk7XG5cbiAgICAvLyBUaGlzIGlzIGEgdGVtcG9yYWwgc29sdXRpb24uXG4gICAgLy8gVXNpbmcgdGhlIG9sZGVzdCBtZW1iZXJzaGlwIHdpbGwgdXBkYXRlIHdoZW4gdGhpcyB1c2VyIGxlYXZlcy5cbiAgICAvLyBUaGlzIGltcGxpZXMgdGhhdCB0aGUgZGlzcGxheWVkIGNhbGwgZHVyYXRpb24gd2lsbCBhbHNvIHVwZGF0ZSBjb25zZXF1ZW50bHkuXG4gICAgY29uc3QgY3JlYXRlZFRzID0gc2Vzc2lvbj8uZ2V0T2xkZXN0TWVtYmVyc2hpcCgpPy5jcmVhdGVkVHMoKTtcbiAgICByZXR1cm4gY3JlYXRlZFRzID8gPENhbGxEdXJhdGlvbiBkZWx0YT17bm93IC0gY3JlYXRlZFRzfSAvPiA6IDxDYWxsRHVyYXRpb24gZGVsdGE9ezB9IC8+O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBUUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBR0EsSUFBQUMsVUFBQSxHQUFBRCxPQUFBO0FBQTJELFNBQUFFLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLENBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFKLHdCQUFBSSxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsdUJBQUFBLENBQUEseUJBQUFBLENBQUEsV0FBQUssT0FBQSxFQUFBTCxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcsQ0FBQSxPQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQUcsR0FB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