matrix-react-sdk
Version:
SDK for matrix.org using React
82 lines (77 loc) • 9.96 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = ExtraTile;
var _react = _interopRequireDefault(require("react"));
var _classnames = _interopRequireDefault(require("classnames"));
var _RovingTabIndex = require("../../../accessibility/RovingTabIndex");
var _NotificationBadge = _interopRequireDefault(require("./NotificationBadge"));
var _useHover = _interopRequireDefault(require("../../../hooks/useHover"));
/*
Copyright 2024 New Vector Ltd.
Copyright 2020-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.
*/
function ExtraTile({
isSelected,
isMinimized,
notificationState,
displayName,
onClick,
avatar
}) {
const [, {
onMouseOver,
onMouseLeave
}] = (0, _useHover.default)(() => false);
// XXX: We copy classes because it's easier
const classes = (0, _classnames.default)({
mx_ExtraTile: true,
mx_RoomTile: true,
mx_RoomTile_selected: isSelected,
mx_RoomTile_minimized: isMinimized
});
let badge = null;
if (notificationState) {
badge = /*#__PURE__*/_react.default.createElement(_NotificationBadge.default, {
notification: notificationState
});
}
let name = displayName;
if (typeof name !== "string") name = "";
name = name.replace(":", ":\u200b"); // add a zero-width space to allow linewrapping after the colon
const nameClasses = (0, _classnames.default)({
mx_RoomTile_title: true,
mx_RoomTile_titleHasUnreadEvents: notificationState?.isUnread
});
let nameContainer = /*#__PURE__*/_react.default.createElement("div", {
className: "mx_RoomTile_titleContainer"
}, /*#__PURE__*/_react.default.createElement("div", {
title: name,
className: nameClasses,
tabIndex: -1,
dir: "auto"
}, name));
if (isMinimized) nameContainer = null;
return /*#__PURE__*/_react.default.createElement(_RovingTabIndex.RovingAccessibleButton, {
className: classes,
onMouseEnter: onMouseOver,
onMouseLeave: onMouseLeave,
onClick: onClick,
role: "treeitem",
title: name,
disableTooltip: !isMinimized
}, /*#__PURE__*/_react.default.createElement("div", {
className: "mx_RoomTile_avatarContainer"
}, avatar), /*#__PURE__*/_react.default.createElement("div", {
className: "mx_RoomTile_details"
}, /*#__PURE__*/_react.default.createElement("div", {
className: "mx_RoomTile_primaryDetails"
}, nameContainer, /*#__PURE__*/_react.default.createElement("div", {
className: "mx_RoomTile_badgeContainer"
}, badge))));
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9jbGFzc25hbWVzIiwiX1JvdmluZ1RhYkluZGV4IiwiX05vdGlmaWNhdGlvbkJhZGdlIiwiX3VzZUhvdmVyIiwiRXh0cmFUaWxlIiwiaXNTZWxlY3RlZCIsImlzTWluaW1pemVkIiwibm90aWZpY2F0aW9uU3RhdGUiLCJkaXNwbGF5TmFtZSIsIm9uQ2xpY2siLCJhdmF0YXIiLCJvbk1vdXNlT3ZlciIsIm9uTW91c2VMZWF2ZSIsInVzZUhvdmVyIiwiY2xhc3NlcyIsImNsYXNzTmFtZXMiLCJteF9FeHRyYVRpbGUiLCJteF9Sb29tVGlsZSIsIm14X1Jvb21UaWxlX3NlbGVjdGVkIiwibXhfUm9vbVRpbGVfbWluaW1pemVkIiwiYmFkZ2UiLCJkZWZhdWx0IiwiY3JlYXRlRWxlbWVudCIsIm5vdGlmaWNhdGlvbiIsIm5hbWUiLCJyZXBsYWNlIiwibmFtZUNsYXNzZXMiLCJteF9Sb29tVGlsZV90aXRsZSIsIm14X1Jvb21UaWxlX3RpdGxlSGFzVW5yZWFkRXZlbnRzIiwiaXNVbnJlYWQiLCJuYW1lQ29udGFpbmVyIiwiY2xhc3NOYW1lIiwidGl0bGUiLCJ0YWJJbmRleCIsImRpciIsIlJvdmluZ0FjY2Vzc2libGVCdXR0b24iLCJvbk1vdXNlRW50ZXIiLCJyb2xlIiwiZGlzYWJsZVRvb2x0aXAiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy92aWV3cy9yb29tcy9FeHRyYVRpbGUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwLTIwMjMgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5XG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIjtcblxuaW1wb3J0IHsgUm92aW5nQWNjZXNzaWJsZUJ1dHRvbiB9IGZyb20gXCIuLi8uLi8uLi9hY2Nlc3NpYmlsaXR5L1JvdmluZ1RhYkluZGV4XCI7XG5pbXBvcnQgTm90aWZpY2F0aW9uQmFkZ2UgZnJvbSBcIi4vTm90aWZpY2F0aW9uQmFkZ2VcIjtcbmltcG9ydCB7IE5vdGlmaWNhdGlvblN0YXRlIH0gZnJvbSBcIi4uLy4uLy4uL3N0b3Jlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvblN0YXRlXCI7XG5pbXBvcnQgeyBCdXR0b25FdmVudCB9IGZyb20gXCIuLi9lbGVtZW50cy9BY2Nlc3NpYmxlQnV0dG9uXCI7XG5pbXBvcnQgdXNlSG92ZXIgZnJvbSBcIi4uLy4uLy4uL2hvb2tzL3VzZUhvdmVyXCI7XG5cbmludGVyZmFjZSBFeHRyYVRpbGVQcm9wcyB7XG4gICAgaXNNaW5pbWl6ZWQ6IGJvb2xlYW47XG4gICAgaXNTZWxlY3RlZDogYm9vbGVhbjtcbiAgICBkaXNwbGF5TmFtZTogc3RyaW5nO1xuICAgIGF2YXRhcjogUmVhY3QuUmVhY3RFbGVtZW50O1xuICAgIG5vdGlmaWNhdGlvblN0YXRlPzogTm90aWZpY2F0aW9uU3RhdGU7XG4gICAgb25DbGljazogKGV2OiBCdXR0b25FdmVudCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRXh0cmFUaWxlKHtcbiAgICBpc1NlbGVjdGVkLFxuICAgIGlzTWluaW1pemVkLFxuICAgIG5vdGlmaWNhdGlvblN0YXRlLFxuICAgIGRpc3BsYXlOYW1lLFxuICAgIG9uQ2xpY2ssXG4gICAgYXZhdGFyLFxufTogRXh0cmFUaWxlUHJvcHMpOiBKU1guRWxlbWVudCB7XG4gICAgY29uc3QgWywgeyBvbk1vdXNlT3Zlciwgb25Nb3VzZUxlYXZlIH1dID0gdXNlSG92ZXIoKCkgPT4gZmFsc2UpO1xuXG4gICAgLy8gWFhYOiBXZSBjb3B5IGNsYXNzZXMgYmVjYXVzZSBpdCdzIGVhc2llclxuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc05hbWVzKHtcbiAgICAgICAgbXhfRXh0cmFUaWxlOiB0cnVlLFxuICAgICAgICBteF9Sb29tVGlsZTogdHJ1ZSxcbiAgICAgICAgbXhfUm9vbVRpbGVfc2VsZWN0ZWQ6IGlzU2VsZWN0ZWQsXG4gICAgICAgIG14X1Jvb21UaWxlX21pbmltaXplZDogaXNNaW5pbWl6ZWQsXG4gICAgfSk7XG5cbiAgICBsZXQgYmFkZ2U6IEpTWC5FbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gICAgaWYgKG5vdGlmaWNhdGlvblN0YXRlKSB7XG4gICAgICAgIGJhZGdlID0gPE5vdGlmaWNhdGlvbkJhZGdlIG5vdGlmaWNhdGlvbj17bm90aWZpY2F0aW9uU3RhdGV9IC8+O1xuICAgIH1cblxuICAgIGxldCBuYW1lID0gZGlzcGxheU5hbWU7XG4gICAgaWYgKHR5cGVvZiBuYW1lICE9PSBcInN0cmluZ1wiKSBuYW1lID0gXCJcIjtcbiAgICBuYW1lID0gbmFtZS5yZXBsYWNlKFwiOlwiLCBcIjpcXHUyMDBiXCIpOyAvLyBhZGQgYSB6ZXJvLXdpZHRoIHNwYWNlIHRvIGFsbG93IGxpbmV3cmFwcGluZyBhZnRlciB0aGUgY29sb25cblxuICAgIGNvbnN0IG5hbWVDbGFzc2VzID0gY2xhc3NOYW1lcyh7XG4gICAgICAgIG14X1Jvb21UaWxlX3RpdGxlOiB0cnVlLFxuICAgICAgICBteF9Sb29tVGlsZV90aXRsZUhhc1VucmVhZEV2ZW50czogbm90aWZpY2F0aW9uU3RhdGU/LmlzVW5yZWFkLFxuICAgIH0pO1xuXG4gICAgbGV0IG5hbWVDb250YWluZXI6IEpTWC5FbGVtZW50IHwgbnVsbCA9IChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJteF9Sb29tVGlsZV90aXRsZUNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGRpdiB0aXRsZT17bmFtZX0gY2xhc3NOYW1lPXtuYW1lQ2xhc3Nlc30gdGFiSW5kZXg9ey0xfSBkaXI9XCJhdXRvXCI+XG4gICAgICAgICAgICAgICAge25hbWV9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgKTtcbiAgICBpZiAoaXNNaW5pbWl6ZWQpIG5hbWVDb250YWluZXIgPSBudWxsO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPFJvdmluZ0FjY2Vzc2libGVCdXR0b25cbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlc31cbiAgICAgICAgICAgIG9uTW91c2VFbnRlcj17b25Nb3VzZU92ZXJ9XG4gICAgICAgICAgICBvbk1vdXNlTGVhdmU9e29uTW91c2VMZWF2ZX1cbiAgICAgICAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XG4gICAgICAgICAgICByb2xlPVwidHJlZWl0ZW1cIlxuICAgICAgICAgICAgdGl0bGU9e25hbWV9XG4gICAgICAgICAgICBkaXNhYmxlVG9vbHRpcD17IWlzTWluaW1pemVkfVxuICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm14X1Jvb21UaWxlX2F2YXRhckNvbnRhaW5lclwiPnthdmF0YXJ9PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm14X1Jvb21UaWxlX2RldGFpbHNcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm14X1Jvb21UaWxlX3ByaW1hcnlEZXRhaWxzXCI+XG4gICAgICAgICAgICAgICAgICAgIHtuYW1lQ29udGFpbmVyfVxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm14X1Jvb21UaWxlX2JhZGdlQ29udGFpbmVyXCI+e2JhZGdlfTwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvUm92aW5nQWNjZXNzaWJsZUJ1dHRvbj5cbiAgICApO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBUUEsSUFB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