matrix-react-sdk
Version:
SDK for matrix.org using React
102 lines (83 loc) • 10.9 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireWildcard(require("react"));
var _MemberAvatar = _interopRequireDefault(require("../avatars/MemberAvatar"));
var _languageHandler = require("../../../languageHandler");
var _useStateToggle = require("../../../hooks/useStateToggle");
var _AccessibleButton = _interopRequireDefault(require("./AccessibleButton"));
/*
Copyright 2019, 2020 The Matrix.org Foundation C.I.C.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
const EventListSummary
/*: React.FC<IProps>*/
= ({
events,
children,
threshold = 3,
onToggle,
startExpanded,
summaryMembers = [],
summaryText
}) => {
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("div", {
className: "mx_EventListSummary",
"data-scroll-tokens": eventIds
}, children);
}
let body;
if (expanded) {
body = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
className: "mx_EventListSummary_line"
}, "\xA0"), children);
} else {
const avatars = summaryMembers.map(m => /*#__PURE__*/_react.default.createElement(_MemberAvatar.default, {
key: m.userId,
member: m,
width: 14,
height: 14
}));
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_EventListSummary_avatars",
onClick: toggleExpanded
}, avatars), /*#__PURE__*/_react.default.createElement("span", {
className: "mx_TextualEvent mx_EventListSummary_summary"
}, summaryText)));
}
return /*#__PURE__*/_react.default.createElement("li", {
className: "mx_EventListSummary",
"data-scroll-tokens": eventIds
}, /*#__PURE__*/_react.default.createElement(_AccessibleButton.default, {
className: "mx_EventListSummary_toggle",
onClick: toggleExpanded,
"aria-expanded": expanded
}, expanded ? (0, _languageHandler._t)('collapse') : (0, _languageHandler._t)('expand')), body);
};
var _default = EventListSummary;
exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3ZpZXdzL2VsZW1lbnRzL0V2ZW50TGlzdFN1bW1hcnkudHN4Il0sIm5hbWVzIjpbIkV2ZW50TGlzdFN1bW1hcnkiLCJldmVudHMiLCJjaGlsZHJlbiIsInRocmVzaG9sZCIsIm9uVG9nZ2xlIiwic3RhcnRFeHBhbmRlZCIsInN1bW1hcnlNZW1iZXJzIiwic3VtbWFyeVRleHQiLCJleHBhbmRlZCIsInRvZ2dsZUV4cGFuZGVkIiwiZXZlbnRJZHMiLCJtYXAiLCJlIiwiZ2V0SWQiLCJqb2luIiwibGVuZ3RoIiwiYm9keSIsImF2YXRhcnMiLCJtIiwidXNlcklkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWdCQTs7QUFJQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUF2QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBNEJBLE1BQU1BO0FBQWtDO0FBQUEsRUFBRyxDQUFDO0FBQ3hDQyxFQUFBQSxNQUR3QztBQUV4Q0MsRUFBQUEsUUFGd0M7QUFHeENDLEVBQUFBLFNBQVMsR0FBRyxDQUg0QjtBQUl4Q0MsRUFBQUEsUUFKd0M7QUFLeENDLEVBQUFBLGFBTHdDO0FBTXhDQyxFQUFBQSxjQUFjLEdBQUcsRUFOdUI7QUFPeENDLEVBQUFBO0FBUHdDLENBQUQsS0FRckM7QUFDRixRQUFNLENBQUNDLFFBQUQsRUFBV0MsY0FBWCxJQUE2QixvQ0FBZUosYUFBZixDQUFuQyxDQURFLENBR0Y7O0FBQ0Esd0JBQVUsTUFBTTtBQUNaLFFBQUlELFFBQUosRUFBYztBQUNWQSxNQUFBQSxRQUFRO0FBQ1g7QUFDSixHQUpELEVBSUcsQ0FBQ0ksUUFBRCxDQUpILEVBSkUsQ0FRYzs7QUFFaEIsUUFBTUUsUUFBUSxHQUFHVCxNQUFNLENBQUNVLEdBQVAsQ0FBWUMsQ0FBRCxJQUFPQSxDQUFDLENBQUNDLEtBQUYsRUFBbEIsRUFBNkJDLElBQTdCLENBQWtDLEdBQWxDLENBQWpCLENBVkUsQ0FZRjs7QUFDQSxNQUFJYixNQUFNLENBQUNjLE1BQVAsR0FBZ0JaLFNBQXBCLEVBQStCO0FBQzNCLHdCQUNJO0FBQUssTUFBQSxTQUFTLEVBQUMscUJBQWY7QUFBcUMsNEJBQW9CTztBQUF6RCxPQUNNUixRQUROLENBREo7QUFLSDs7QUFFRCxNQUFJYyxJQUFKOztBQUNBLE1BQUlSLFFBQUosRUFBYztBQUNWUSxJQUFBQSxJQUFJLGdCQUFHLDZCQUFDLGNBQUQsQ0FBTyxRQUFQLHFCQUNIO0FBQUssTUFBQSxTQUFTLEVBQUM7QUFBZixjQURHLEVBRURkLFFBRkMsQ0FBUDtBQUlILEdBTEQsTUFLTztBQUNILFVBQU1lLE9BQU8sR0FBR1gsY0FBYyxDQUFDSyxHQUFmLENBQW9CTyxDQUFELGlCQUFPLDZCQUFDLHFCQUFEO0FBQWMsTUFBQSxHQUFHLEVBQUVBLENBQUMsQ0FBQ0MsTUFBckI7QUFBNkIsTUFBQSxNQUFNLEVBQUVELENBQXJDO0FBQXdDLE1BQUEsS0FBSyxFQUFFLEVBQS9DO0FBQW1ELE1BQUEsTUFBTSxFQUFFO0FBQTNELE1BQTFCLENBQWhCO0FBQ0FGLElBQUFBLElBQUksZ0JBQ0E7QUFBSyxNQUFBLFNBQVMsRUFBQztBQUFmLG9CQUNJO0FBQUssTUFBQSxTQUFTLEVBQUM7QUFBZixvQkFDSTtBQUFNLE1BQUEsU0FBUyxFQUFDLDZCQUFoQjtBQUE4QyxNQUFBLE9BQU8sRUFBRVA7QUFBdkQsT0FDTVEsT0FETixDQURKLGVBSUk7QUFBTSxNQUFBLFNBQVMsRUFBQztBQUFoQixPQUNNVixXQUROLENBSkosQ0FESixDQURKO0FBWUg7O0FBRUQsc0JBQ0k7QUFBSSxJQUFBLFNBQVMsRUFBQyxxQkFBZDtBQUFvQywwQkFBb0JHO0FBQXhELGtCQUNJLDZCQUFDLHlCQUFEO0FBQWtCLElBQUEsU0FBUyxFQUFDLDRCQUE1QjtBQUF5RCxJQUFBLE9BQU8sRUFBRUQsY0FBbEU7QUFBa0YscUJBQWVEO0FBQWpHLEtBQ01BLFFBQVEsR0FBRyx5QkFBRyxVQUFILENBQUgsR0FBb0IseUJBQUcsUUFBSCxDQURsQyxDQURKLEVBSU1RLElBSk4sQ0FESjtBQVFILENBM0REOztlQTZEZWhCLGdCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDE5LCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cbkxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG55b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG5Zb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcblxuICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG5Vbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG5kaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG5XSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cblNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbmxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuKi9cblxuaW1wb3J0IFJlYWN0LCB7UmVhY3RDaGlsZHJlbiwgdXNlRWZmZWN0fSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge01hdHJpeEV2ZW50fSBmcm9tIFwibWF0cml4LWpzLXNkay9zcmMvbW9kZWxzL2V2ZW50XCI7XG5pbXBvcnQge1Jvb21NZW1iZXJ9IGZyb20gXCJtYXRyaXgtanMtc2RrL3NyYy9tb2RlbHMvcm9vbS1tZW1iZXJcIjtcblxuaW1wb3J0IE1lbWJlckF2YXRhciBmcm9tICcuLi9hdmF0YXJzL01lbWJlckF2YXRhcic7XG5pbXBvcnQgeyBfdCB9IGZyb20gJy4uLy4uLy4uL2xhbmd1YWdlSGFuZGxlcic7XG5pbXBvcnQge3VzZVN0YXRlVG9nZ2xlfSBmcm9tIFwiLi4vLi4vLi4vaG9va3MvdXNlU3RhdGVUb2dnbGVcIjtcbmltcG9ydCBBY2Nlc3NpYmxlQnV0dG9uIGZyb20gXCIuL0FjY2Vzc2libGVCdXR0b25cIjtcblxuaW50ZXJmYWNlIElQcm9wcyB7XG4gICAgLy8gQW4gYXJyYXkgb2YgbWVtYmVyIGV2ZW50cyB0byBzdW1tYXJpc2VcbiAgICBldmVudHM6IE1hdHJpeEV2ZW50W107XG4gICAgLy8gVGhlIG1pbmltdW0gbnVtYmVyIG9mIGV2ZW50cyBuZWVkZWQgdG8gdHJpZ2dlciBzdW1tYXJpc2F0aW9uXG4gICAgdGhyZXNob2xkPzogbnVtYmVyO1xuICAgIC8vIFdoZXRoZXIgb3Igbm90IHRvIGJlZ2luIHdpdGggc3RhdGUuZXhwYW5kZWQ9dHJ1ZVxuICAgIHN0YXJ0RXhwYW5kZWQ/OiBib29sZWFuLFxuICAgIC8vIFRoZSBsaXN0IG9mIHJvb20gbWVtYmVycyBmb3Igd2hpY2ggdG8gc2hvdyBhdmF0YXJzIG5leHQgdG8gdGhlIHN1bW1hcnlcbiAgICBzdW1tYXJ5TWVtYmVycz86IFJvb21NZW1iZXJbXSxcbiAgICAvLyBUaGUgdGV4dCB0byBzaG93IGFzIHRoZSBzdW1tYXJ5IG9mIHRoaXMgZXZlbnQgbGlzdFxuICAgIHN1bW1hcnlUZXh0Pzogc3RyaW5nLFxuICAgIC8vIEFuIGFycmF5IG9mIEV2ZW50VGlsZXMgdG8gcmVuZGVyIHdoZW4gZXhwYW5kZWRcbiAgICBjaGlsZHJlbjogUmVhY3RDaGlsZHJlbixcbiAgICAvLyBDYWxsZWQgd2hlbiB0aGUgZXZlbnQgbGlzdCBleHBhbnNpb24gaXMgdG9nZ2xlZFxuICAgIG9uVG9nZ2xlPygpOiB2b2lkO1xufVxuXG5jb25zdCBFdmVudExpc3RTdW1tYXJ5OiBSZWFjdC5GQzxJUHJvcHM+ID0gKHtcbiAgICBldmVudHMsXG4gICAgY2hpbGRyZW4sXG4gICAgdGhyZXNob2xkID0gMyxcbiAgICBvblRvZ2dsZSxcbiAgICBzdGFydEV4cGFuZGVkLFxuICAgIHN1bW1hcnlNZW1iZXJzID0gW10sXG4gICAgc3VtbWFyeVRleHQsXG59KSA9PiB7XG4gICAgY29uc3QgW2V4cGFuZGVkLCB0b2dnbGVFeHBhbmRlZF0gPSB1c2VTdGF0ZVRvZ2dsZShzdGFydEV4cGFuZGVkKTtcblxuICAgIC8vIFdoZW5ldmVyIGV4cGFuZGVkIGNoYW5nZXMgY2FsbCBvblRvZ2dsZVxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChvblRvZ2dsZSkge1xuICAgICAgICAgICAgb25Ub2dnbGUoKTtcbiAgICAgICAgfVxuICAgIH0sIFtleHBhbmRlZF0pOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuXG4gICAgY29uc3QgZXZlbnRJZHMgPSBldmVudHMubWFwKChlKSA9PiBlLmdldElkKCkpLmpvaW4oJywnKTtcblxuICAgIC8vIElmIHdlIGFyZSBvbmx5IGdpdmVuIGZldyBldmVudHMgdGhlbiBqdXN0IHBhc3MgdGhlbSB0aHJvdWdoXG4gICAgaWYgKGV2ZW50cy5sZW5ndGggPCB0aHJlc2hvbGQpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXhfRXZlbnRMaXN0U3VtbWFyeVwiIGRhdGEtc2Nyb2xsLXRva2Vucz17ZXZlbnRJZHN9PlxuICAgICAgICAgICAgICAgIHsgY2hpbGRyZW4gfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgbGV0IGJvZHk7XG4gICAgaWYgKGV4cGFuZGVkKSB7XG4gICAgICAgIGJvZHkgPSA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm14X0V2ZW50TGlzdFN1bW1hcnlfbGluZVwiPiZuYnNwOzwvZGl2PlxuICAgICAgICAgICAgeyBjaGlsZHJlbiB9XG4gICAgICAgIDwvUmVhY3QuRnJhZ21lbnQ+O1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGF2YXRhcnMgPSBzdW1tYXJ5TWVtYmVycy5tYXAoKG0pID0+IDxNZW1iZXJBdmF0YXIga2V5PXttLnVzZXJJZH0gbWVtYmVyPXttfSB3aWR0aD17MTR9IGhlaWdodD17MTR9IC8+KTtcbiAgICAgICAgYm9keSA9IChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXhfRXZlbnRUaWxlX2xpbmVcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm14X0V2ZW50VGlsZV9pbmZvXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm14X0V2ZW50TGlzdFN1bW1hcnlfYXZhdGFyc1wiIG9uQ2xpY2s9e3RvZ2dsZUV4cGFuZGVkfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHsgYXZhdGFycyB9XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibXhfVGV4dHVhbEV2ZW50IG14X0V2ZW50TGlzdFN1bW1hcnlfc3VtbWFyeVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgeyBzdW1tYXJ5VGV4dCB9XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICAgIDxsaSBjbGFzc05hbWU9XCJteF9FdmVudExpc3RTdW1tYXJ5XCIgZGF0YS1zY3JvbGwtdG9rZW5zPXtldmVudElkc30+XG4gICAgICAgICAgICA8QWNjZXNzaWJsZUJ1dHRvbiBjbGFzc05hbWU9XCJteF9FdmVudExpc3RTdW1tYXJ5X3RvZ2dsZVwiIG9uQ2xpY2s9e3RvZ2dsZUV4cGFuZGVkfSBhcmlhLWV4cGFuZGVkPXtleHBhbmRlZH0+XG4gICAgICAgICAgICAgICAgeyBleHBhbmRlZCA/IF90KCdjb2xsYXBzZScpIDogX3QoJ2V4cGFuZCcpIH1cbiAgICAgICAgICAgIDwvQWNjZXNzaWJsZUJ1dHRvbj5cbiAgICAgICAgICAgIHsgYm9keSB9XG4gICAgICAgIDwvbGk+XG4gICAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEV2ZW50TGlzdFN1bW1hcnk7XG4iXX0=