UNPKG

matrix-react-sdk

Version:
63 lines (60 loc) 10.3 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.BUSY_PRESENCE_NAME = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireDefault(require("react")); var _NamespacedValue = require("matrix-js-sdk/src/NamespacedValue"); var _classnames = _interopRequireDefault(require("classnames")); var _languageHandler = require("../../../languageHandler"); var _DateUtils = require("../../../DateUtils"); /* Copyright 2024 New Vector Ltd. Copyright 2015, 2016 OpenMarket Ltd SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ const BUSY_PRESENCE_NAME = exports.BUSY_PRESENCE_NAME = new _NamespacedValue.UnstableValue("busy", "org.matrix.msc3026.busy"); class PresenceLabel extends _react.default.Component { getPrettyPresence(presence, activeAgo, currentlyActive) { // for busy presence, we ignore the 'currentlyActive' flag: they're busy whether // they're active or not. It can be set while the user is active in which case // the 'active ago' ends up being 0. if (presence && BUSY_PRESENCE_NAME.matches(presence)) return (0, _languageHandler._t)("presence|busy"); if (presence === "io.element.unreachable") return (0, _languageHandler._t)("presence|unreachable"); if (!currentlyActive && activeAgo !== undefined && activeAgo > 0) { const duration = (0, _DateUtils.formatDuration)(activeAgo); if (presence === "online") return (0, _languageHandler._t)("presence|online_for", { duration: duration }); if (presence === "unavailable") return (0, _languageHandler._t)("presence|idle_for", { duration: duration }); // XXX: is this actually right? if (presence === "offline") return (0, _languageHandler._t)("presence|offline_for", { duration: duration }); return (0, _languageHandler._t)("presence|unknown_for", { duration: duration }); } else { if (presence === "online") return (0, _languageHandler._t)("presence|online"); if (presence === "unavailable") return (0, _languageHandler._t)("presence|idle"); // XXX: is this actually right? if (presence === "offline") return (0, _languageHandler._t)("presence|offline"); return (0, _languageHandler._t)("presence|unknown"); } } render() { return /*#__PURE__*/_react.default.createElement("div", { className: (0, _classnames.default)("mx_PresenceLabel", this.props.className, { mx_PresenceLabel_online: this.props.coloured && this.props.presenceState === "online" }) }, this.getPrettyPresence(this.props.presenceState, this.props.activeAgo, this.props.currentlyActive)); } } exports.default = PresenceLabel; (0, _defineProperty2.default)(PresenceLabel, "defaultProps", { activeAgo: -1 }); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9OYW1lc3BhY2VkVmFsdWUiLCJfY2xhc3NuYW1lcyIsIl9sYW5ndWFnZUhhbmRsZXIiLCJfRGF0ZVV0aWxzIiwiQlVTWV9QUkVTRU5DRV9OQU1FIiwiZXhwb3J0cyIsIlVuc3RhYmxlVmFsdWUiLCJQcmVzZW5jZUxhYmVsIiwiUmVhY3QiLCJDb21wb25lbnQiLCJnZXRQcmV0dHlQcmVzZW5jZSIsInByZXNlbmNlIiwiYWN0aXZlQWdvIiwiY3VycmVudGx5QWN0aXZlIiwibWF0Y2hlcyIsIl90IiwidW5kZWZpbmVkIiwiZHVyYXRpb24iLCJmb3JtYXREdXJhdGlvbiIsInJlbmRlciIsImRlZmF1bHQiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwiY2xhc3NOYW1lcyIsInByb3BzIiwibXhfUHJlc2VuY2VMYWJlbF9vbmxpbmUiLCJjb2xvdXJlZCIsInByZXNlbmNlU3RhdGUiLCJfZGVmaW5lUHJvcGVydHkyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdmlld3Mvcm9vbXMvUHJlc2VuY2VMYWJlbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5XG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgVW5zdGFibGVWYWx1ZSB9IGZyb20gXCJtYXRyaXgtanMtc2RrL3NyYy9OYW1lc3BhY2VkVmFsdWVcIjtcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gXCJjbGFzc25hbWVzXCI7XG5cbmltcG9ydCB7IF90IH0gZnJvbSBcIi4uLy4uLy4uL2xhbmd1YWdlSGFuZGxlclwiO1xuaW1wb3J0IHsgZm9ybWF0RHVyYXRpb24gfSBmcm9tIFwiLi4vLi4vLi4vRGF0ZVV0aWxzXCI7XG5cbmV4cG9ydCBjb25zdCBCVVNZX1BSRVNFTkNFX05BTUUgPSBuZXcgVW5zdGFibGVWYWx1ZShcImJ1c3lcIiwgXCJvcmcubWF0cml4Lm1zYzMwMjYuYnVzeVwiKTtcblxuaW50ZXJmYWNlIElQcm9wcyB7XG4gICAgLy8gbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBhZ28gdGhpcyB1c2VyIHdhcyBsYXN0IGFjdGl2ZS5cbiAgICAvLyB6ZXJvID0gdW5rbm93blxuICAgIGFjdGl2ZUFnbz86IG51bWJlcjtcbiAgICAvLyBpZiB0cnVlLCBhY3RpdmVBZ28gaXMgYW4gYXBwcm94aW1hdGlvbiBhbmQgXCJOb3dcIiBzaG91bGRcbiAgICAvLyBiZSBzaG93biBpbnN0ZWFkXG4gICAgY3VycmVudGx5QWN0aXZlPzogYm9vbGVhbjtcbiAgICAvLyBvZmZsaW5lLCBvbmxpbmUsIGV0Y1xuICAgIHByZXNlbmNlU3RhdGU/OiBzdHJpbmc7XG4gICAgLy8gd2hldGhlciB0byBhcHBseSBjb2xvdXJpbmcgdG8gdGhlIGxhYmVsXG4gICAgY29sb3VyZWQ/OiBib29sZWFuO1xuICAgIGNsYXNzTmFtZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUHJlc2VuY2VMYWJlbCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxJUHJvcHM+IHtcbiAgICBwdWJsaWMgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgICAgYWN0aXZlQWdvOiAtMSxcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBnZXRQcmV0dHlQcmVzZW5jZShwcmVzZW5jZT86IHN0cmluZywgYWN0aXZlQWdvPzogbnVtYmVyLCBjdXJyZW50bHlBY3RpdmU/OiBib29sZWFuKTogc3RyaW5nIHtcbiAgICAgICAgLy8gZm9yIGJ1c3kgcHJlc2VuY2UsIHdlIGlnbm9yZSB0aGUgJ2N1cnJlbnRseUFjdGl2ZScgZmxhZzogdGhleSdyZSBidXN5IHdoZXRoZXJcbiAgICAgICAgLy8gdGhleSdyZSBhY3RpdmUgb3Igbm90LiBJdCBjYW4gYmUgc2V0IHdoaWxlIHRoZSB1c2VyIGlzIGFjdGl2ZSBpbiB3aGljaCBjYXNlXG4gICAgICAgIC8vIHRoZSAnYWN0aXZlIGFnbycgZW5kcyB1cCBiZWluZyAwLlxuICAgICAgICBpZiAocHJlc2VuY2UgJiYgQlVTWV9QUkVTRU5DRV9OQU1FLm1hdGNoZXMocHJlc2VuY2UpKSByZXR1cm4gX3QoXCJwcmVzZW5jZXxidXN5XCIpO1xuXG4gICAgICAgIGlmIChwcmVzZW5jZSA9PT0gXCJpby5lbGVtZW50LnVucmVhY2hhYmxlXCIpIHJldHVybiBfdChcInByZXNlbmNlfHVucmVhY2hhYmxlXCIpO1xuXG4gICAgICAgIGlmICghY3VycmVudGx5QWN0aXZlICYmIGFjdGl2ZUFnbyAhPT0gdW5kZWZpbmVkICYmIGFjdGl2ZUFnbyA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGR1cmF0aW9uID0gZm9ybWF0RHVyYXRpb24oYWN0aXZlQWdvKTtcbiAgICAgICAgICAgIGlmIChwcmVzZW5jZSA9PT0gXCJvbmxpbmVcIikgcmV0dXJuIF90KFwicHJlc2VuY2V8b25saW5lX2ZvclwiLCB7IGR1cmF0aW9uOiBkdXJhdGlvbiB9KTtcbiAgICAgICAgICAgIGlmIChwcmVzZW5jZSA9PT0gXCJ1bmF2YWlsYWJsZVwiKSByZXR1cm4gX3QoXCJwcmVzZW5jZXxpZGxlX2ZvclwiLCB7IGR1cmF0aW9uOiBkdXJhdGlvbiB9KTsgLy8gWFhYOiBpcyB0aGlzIGFjdHVhbGx5IHJpZ2h0P1xuICAgICAgICAgICAgaWYgKHByZXNlbmNlID09PSBcIm9mZmxpbmVcIikgcmV0dXJuIF90KFwicHJlc2VuY2V8b2ZmbGluZV9mb3JcIiwgeyBkdXJhdGlvbjogZHVyYXRpb24gfSk7XG4gICAgICAgICAgICByZXR1cm4gX3QoXCJwcmVzZW5jZXx1bmtub3duX2ZvclwiLCB7IGR1cmF0aW9uOiBkdXJhdGlvbiB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChwcmVzZW5jZSA9PT0gXCJvbmxpbmVcIikgcmV0dXJuIF90KFwicHJlc2VuY2V8b25saW5lXCIpO1xuICAgICAgICAgICAgaWYgKHByZXNlbmNlID09PSBcInVuYXZhaWxhYmxlXCIpIHJldHVybiBfdChcInByZXNlbmNlfGlkbGVcIik7IC8vIFhYWDogaXMgdGhpcyBhY3R1YWxseSByaWdodD9cbiAgICAgICAgICAgIGlmIChwcmVzZW5jZSA9PT0gXCJvZmZsaW5lXCIpIHJldHVybiBfdChcInByZXNlbmNlfG9mZmxpbmVcIik7XG4gICAgICAgICAgICByZXR1cm4gX3QoXCJwcmVzZW5jZXx1bmtub3duXCIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHJlbmRlcigpOiBSZWFjdC5SZWFjdE5vZGUge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcIm14X1ByZXNlbmNlTGFiZWxcIiwgdGhpcy5wcm9wcy5jbGFzc05hbWUsIHtcbiAgICAgICAgICAgICAgICAgICAgbXhfUHJlc2VuY2VMYWJlbF9vbmxpbmU6IHRoaXMucHJvcHMuY29sb3VyZWQgJiYgdGhpcy5wcm9wcy5wcmVzZW5jZVN0YXRlID09PSBcIm9ubGluZVwiLFxuICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt0aGlzLmdldFByZXR0eVByZXNlbmNlKHRoaXMucHJvcHMucHJlc2VuY2VTdGF0ZSwgdGhpcy5wcm9wcy5hY3RpdmVBZ28sIHRoaXMucHJvcHMuY3VycmVudGx5QWN0aXZlKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICApO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFRQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFD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