matrix-react-sdk
Version:
SDK for matrix.org using React
104 lines (98 loc) • 17 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireWildcard(require("react"));
var _lodash = require("lodash");
var _logger = require("matrix-js-sdk/src/logger");
var _MemberAvatar = _interopRequireDefault(require("../avatars/MemberAvatar"));
var _languageHandler = require("../../../languageHandler");
var _useStateToggle = require("../../../hooks/useStateToggle");
var _AccessibleButton = _interopRequireDefault(require("./AccessibleButton"));
var _Layout = require("../../../settings/enums/Layout");
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 2019-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 GenericEventListSummary = ({
events,
children,
threshold = 3,
onToggle,
startExpanded = false,
summaryMembers = [],
summaryText,
layout = _Layout.Layout.Group,
"data-testid": testId
}) => {
const [expanded, toggleExpanded] = (0, _useStateToggle.useStateToggle)(startExpanded);
// Whenever expanded changes call onToggle
(0, _react.useEffect)(() => {
if (onToggle) {
onToggle();
}
}, [expanded]); // eslint-disable-line react-hooks/exhaustive-deps
const eventIds = events.map(e => e.getId()).join(",");
// If we are only given few events then just pass them through
if (events.length < threshold) {
return /*#__PURE__*/_react.default.createElement("li", {
className: "mx_GenericEventListSummary",
"data-scroll-tokens": eventIds,
"data-expanded": true,
"data-layout": layout
}, /*#__PURE__*/_react.default.createElement("ol", {
className: "mx_GenericEventListSummary_unstyledList"
}, children));
}
let body;
if (expanded) {
body = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
className: "mx_GenericEventListSummary_spacer"
}, "\xA0"), /*#__PURE__*/_react.default.createElement("ol", {
className: "mx_GenericEventListSummary_unstyledList"
}, children));
} else {
const uniqueMembers = (0, _lodash.uniqBy)(summaryMembers.filter(member => {
if (!member?.getMxcAvatarUrl) {
_logger.logger.error("EventListSummary given null summaryMember, termites may be afoot eating event senders", summaryMembers);
return false;
}
return true;
}), member => member.getMxcAvatarUrl());
const avatars = uniqueMembers.map(m => /*#__PURE__*/_react.default.createElement(_MemberAvatar.default, {
key: m.userId,
member: m,
size: "14px"
}));
body = /*#__PURE__*/_react.default.createElement("div", {
className: "mx_EventTile_line"
}, /*#__PURE__*/_react.default.createElement("div", {
className: "mx_EventTile_info"
}, /*#__PURE__*/_react.default.createElement("span", {
className: "mx_GenericEventListSummary_avatars",
onClick: toggleExpanded
}, avatars), /*#__PURE__*/_react.default.createElement("span", {
className: "mx_TextualEvent mx_GenericEventListSummary_summary"
}, summaryText)));
}
return /*#__PURE__*/_react.default.createElement("li", {
className: "mx_GenericEventListSummary",
"data-scroll-tokens": eventIds,
"data-expanded": expanded + "",
"data-layout": layout,
"data-testid": testId
}, /*#__PURE__*/_react.default.createElement(_AccessibleButton.default, {
kind: "link_inline",
className: "mx_GenericEventListSummary_toggle",
onClick: toggleExpanded,
"aria-expanded": expanded
}, expanded ? (0, _languageHandler._t)("action|collapse") : (0, _languageHandler._t)("action|expand")), body);
};
var _default = exports.default = GenericEventListSummary;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfbG9kYXNoIiwiX2xvZ2dlciIsIl9NZW1iZXJBdmF0YXIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2xhbmd1YWdlSGFuZGxlciIsIl91c2VTdGF0ZVRvZ2dsZSIsIl9BY2Nlc3NpYmxlQnV0dG9uIiwiX0xheW91dCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIkdlbmVyaWNFdmVudExpc3RTdW1tYXJ5IiwiZXZlbnRzIiwiY2hpbGRyZW4iLCJ0aHJlc2hvbGQiLCJvblRvZ2dsZSIsInN0YXJ0RXhwYW5kZWQiLCJzdW1tYXJ5TWVtYmVycyIsInN1bW1hcnlUZXh0IiwibGF5b3V0IiwiTGF5b3V0IiwiR3JvdXAiLCJ0ZXN0SWQiLCJleHBhbmRlZCIsInRvZ2dsZUV4cGFuZGVkIiwidXNlU3RhdGVUb2dnbGUiLCJ1c2VFZmZlY3QiLCJldmVudElkcyIsIm1hcCIsImdldElkIiwiam9pbiIsImxlbmd0aCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJib2R5IiwiRnJhZ21lbnQiLCJ1bmlxdWVNZW1iZXJzIiwidW5pcUJ5IiwiZmlsdGVyIiwibWVtYmVyIiwiZ2V0TXhjQXZhdGFyVXJsIiwibG9nZ2VyIiwiZXJyb3IiLCJhdmF0YXJzIiwibSIsImtleSIsInVzZXJJZCIsInNpemUiLCJvbkNsaWNrIiwia2luZCIsIl90IiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdmlld3MvZWxlbWVudHMvR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnkudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5LTIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5XG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSwgdXNlRWZmZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1bmlxQnkgfSBmcm9tIFwibG9kYXNoXCI7XG5pbXBvcnQgeyBNYXRyaXhFdmVudCwgUm9vbU1lbWJlciB9IGZyb20gXCJtYXRyaXgtanMtc2RrL3NyYy9tYXRyaXhcIjtcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gXCJtYXRyaXgtanMtc2RrL3NyYy9sb2dnZXJcIjtcblxuaW1wb3J0IE1lbWJlckF2YXRhciBmcm9tIFwiLi4vYXZhdGFycy9NZW1iZXJBdmF0YXJcIjtcbmltcG9ydCB7IF90IH0gZnJvbSBcIi4uLy4uLy4uL2xhbmd1YWdlSGFuZGxlclwiO1xuaW1wb3J0IHsgdXNlU3RhdGVUb2dnbGUgfSBmcm9tIFwiLi4vLi4vLi4vaG9va3MvdXNlU3RhdGVUb2dnbGVcIjtcbmltcG9ydCBBY2Nlc3NpYmxlQnV0dG9uIGZyb20gXCIuL0FjY2Vzc2libGVCdXR0b25cIjtcbmltcG9ydCB7IExheW91dCB9IGZyb20gXCIuLi8uLi8uLi9zZXR0aW5ncy9lbnVtcy9MYXlvdXRcIjtcblxuaW50ZXJmYWNlIElQcm9wcyB7XG4gICAgLy8gQW4gYXJyYXkgb2YgbWVtYmVyIGV2ZW50cyB0byBzdW1tYXJpc2VcbiAgICBcImV2ZW50c1wiOiBNYXRyaXhFdmVudFtdO1xuICAgIC8vIFRoZSBtaW5pbXVtIG51bWJlciBvZiBldmVudHMgbmVlZGVkIHRvIHRyaWdnZXIgc3VtbWFyaXNhdGlvblxuICAgIFwidGhyZXNob2xkXCI/OiBudW1iZXI7XG4gICAgLy8gV2hldGhlciBvciBub3QgdG8gYmVnaW4gd2l0aCBzdGF0ZS5leHBhbmRlZD10cnVlXG4gICAgXCJzdGFydEV4cGFuZGVkXCI/OiBib29sZWFuO1xuICAgIC8vIFRoZSBsaXN0IG9mIHJvb20gbWVtYmVycyBmb3Igd2hpY2ggdG8gc2hvdyBhdmF0YXJzIG5leHQgdG8gdGhlIHN1bW1hcnlcbiAgICBcInN1bW1hcnlNZW1iZXJzXCI/OiBSb29tTWVtYmVyW107XG4gICAgLy8gVGhlIHRleHQgdG8gc2hvdyBhcyB0aGUgc3VtbWFyeSBvZiB0aGlzIGV2ZW50IGxpc3RcbiAgICBcInN1bW1hcnlUZXh0XCI/OiBSZWFjdE5vZGU7XG4gICAgLy8gQW4gYXJyYXkgb2YgRXZlbnRUaWxlcyB0byByZW5kZXIgd2hlbiBleHBhbmRlZFxuICAgIFwiY2hpbGRyZW5cIjogUmVhY3ROb2RlW10gfCBudWxsO1xuICAgIC8vIENhbGxlZCB3aGVuIHRoZSBldmVudCBsaXN0IGV4cGFuc2lvbiBpcyB0b2dnbGVkXG4gICAgb25Ub2dnbGU/KCk6IHZvaWQ7XG4gICAgLy8gVGhlIGxheW91dCBjdXJyZW50bHkgdXNlZFxuICAgIFwibGF5b3V0XCI/OiBMYXlvdXQ7XG4gICAgXCJkYXRhLXRlc3RpZFwiPzogc3RyaW5nO1xufVxuXG5jb25zdCBHZW5lcmljRXZlbnRMaXN0U3VtbWFyeTogUmVhY3QuRkM8SVByb3BzPiA9ICh7XG4gICAgZXZlbnRzLFxuICAgIGNoaWxkcmVuLFxuICAgIHRocmVzaG9sZCA9IDMsXG4gICAgb25Ub2dnbGUsXG4gICAgc3RhcnRFeHBhbmRlZCA9IGZhbHNlLFxuICAgIHN1bW1hcnlNZW1iZXJzID0gW10sXG4gICAgc3VtbWFyeVRleHQsXG4gICAgbGF5b3V0ID0gTGF5b3V0Lkdyb3VwLFxuICAgIFwiZGF0YS10ZXN0aWRcIjogdGVzdElkLFxufSkgPT4ge1xuICAgIGNvbnN0IFtleHBhbmRlZCwgdG9nZ2xlRXhwYW5kZWRdID0gdXNlU3RhdGVUb2dnbGUoc3RhcnRFeHBhbmRlZCk7XG5cbiAgICAvLyBXaGVuZXZlciBleHBhbmRlZCBjaGFuZ2VzIGNhbGwgb25Ub2dnbGVcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAob25Ub2dnbGUpIHtcbiAgICAgICAgICAgIG9uVG9nZ2xlKCk7XG4gICAgICAgIH1cbiAgICB9LCBbZXhwYW5kZWRdKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcblxuICAgIGNvbnN0IGV2ZW50SWRzID0gZXZlbnRzLm1hcCgoZSkgPT4gZS5nZXRJZCgpKS5qb2luKFwiLFwiKTtcblxuICAgIC8vIElmIHdlIGFyZSBvbmx5IGdpdmVuIGZldyBldmVudHMgdGhlbiBqdXN0IHBhc3MgdGhlbSB0aHJvdWdoXG4gICAgaWYgKGV2ZW50cy5sZW5ndGggPCB0aHJlc2hvbGQpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5XCJcbiAgICAgICAgICAgICAgICBkYXRhLXNjcm9sbC10b2tlbnM9e2V2ZW50SWRzfVxuICAgICAgICAgICAgICAgIGRhdGEtZXhwYW5kZWQ9e3RydWV9XG4gICAgICAgICAgICAgICAgZGF0YS1sYXlvdXQ9e2xheW91dH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8b2wgY2xhc3NOYW1lPVwibXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnlfdW5zdHlsZWRMaXN0XCI+e2NoaWxkcmVufTwvb2w+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICApO1xuICAgIH1cblxuICAgIGxldCBib2R5O1xuICAgIGlmIChleHBhbmRlZCkge1xuICAgICAgICBib2R5ID0gKFxuICAgICAgICAgICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnlfc3BhY2VyXCI+Jm5ic3A7PC9kaXY+XG4gICAgICAgICAgICAgICAgPG9sIGNsYXNzTmFtZT1cIm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5X3Vuc3R5bGVkTGlzdFwiPntjaGlsZHJlbn08L29sPlxuICAgICAgICAgICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB1bmlxdWVNZW1iZXJzID0gdW5pcUJ5KFxuICAgICAgICAgICAgc3VtbWFyeU1lbWJlcnMuZmlsdGVyKChtZW1iZXIpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIW1lbWJlcj8uZ2V0TXhjQXZhdGFyVXJsKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiRXZlbnRMaXN0U3VtbWFyeSBnaXZlbiBudWxsIHN1bW1hcnlNZW1iZXIsIHRlcm1pdGVzIG1heSBiZSBhZm9vdCBlYXRpbmcgZXZlbnQgc2VuZGVyc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3VtbWFyeU1lbWJlcnMsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIChtZW1iZXIpID0+IG1lbWJlci5nZXRNeGNBdmF0YXJVcmwoKSxcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgYXZhdGFycyA9IHVuaXF1ZU1lbWJlcnMubWFwKChtKSA9PiA8TWVtYmVyQXZhdGFyIGtleT17bS51c2VySWR9IG1lbWJlcj17bX0gc2l6ZT1cIjE0cHhcIiAvPik7XG4gICAgICAgIGJvZHkgPSAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm14X0V2ZW50VGlsZV9saW5lXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJteF9FdmVudFRpbGVfaW5mb1wiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJteF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeV9hdmF0YXJzXCIgb25DbGljaz17dG9nZ2xlRXhwYW5kZWR9PlxuICAgICAgICAgICAgICAgICAgICAgICAge2F2YXRhcnN9XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibXhfVGV4dHVhbEV2ZW50IG14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5X3N1bW1hcnlcIj57c3VtbWFyeVRleHR9PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPGxpXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJteF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeVwiXG4gICAgICAgICAgICBkYXRhLXNjcm9sbC10b2tlbnM9e2V2ZW50SWRzfVxuICAgICAgICAgICAgZGF0YS1leHBhbmRlZD17ZXhwYW5kZWQgKyBcIlwifVxuICAgICAgICAgICAgZGF0YS1sYXlvdXQ9e2xheW91dH1cbiAgICAgICAgICAgIGRhdGEtdGVzdGlkPXt0ZXN0SWR9XG4gICAgICAgID5cbiAgICAgICAgICAgIDxBY2Nlc3NpYmxlQnV0dG9uXG4gICAgICAgICAgICAgICAga2luZD1cImxpbmtfaW5saW5lXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJteF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeV90b2dnbGVcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RvZ2dsZUV4cGFuZGVkfVxuICAgICAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e2V4cGFuZGVkfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtleHBhbmRlZCA/IF90KFwiYWN0aW9ufGNvbGxhcHNlXCIpIDogX3QoXCJhY3Rpb258ZXhwYW5kXCIpfVxuICAgICAgICAgICAgPC9BY2Nlc3NpYmxlQnV0dG9uPlxuICAgICAgICAgICAge2JvZHl9XG4gICAgICAgIDwvbGk+XG4gICAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEdlbmVyaWNFdmVudExpc3RTdW1tYXJ5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBUUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBRUEsSUFBQUUsT0FBQSxHQUFBRixPQUFBO0FBRUEsSUFBQUcsYUFBQSxHQUFBQyxzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQUssZ0JBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLGVBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLGlCQUFBLEdBQUFILHNCQUFBLENBQUFKLE9BQUE7QUFDQSxJQUFBUSxPQUFBLEdBQUFSLE9BQUE7QUFBd0QsU0FBQVMseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEsQ0FBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQVgsd0JBQUFXLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSx1QkFBQUEsQ0FBQSx5QkFBQUEsQ0FBQSxXQUFBSyxPQUFBLEVBQUFMLENBQUEsUUFBQUcsQ0FBQSxHQUFBSix3QkFBQSxDQUFBRyxDQUFBLE9BQUFDLENBQUEsSUFBQUEsQ0FBQSxDQUFBRyxHQUFBLENBQUFOLENBQUEsVUFBQUcsQ0FBQSxDQUFBSSxHQUFBLENBQUFQLENBQUEsT0FBQVEsQ0FB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