UNPKG

matrix-react-sdk

Version:
81 lines (78 loc) 12.5 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireDefault(require("react")); var _matrix = require("matrix-js-sdk/src/matrix"); var _types = require("matrix-js-sdk/src/types"); var _languageHandler = require("../../../languageHandler"); var _RightPanelStore = _interopRequireDefault(require("../../../stores/right-panel/RightPanelStore")); var _RightPanelStorePhases = require("../../../stores/right-panel/RightPanelStorePhases"); var _useAsyncMemo = require("../../../hooks/useAsyncMemo"); var _useRoomState = require("../../../hooks/useRoomState"); var _useRoomMembers = require("../../../hooks/useRoomMembers"); var _AccessibleButton = _interopRequireDefault(require("../elements/AccessibleButton")); var _videoRooms = require("../../../utils/video-rooms"); /* 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 RoomInfoLine = ({ room }) => { // summary will begin as undefined whilst loading and go null if it fails to load or we are not invited. const summary = (0, _useAsyncMemo.useAsyncMemo)(async () => { if (room.getMyMembership() !== _types.KnownMembership.Invite) return null; try { return await room.client.getRoomSummary(room.roomId); } catch (e) { return null; } }, [room]); const joinRule = (0, _useRoomState.useRoomState)(room, state => state.getJoinRule()); const membership = (0, _useRoomMembers.useMyRoomMembership)(room); const memberCount = (0, _useRoomMembers.useRoomMemberCount)(room); const isVideoRoom = (0, _videoRooms.isVideoRoom)(room); let iconClass; let roomType; if (isVideoRoom) { iconClass = "mx_RoomInfoLine_video"; roomType = (0, _languageHandler._t)("common|video_room"); } else if (joinRule === _matrix.JoinRule.Public) { iconClass = "mx_RoomInfoLine_public"; roomType = room.isSpaceRoom() ? (0, _languageHandler._t)("common|public_space") : (0, _languageHandler._t)("common|public_room"); } else { iconClass = "mx_RoomInfoLine_private"; roomType = room.isSpaceRoom() ? (0, _languageHandler._t)("common|private_space") : (0, _languageHandler._t)("common|private_room"); } let members; if (membership === _types.KnownMembership.Invite && summary) { // Don't trust local state and instead use the summary API members = /*#__PURE__*/_react.default.createElement("span", { className: "mx_RoomInfoLine_members" }, (0, _languageHandler._t)("common|n_members", { count: summary.num_joined_members })); } else if (memberCount && summary !== undefined) { // summary is not still loading const viewMembers = () => _RightPanelStore.default.instance.setCard({ phase: room.isSpaceRoom() ? _RightPanelStorePhases.RightPanelPhases.SpaceMemberList : _RightPanelStorePhases.RightPanelPhases.RoomMemberList }); members = /*#__PURE__*/_react.default.createElement(_AccessibleButton.default, { kind: "link", className: "mx_RoomInfoLine_members", onClick: viewMembers }, (0, _languageHandler._t)("common|n_members", { count: memberCount })); } return /*#__PURE__*/_react.default.createElement("div", { className: `mx_RoomInfoLine ${iconClass}` }, roomType, members); }; var _default = exports.default = RoomInfoLine; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9tYXRyaXgiLCJfdHlwZXMiLCJfbGFuZ3VhZ2VIYW5kbGVyIiwiX1JpZ2h0UGFuZWxTdG9yZSIsIl9SaWdodFBhbmVsU3RvcmVQaGFzZXMiLCJfdXNlQXN5bmNNZW1vIiwiX3VzZVJvb21TdGF0ZSIsIl91c2VSb29tTWVtYmVycyIsIl9BY2Nlc3NpYmxlQnV0dG9uIiwiX3ZpZGVvUm9vbXMiLCJSb29tSW5mb0xpbmUiLCJyb29tIiwic3VtbWFyeSIsInVzZUFzeW5jTWVtbyIsImdldE15TWVtYmVyc2hpcCIsIktub3duTWVtYmVyc2hpcCIsIkludml0ZSIsImNsaWVudCIsImdldFJvb21TdW1tYXJ5Iiwicm9vbUlkIiwiZSIsImpvaW5SdWxlIiwidXNlUm9vbVN0YXRlIiwic3RhdGUiLCJnZXRKb2luUnVsZSIsIm1lbWJlcnNoaXAiLCJ1c2VNeVJvb21NZW1iZXJzaGlwIiwibWVtYmVyQ291bnQiLCJ1c2VSb29tTWVtYmVyQ291bnQiLCJpc1ZpZGVvUm9vbSIsImNhbGNJc1ZpZGVvUm9vbSIsImljb25DbGFzcyIsInJvb21UeXBlIiwiX3QiLCJKb2luUnVsZSIsIlB1YmxpYyIsImlzU3BhY2VSb29tIiwibWVtYmVycyIsImRlZmF1bHQiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwiY291bnQiLCJudW1fam9pbmVkX21lbWJlcnMiLCJ1bmRlZmluZWQiLCJ2aWV3TWVtYmVycyIsIlJpZ2h0UGFuZWxTdG9yZSIsImluc3RhbmNlIiwic2V0Q2FyZCIsInBoYXNlIiwiUmlnaHRQYW5lbFBoYXNlcyIsIlNwYWNlTWVtYmVyTGlzdCIsIlJvb21NZW1iZXJMaXN0Iiwia2luZCIsIm9uQ2xpY2siLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy92aWV3cy9yb29tcy9Sb29tSW5mb0xpbmUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seVxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbmltcG9ydCBSZWFjdCwgeyBGQyB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgUm9vbSwgSm9pblJ1bGUsIE1hdHJpeENsaWVudCB9IGZyb20gXCJtYXRyaXgtanMtc2RrL3NyYy9tYXRyaXhcIjtcbmltcG9ydCB7IEtub3duTWVtYmVyc2hpcCB9IGZyb20gXCJtYXRyaXgtanMtc2RrL3NyYy90eXBlc1wiO1xuXG5pbXBvcnQgeyBfdCB9IGZyb20gXCIuLi8uLi8uLi9sYW5ndWFnZUhhbmRsZXJcIjtcbmltcG9ydCBSaWdodFBhbmVsU3RvcmUgZnJvbSBcIi4uLy4uLy4uL3N0b3Jlcy9yaWdodC1wYW5lbC9SaWdodFBhbmVsU3RvcmVcIjtcbmltcG9ydCB7IFJpZ2h0UGFuZWxQaGFzZXMgfSBmcm9tIFwiLi4vLi4vLi4vc3RvcmVzL3JpZ2h0LXBhbmVsL1JpZ2h0UGFuZWxTdG9yZVBoYXNlc1wiO1xuaW1wb3J0IHsgdXNlQXN5bmNNZW1vIH0gZnJvbSBcIi4uLy4uLy4uL2hvb2tzL3VzZUFzeW5jTWVtb1wiO1xuaW1wb3J0IHsgdXNlUm9vbVN0YXRlIH0gZnJvbSBcIi4uLy4uLy4uL2hvb2tzL3VzZVJvb21TdGF0ZVwiO1xuaW1wb3J0IHsgdXNlUm9vbU1lbWJlckNvdW50LCB1c2VNeVJvb21NZW1iZXJzaGlwIH0gZnJvbSBcIi4uLy4uLy4uL2hvb2tzL3VzZVJvb21NZW1iZXJzXCI7XG5pbXBvcnQgQWNjZXNzaWJsZUJ1dHRvbiBmcm9tIFwiLi4vZWxlbWVudHMvQWNjZXNzaWJsZUJ1dHRvblwiO1xuaW1wb3J0IHsgaXNWaWRlb1Jvb20gYXMgY2FsY0lzVmlkZW9Sb29tIH0gZnJvbSBcIi4uLy4uLy4uL3V0aWxzL3ZpZGVvLXJvb21zXCI7XG5cbmludGVyZmFjZSBJUHJvcHMge1xuICAgIHJvb206IFJvb207XG59XG5cbmNvbnN0IFJvb21JbmZvTGluZTogRkM8SVByb3BzPiA9ICh7IHJvb20gfSkgPT4ge1xuICAgIC8vIHN1bW1hcnkgd2lsbCBiZWdpbiBhcyB1bmRlZmluZWQgd2hpbHN0IGxvYWRpbmcgYW5kIGdvIG51bGwgaWYgaXQgZmFpbHMgdG8gbG9hZCBvciB3ZSBhcmUgbm90IGludml0ZWQuXG4gICAgY29uc3Qgc3VtbWFyeSA9IHVzZUFzeW5jTWVtbyhhc3luYyAoKTogUHJvbWlzZTxBd2FpdGVkPFJldHVyblR5cGU8TWF0cml4Q2xpZW50W1wiZ2V0Um9vbVN1bW1hcnlcIl0+PiB8IG51bGw+ID0+IHtcbiAgICAgICAgaWYgKHJvb20uZ2V0TXlNZW1iZXJzaGlwKCkgIT09IEtub3duTWVtYmVyc2hpcC5JbnZpdGUpIHJldHVybiBudWxsO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHJvb20uY2xpZW50LmdldFJvb21TdW1tYXJ5KHJvb20ucm9vbUlkKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9LCBbcm9vbV0pO1xuICAgIGNvbnN0IGpvaW5SdWxlID0gdXNlUm9vbVN0YXRlKHJvb20sIChzdGF0ZSkgPT4gc3RhdGUuZ2V0Sm9pblJ1bGUoKSk7XG4gICAgY29uc3QgbWVtYmVyc2hpcCA9IHVzZU15Um9vbU1lbWJlcnNoaXAocm9vbSk7XG4gICAgY29uc3QgbWVtYmVyQ291bnQgPSB1c2VSb29tTWVtYmVyQ291bnQocm9vbSk7XG5cbiAgICBjb25zdCBpc1ZpZGVvUm9vbSA9IGNhbGNJc1ZpZGVvUm9vbShyb29tKTtcblxuICAgIGxldCBpY29uQ2xhc3M6IHN0cmluZztcbiAgICBsZXQgcm9vbVR5cGU6IHN0cmluZztcbiAgICBpZiAoaXNWaWRlb1Jvb20pIHtcbiAgICAgICAgaWNvbkNsYXNzID0gXCJteF9Sb29tSW5mb0xpbmVfdmlkZW9cIjtcbiAgICAgICAgcm9vbVR5cGUgPSBfdChcImNvbW1vbnx2aWRlb19yb29tXCIpO1xuICAgIH0gZWxzZSBpZiAoam9pblJ1bGUgPT09IEpvaW5SdWxlLlB1YmxpYykge1xuICAgICAgICBpY29uQ2xhc3MgPSBcIm14X1Jvb21JbmZvTGluZV9wdWJsaWNcIjtcbiAgICAgICAgcm9vbVR5cGUgPSByb29tLmlzU3BhY2VSb29tKCkgPyBfdChcImNvbW1vbnxwdWJsaWNfc3BhY2VcIikgOiBfdChcImNvbW1vbnxwdWJsaWNfcm9vbVwiKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBpY29uQ2xhc3MgPSBcIm14X1Jvb21JbmZvTGluZV9wcml2YXRlXCI7XG4gICAgICAgIHJvb21UeXBlID0gcm9vbS5pc1NwYWNlUm9vbSgpID8gX3QoXCJjb21tb258cHJpdmF0ZV9zcGFjZVwiKSA6IF90KFwiY29tbW9ufHByaXZhdGVfcm9vbVwiKTtcbiAgICB9XG5cbiAgICBsZXQgbWVtYmVyczogSlNYLkVsZW1lbnQgfCB1bmRlZmluZWQ7XG4gICAgaWYgKG1lbWJlcnNoaXAgPT09IEtub3duTWVtYmVyc2hpcC5JbnZpdGUgJiYgc3VtbWFyeSkge1xuICAgICAgICAvLyBEb24ndCB0cnVzdCBsb2NhbCBzdGF0ZSBhbmQgaW5zdGVhZCB1c2UgdGhlIHN1bW1hcnkgQVBJXG4gICAgICAgIG1lbWJlcnMgPSAoXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJteF9Sb29tSW5mb0xpbmVfbWVtYmVyc1wiPlxuICAgICAgICAgICAgICAgIHtfdChcImNvbW1vbnxuX21lbWJlcnNcIiwgeyBjb3VudDogc3VtbWFyeS5udW1fam9pbmVkX21lbWJlcnMgfSl9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICk7XG4gICAgfSBlbHNlIGlmIChtZW1iZXJDb3VudCAmJiBzdW1tYXJ5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgLy8gc3VtbWFyeSBpcyBub3Qgc3RpbGwgbG9hZGluZ1xuICAgICAgICBjb25zdCB2aWV3TWVtYmVycyA9ICgpOiB2b2lkID0+XG4gICAgICAgICAgICBSaWdodFBhbmVsU3RvcmUuaW5zdGFuY2Uuc2V0Q2FyZCh7XG4gICAgICAgICAgICAgICAgcGhhc2U6IHJvb20uaXNTcGFjZVJvb20oKSA/IFJpZ2h0UGFuZWxQaGFzZXMuU3BhY2VNZW1iZXJMaXN0IDogUmlnaHRQYW5lbFBoYXNlcy5Sb29tTWVtYmVyTGlzdCxcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIG1lbWJlcnMgPSAoXG4gICAgICAgICAgICA8QWNjZXNzaWJsZUJ1dHRvbiBraW5kPVwibGlua1wiIGNsYXNzTmFtZT1cIm14X1Jvb21JbmZvTGluZV9tZW1iZXJzXCIgb25DbGljaz17dmlld01lbWJlcnN9PlxuICAgICAgICAgICAgICAgIHtfdChcImNvbW1vbnxuX21lbWJlcnNcIiwgeyBjb3VudDogbWVtYmVyQ291bnQgfSl9XG4gICAgICAgICAgICA8L0FjY2Vzc2libGVCdXR0b24+XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2BteF9Sb29tSW5mb0xpbmUgJHtpY29uQ2xhc3N9YH0+XG4gICAgICAgICAgICB7cm9vbVR5cGV9XG4gICAgICAgICAgICB7bWVtYmVyc31cbiAgICAgICAgPC9kaXY+XG4gICAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFJvb21JbmZvTGluZTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQVFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUYsT0FBQTtBQUVBLElBQUFHLGdCQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxnQkFBQSxHQUFBTCxzQkFBQSxDQUFB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