matrix-react-sdk
Version:
SDK for matrix.org using React
78 lines (75 loc) • 14.4 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.PollHistory = void 0;
var _react = _interopRequireWildcard(require("react"));
var _languageHandler = require("../../../../languageHandler");
var _PollHistoryList = require("./PollHistoryList");
var _PollDetailHeader = require("./PollDetailHeader");
var _PollDetail = require("./PollDetail");
var _usePollHistory = require("./usePollHistory");
var _fetchPastPolls = require("./fetchPastPolls");
var _Heading = _interopRequireDefault(require("../../typography/Heading"));
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 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.
*/
const sortEventsByLatest = (left, right) => right.getTs() - left.getTs();
const filterPolls = filter => poll =>
// exclude polls while they are still loading
// to avoid jitter in list
!poll.isFetchingResponses && filter === "ACTIVE" !== poll.isEnded;
const filterAndSortPolls = (polls, filter) => {
return [...polls.values()].filter(filterPolls(filter)).map(poll => poll.rootEvent).sort(sortEventsByLatest);
};
const PollHistory = ({
room,
matrixClient,
permalinkCreator,
onFinished
}) => {
const {
polls
} = (0, _usePollHistory.usePollsWithRelations)(room.roomId, matrixClient);
const {
isLoading,
loadMorePolls,
oldestEventTimestamp
} = (0, _fetchPastPolls.useFetchPastPolls)(room, matrixClient);
const [filter, setFilter] = (0, _react.useState)("ACTIVE");
const [focusedPollId, setFocusedPollId] = (0, _react.useState)(null);
const pollStartEvents = filterAndSortPolls(polls, filter);
const isLoadingPollResponses = [...polls.values()].some(poll => poll.isFetchingResponses);
const focusedPoll = focusedPollId ? polls.get(focusedPollId) : undefined;
const title = focusedPoll ? /*#__PURE__*/_react.default.createElement(_PollDetailHeader.PollDetailHeader, {
filter: filter,
onNavigateBack: () => setFocusedPollId(null)
}) : (0, _languageHandler._t)("right_panel|polls_button");
return /*#__PURE__*/_react.default.createElement("div", {
className: "mx_PollHistory_content"
}, /*#__PURE__*/_react.default.createElement(_Heading.default, {
className: "mx_PollHistory_header",
size: "2"
}, title), focusedPoll ? /*#__PURE__*/_react.default.createElement(_PollDetail.PollDetail, {
poll: focusedPoll,
permalinkCreator: permalinkCreator,
requestModalClose: onFinished
}) : /*#__PURE__*/_react.default.createElement(_PollHistoryList.PollHistoryList, {
onItemClick: setFocusedPollId,
pollStartEvents: pollStartEvents,
isLoading: isLoading || isLoadingPollResponses,
oldestFetchedEventTimestamp: oldestEventTimestamp,
polls: polls,
filter: filter,
onFilterChange: setFilter,
loadMorePolls: loadMorePolls
}));
};
exports.PollHistory = PollHistory;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfbGFuZ3VhZ2VIYW5kbGVyIiwiX1BvbGxIaXN0b3J5TGlzdCIsIl9Qb2xsRGV0YWlsSGVhZGVyIiwiX1BvbGxEZXRhaWwiLCJfdXNlUG9sbEhpc3RvcnkiLCJfZmV0Y2hQYXN0UG9sbHMiLCJfSGVhZGluZyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJzb3J0RXZlbnRzQnlMYXRlc3QiLCJsZWZ0IiwicmlnaHQiLCJnZXRUcyIsImZpbHRlclBvbGxzIiwiZmlsdGVyIiwicG9sbCIsImlzRmV0Y2hpbmdSZXNwb25zZXMiLCJpc0VuZGVkIiwiZmlsdGVyQW5kU29ydFBvbGxzIiwicG9sbHMiLCJ2YWx1ZXMiLCJtYXAiLCJyb290RXZlbnQiLCJzb3J0IiwiUG9sbEhpc3RvcnkiLCJyb29tIiwibWF0cml4Q2xpZW50IiwicGVybWFsaW5rQ3JlYXRvciIsIm9uRmluaXNoZWQiLCJ1c2VQb2xsc1dpdGhSZWxhdGlvbnMiLCJyb29tSWQiLCJpc0xvYWRpbmciLCJsb2FkTW9yZVBvbGxzIiwib2xkZXN0RXZlbnRUaW1lc3RhbXAiLCJ1c2VGZXRjaFBhc3RQb2xscyIsInNldEZpbHRlciIsInVzZVN0YXRlIiwiZm9jdXNlZFBvbGxJZCIsInNldEZvY3VzZWRQb2xsSWQiLCJwb2xsU3RhcnRFdmVudHMiLCJpc0xvYWRpbmdQb2xsUmVzcG9uc2VzIiwic29tZSIsImZvY3VzZWRQb2xsIiwidW5kZWZpbmVkIiwidGl0bGUiLCJjcmVhdGVFbGVtZW50IiwiUG9sbERldGFpbEhlYWRlciIsIm9uTmF2aWdhdGVCYWNrIiwiX3QiLCJjbGFzc05hbWUiLCJzaXplIiwiUG9sbERldGFpbCIsInJlcXVlc3RNb2RhbENsb3NlIiwiUG9sbEhpc3RvcnlMaXN0Iiwib25JdGVtQ2xpY2siLCJvbGRlc3RGZXRjaGVkRXZlbnRUaW1lc3RhbXAiLCJvbkZpbHRlckNoYW5nZSIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy92aWV3cy9wb2xscy9wb2xsSGlzdG9yeS9Qb2xsSGlzdG9yeS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjMgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5XG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBNYXRyaXhDbGllbnQsIE1hdHJpeEV2ZW50LCBQb2xsLCBSb29tIH0gZnJvbSBcIm1hdHJpeC1qcy1zZGsvc3JjL21hdHJpeFwiO1xuXG5pbXBvcnQgeyBfdCB9IGZyb20gXCIuLi8uLi8uLi8uLi9sYW5ndWFnZUhhbmRsZXJcIjtcbmltcG9ydCB7IFBvbGxIaXN0b3J5TGlzdCB9IGZyb20gXCIuL1BvbGxIaXN0b3J5TGlzdFwiO1xuaW1wb3J0IHsgUG9sbEhpc3RvcnlGaWx0ZXIgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgUG9sbERldGFpbEhlYWRlciB9IGZyb20gXCIuL1BvbGxEZXRhaWxIZWFkZXJcIjtcbmltcG9ydCB7IFBvbGxEZXRhaWwgfSBmcm9tIFwiLi9Qb2xsRGV0YWlsXCI7XG5pbXBvcnQgeyBSb29tUGVybWFsaW5rQ3JlYXRvciB9IGZyb20gXCIuLi8uLi8uLi8uLi91dGlscy9wZXJtYWxpbmtzL1Blcm1hbGlua3NcIjtcbmltcG9ydCB7IHVzZVBvbGxzV2l0aFJlbGF0aW9ucyB9IGZyb20gXCIuL3VzZVBvbGxIaXN0b3J5XCI7XG5pbXBvcnQgeyB1c2VGZXRjaFBhc3RQb2xscyB9IGZyb20gXCIuL2ZldGNoUGFzdFBvbGxzXCI7XG5pbXBvcnQgSGVhZGluZyBmcm9tIFwiLi4vLi4vdHlwb2dyYXBoeS9IZWFkaW5nXCI7XG5cbnR5cGUgUG9sbEhpc3RvcnlQcm9wcyA9IHtcbiAgICByb29tOiBSb29tO1xuICAgIG1hdHJpeENsaWVudDogTWF0cml4Q2xpZW50O1xuICAgIHBlcm1hbGlua0NyZWF0b3I6IFJvb21QZXJtYWxpbmtDcmVhdG9yO1xuICAgIG9uRmluaXNoZWQoKTogdm9pZDtcbn07XG5cbmNvbnN0IHNvcnRFdmVudHNCeUxhdGVzdCA9IChsZWZ0OiBNYXRyaXhFdmVudCwgcmlnaHQ6IE1hdHJpeEV2ZW50KTogbnVtYmVyID0+IHJpZ2h0LmdldFRzKCkgLSBsZWZ0LmdldFRzKCk7XG5jb25zdCBmaWx0ZXJQb2xscyA9XG4gICAgKGZpbHRlcjogUG9sbEhpc3RvcnlGaWx0ZXIpID0+XG4gICAgKHBvbGw6IFBvbGwpOiBib29sZWFuID0+XG4gICAgICAgIC8vIGV4Y2x1ZGUgcG9sbHMgd2hpbGUgdGhleSBhcmUgc3RpbGwgbG9hZGluZ1xuICAgICAgICAvLyB0byBhdm9pZCBqaXR0ZXIgaW4gbGlzdFxuICAgICAgICAhcG9sbC5pc0ZldGNoaW5nUmVzcG9uc2VzICYmIChmaWx0ZXIgPT09IFwiQUNUSVZFXCIpICE9PSBwb2xsLmlzRW5kZWQ7XG5cbmNvbnN0IGZpbHRlckFuZFNvcnRQb2xscyA9IChwb2xsczogTWFwPHN0cmluZywgUG9sbD4sIGZpbHRlcjogUG9sbEhpc3RvcnlGaWx0ZXIpOiBNYXRyaXhFdmVudFtdID0+IHtcbiAgICByZXR1cm4gWy4uLnBvbGxzLnZhbHVlcygpXVxuICAgICAgICAuZmlsdGVyKGZpbHRlclBvbGxzKGZpbHRlcikpXG4gICAgICAgIC5tYXAoKHBvbGwpID0+IHBvbGwucm9vdEV2ZW50KVxuICAgICAgICAuc29ydChzb3J0RXZlbnRzQnlMYXRlc3QpO1xufTtcblxuZXhwb3J0IGNvbnN0IFBvbGxIaXN0b3J5OiBSZWFjdC5GQzxQb2xsSGlzdG9yeVByb3BzPiA9ICh7IHJvb20sIG1hdHJpeENsaWVudCwgcGVybWFsaW5rQ3JlYXRvciwgb25GaW5pc2hlZCB9KSA9PiB7XG4gICAgY29uc3QgeyBwb2xscyB9ID0gdXNlUG9sbHNXaXRoUmVsYXRpb25zKHJvb20ucm9vbUlkLCBtYXRyaXhDbGllbnQpO1xuICAgIGNvbnN0IHsgaXNMb2FkaW5nLCBsb2FkTW9yZVBvbGxzLCBvbGRlc3RFdmVudFRpbWVzdGFtcCB9ID0gdXNlRmV0Y2hQYXN0UG9sbHMocm9vbSwgbWF0cml4Q2xpZW50KTtcbiAgICBjb25zdCBbZmlsdGVyLCBzZXRGaWx0ZXJdID0gdXNlU3RhdGU8UG9sbEhpc3RvcnlGaWx0ZXI+KFwiQUNUSVZFXCIpO1xuICAgIGNvbnN0IFtmb2N1c2VkUG9sbElkLCBzZXRGb2N1c2VkUG9sbElkXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpO1xuXG4gICAgY29uc3QgcG9sbFN0YXJ0RXZlbnRzID0gZmlsdGVyQW5kU29ydFBvbGxzKHBvbGxzLCBmaWx0ZXIpO1xuICAgIGNvbnN0IGlzTG9hZGluZ1BvbGxSZXNwb25zZXMgPSBbLi4ucG9sbHMudmFsdWVzKCldLnNvbWUoKHBvbGwpID0+IHBvbGwuaXNGZXRjaGluZ1Jlc3BvbnNlcyk7XG5cbiAgICBjb25zdCBmb2N1c2VkUG9sbCA9IGZvY3VzZWRQb2xsSWQgPyBwb2xscy5nZXQoZm9jdXNlZFBvbGxJZCkgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgdGl0bGUgPSBmb2N1c2VkUG9sbCA/IChcbiAgICAgICAgPFBvbGxEZXRhaWxIZWFkZXIgZmlsdGVyPXtmaWx0ZXJ9IG9uTmF2aWdhdGVCYWNrPXsoKSA9PiBzZXRGb2N1c2VkUG9sbElkKG51bGwpfSAvPlxuICAgICkgOiAoXG4gICAgICAgIF90KFwicmlnaHRfcGFuZWx8cG9sbHNfYnV0dG9uXCIpXG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXhfUG9sbEhpc3RvcnlfY29udGVudFwiPlxuICAgICAgICAgICAgey8qIEBUT0RPIHRoaXMgcHJvYmFibHkgbmVlZHMgc29tZSBzdHlsZSAqL31cbiAgICAgICAgICAgIDxIZWFkaW5nIGNsYXNzTmFtZT1cIm14X1BvbGxIaXN0b3J5X2hlYWRlclwiIHNpemU9XCIyXCI+XG4gICAgICAgICAgICAgICAge3RpdGxlfVxuICAgICAgICAgICAgPC9IZWFkaW5nPlxuICAgICAgICAgICAge2ZvY3VzZWRQb2xsID8gKFxuICAgICAgICAgICAgICAgIDxQb2xsRGV0YWlsIHBvbGw9e2ZvY3VzZWRQb2xsfSBwZXJtYWxpbmtDcmVhdG9yPXtwZXJtYWxpbmtDcmVhdG9yfSByZXF1ZXN0TW9kYWxDbG9zZT17b25GaW5pc2hlZH0gLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPFBvbGxIaXN0b3J5TGlzdFxuICAgICAgICAgICAgICAgICAgICBvbkl0ZW1DbGljaz17c2V0Rm9jdXNlZFBvbGxJZH1cbiAgICAgICAgICAgICAgICAgICAgcG9sbFN0YXJ0RXZlbnRzPXtwb2xsU3RhcnRFdmVudHN9XG4gICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nIHx8IGlzTG9hZGluZ1BvbGxSZXNwb25zZXN9XG4gICAgICAgICAgICAgICAgICAgIG9sZGVzdEZldGNoZWRFdmVudFRpbWVzdGFtcD17b2xkZXN0RXZlbnRUaW1lc3RhbXB9XG4gICAgICAgICAgICAgICAgICAgIHBvbGxzPXtwb2xsc31cbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyPXtmaWx0ZXJ9XG4gICAgICAgICAgICAgICAgICAgIG9uRmlsdGVyQ2hhbmdlPXtzZXRGaWx0ZXJ9XG4gICAgICAgICAgICAgICAgICAgIGxvYWRNb3JlUG9sbHM9e2xvYWRNb3JlUG9sbHN9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBUUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBR0EsSUFBQUMsZ0JBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGdCQUFBLEdBQUFGLE9BQUE7QUFFQSxJQUFBRyxpQkFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksV0FBQSxHQUFBSixPQUFBO0FBRUEsSUFBQUssZUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sZUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sUUFBQSxHQUFBQyxzQkFBQSxDQUFBUixPQUFBO0FBQStDLFNBQUFTLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLENBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFYLHdCQUFBVyxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsdUJBQUFBLENBQUEseUJBQUFBLENBQUEsV0FBQUssT0FBQSxFQUFBTCxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcsQ0FBQSxPQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQUcsR0FBQSxDQUFBTixDQUFBLFVBQUFHLENBQUEsQ0FBQUksR0FBQSxDQUFBUCxDQUFBLE9BQUFRLENBQUEsS0FBQUMsU0FBQSxVQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLENBQUEs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