UNPKG

matrix-react-sdk

Version:
67 lines (64 loc) 8.7 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.FilterDropdown = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _react = _interopRequireDefault(require("react")); var _classnames = _interopRequireDefault(require("classnames")); var _check = _interopRequireDefault(require("@vector-im/compound-design-tokens/assets/web/icons/check")); var _Dropdown = _interopRequireDefault(require("./Dropdown")); const _excluded = ["value", "options", "selectedLabel", "className"]; /* 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 getSelectedFilterOptionComponent = (options, selectedLabel) => filterKey => { const option = options.find(({ id }) => id === filterKey); if (!option) { return null; } if (selectedLabel) { return `${selectedLabel}: ${option.label}`; } return option.label; }; /** * Dropdown styled for list filtering */ const FilterDropdown = _ref => { let { value, options, selectedLabel, className } = _ref, restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded); return /*#__PURE__*/_react.default.createElement(_Dropdown.default, (0, _extends2.default)({}, restProps, { value: value, className: (0, _classnames.default)("mx_FilterDropdown", className), getShortOption: getSelectedFilterOptionComponent(options, selectedLabel) }), options.map(({ id, label, description }) => /*#__PURE__*/_react.default.createElement("div", { className: "mx_FilterDropdown_option", "data-testid": `filter-option-${id}`, key: id }, id === value && /*#__PURE__*/_react.default.createElement(_check.default, { className: "mx_FilterDropdown_optionSelectedIcon" }), /*#__PURE__*/_react.default.createElement("span", { className: "mx_FilterDropdown_optionLabel" }, label), !!description && /*#__PURE__*/_react.default.createElement("span", { className: "mx_FilterDropdown_optionDescription" }, description)))); }; exports.FilterDropdown = FilterDropdown; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9jbGFzc25hbWVzIiwiX2NoZWNrIiwiX0Ryb3Bkb3duIiwiX2V4Y2x1ZGVkIiwiZ2V0U2VsZWN0ZWRGaWx0ZXJPcHRpb25Db21wb25lbnQiLCJvcHRpb25zIiwic2VsZWN0ZWRMYWJlbCIsImZpbHRlcktleSIsIm9wdGlvbiIsImZpbmQiLCJpZCIsImxhYmVsIiwiRmlsdGVyRHJvcGRvd24iLCJfcmVmIiwidmFsdWUiLCJjbGFzc05hbWUiLCJyZXN0UHJvcHMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMyIiwiZGVmYXVsdCIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kczIiLCJjbGFzc05hbWVzIiwiZ2V0U2hvcnRPcHRpb24iLCJtYXAiLCJkZXNjcmlwdGlvbiIsImtleSIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy92aWV3cy9lbGVtZW50cy9GaWx0ZXJEcm9wZG93bi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5XG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuaW1wb3J0IFJlYWN0LCB7IFJlYWN0RWxlbWVudCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIjtcbmltcG9ydCBDaGVja21hcmtJY29uIGZyb20gXCJAdmVjdG9yLWltL2NvbXBvdW5kLWRlc2lnbi10b2tlbnMvYXNzZXRzL3dlYi9pY29ucy9jaGVja1wiO1xuXG5pbXBvcnQgRHJvcGRvd24sIHsgRHJvcGRvd25Qcm9wcyB9IGZyb20gXCIuL0Ryb3Bkb3duXCI7XG5pbXBvcnQgeyBOb25FbXB0eUFycmF5IH0gZnJvbSBcIi4uLy4uLy4uL0B0eXBlcy9jb21tb25cIjtcblxuZXhwb3J0IHR5cGUgRmlsdGVyRHJvcGRvd25PcHRpb248RmlsdGVyS2V5c1R5cGUgZXh0ZW5kcyBzdHJpbmc+ID0ge1xuICAgIGlkOiBGaWx0ZXJLZXlzVHlwZTtcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xufTtcbnR5cGUgRmlsdGVyRHJvcGRvd25Qcm9wczxGaWx0ZXJLZXlzVHlwZSBleHRlbmRzIHN0cmluZz4gPSBPbWl0PERyb3Bkb3duUHJvcHMsIFwiY2hpbGRyZW5cIj4gJiB7XG4gICAgdmFsdWU6IEZpbHRlcktleXNUeXBlO1xuICAgIG9wdGlvbnM6IEZpbHRlckRyb3Bkb3duT3B0aW9uPEZpbHRlcktleXNUeXBlPltdO1xuICAgIC8vIEEgbGFiZWwgZGlzcGxheWVkIGJlZm9yZSB0aGUgc2VsZWN0ZWQgdmFsdWVcbiAgICAvLyBpbiB0aGUgZHJvcGRvd24gaW5wdXRcbiAgICBzZWxlY3RlZExhYmVsPzogc3RyaW5nO1xufTtcblxuY29uc3QgZ2V0U2VsZWN0ZWRGaWx0ZXJPcHRpb25Db21wb25lbnQgPVxuICAgIDxGaWx0ZXJLZXlzVHlwZSBleHRlbmRzIHN0cmluZz4ob3B0aW9uczogRmlsdGVyRHJvcGRvd25PcHRpb248RmlsdGVyS2V5c1R5cGU+W10sIHNlbGVjdGVkTGFiZWw/OiBzdHJpbmcpID0+XG4gICAgKGZpbHRlcktleTogRmlsdGVyS2V5c1R5cGUpID0+IHtcbiAgICAgICAgY29uc3Qgb3B0aW9uID0gb3B0aW9ucy5maW5kKCh7IGlkIH0pID0+IGlkID09PSBmaWx0ZXJLZXkpO1xuICAgICAgICBpZiAoIW9wdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNlbGVjdGVkTGFiZWwpIHtcbiAgICAgICAgICAgIHJldHVybiBgJHtzZWxlY3RlZExhYmVsfTogJHtvcHRpb24ubGFiZWx9YDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3B0aW9uLmxhYmVsO1xuICAgIH07XG5cbi8qKlxuICogRHJvcGRvd24gc3R5bGVkIGZvciBsaXN0IGZpbHRlcmluZ1xuICovXG5leHBvcnQgY29uc3QgRmlsdGVyRHJvcGRvd24gPSA8RmlsdGVyS2V5c1R5cGUgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmc+KHtcbiAgICB2YWx1ZSxcbiAgICBvcHRpb25zLFxuICAgIHNlbGVjdGVkTGFiZWwsXG4gICAgY2xhc3NOYW1lLFxuICAgIC4uLnJlc3RQcm9wc1xufTogRmlsdGVyRHJvcGRvd25Qcm9wczxGaWx0ZXJLZXlzVHlwZT4pOiBSZWFjdC5SZWFjdEVsZW1lbnQ8RmlsdGVyRHJvcGRvd25Qcm9wczxGaWx0ZXJLZXlzVHlwZT4+ID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgICA8RHJvcGRvd25cbiAgICAgICAgICAgIHsuLi5yZXN0UHJvcHN9XG4gICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXCJteF9GaWx0ZXJEcm9wZG93blwiLCBjbGFzc05hbWUpfVxuICAgICAgICAgICAgZ2V0U2hvcnRPcHRpb249e2dldFNlbGVjdGVkRmlsdGVyT3B0aW9uQ29tcG9uZW50PEZpbHRlcktleXNUeXBlPihvcHRpb25zLCBzZWxlY3RlZExhYmVsKX1cbiAgICAgICAgPlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMubWFwKCh7IGlkLCBsYWJlbCwgZGVzY3JpcHRpb24gfSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm14X0ZpbHRlckRyb3Bkb3duX29wdGlvblwiIGRhdGEtdGVzdGlkPXtgZmlsdGVyLW9wdGlvbi0ke2lkfWB9IGtleT17aWR9PlxuICAgICAgICAgICAgICAgICAgICAgICAge2lkID09PSB2YWx1ZSAmJiA8Q2hlY2ttYXJrSWNvbiBjbGFzc05hbWU9XCJteF9GaWx0ZXJEcm9wZG93bl9vcHRpb25TZWxlY3RlZEljb25cIiAvPn1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm14X0ZpbHRlckRyb3Bkb3duX29wdGlvbkxhYmVsXCI+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHshIWRlc2NyaXB0aW9uICYmIDxzcGFuIGNsYXNzTmFtZT1cIm14X0ZpbHRlckRyb3Bkb3duX29wdGlvbkRlc2NyaXB0aW9uXCI+e2Rlc2NyaXB0aW9ufTwvc3Bhbj59XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICkpIGFzIE5vbkVtcHR5QXJyYXk8UmVhY3RFbGVtZW50ICYgeyBrZXk6IHN0cmluZyB9PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L0Ryb3Bkb3duPlxuICAgICk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFRQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxXQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBRyxTQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFBcUQsTUFBQUksU0FBQTtBQVpyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXNCQSxNQUFNQyxnQ0FBZ0MsR0FDbENBLENBQWdDQyxPQUErQyxFQUFFQyxhQUFzQixLQUN0R0MsU0FBeUIsSUFBSztFQUMzQixNQUFNQyxNQUFNLEdBQUdILE9BQU8sQ0FBQ0ksSUFBSSxDQUFDLENBQUM7SUFBRUM7RUFBRyxDQUFDLEtBQUtBLEVBQUUsS0FBS0gsU0FBUyxDQUFDO0VBQ3pELElBQUksQ0FBQ0MsTUFBTSxFQUFFO0lBQ1QsT0FBTyxJQUFJO0VBQ2Y7RUFDQSxJQUFJRixhQUFhLEVBQUU7SUFDZixPQUFPLEdBQUdBLGFBQWEsS0FBS0UsTUFBTSxDQUFDRyxLQUFLLEVBQUU7RUFDOUM7RUFDQSxPQUFPSCxNQUFNLENBQUNHLEtBQUs7QUFDdkIsQ0FBQzs7QUFFTDtBQUNBO0FBQ0E7QUFDTyxNQUFNQyxjQUFjLEdBQUdDLElBQUEsSUFNc0U7RUFBQSxJQU43QjtNQUNuRUMsS0FBSztNQUNMVCxPQUFPO01BQ1BDLGFBQWE7TUFDYlM7SUFFaUMsQ0FBQyxHQUFBRixJQUFBO0lBRC9CRyxTQUFTLE9BQUFDLHlCQUFBLENBQUFDLE9BQUEsRUFBQUwsSUFBQSxFQUFBVixTQUFBO0VBRVosb0JBQ0lOLE1BQUEsQ0FBQXFCLE9BQUEsQ0FBQUMsYUFBQSxDQUFDakIsU0FBQSxDQUFBZ0IsT0FBUSxNQUFBRSxTQUFBLENBQUFGLE9BQUEsTUFDREYsU0FBUztJQUNiRixLQUFLLEVBQUVBLEtBQU07SUFDYkMsU0FBUyxFQUFFLElBQUFNLG1CQUFVLEVBQUMsbUJBQW1CLEVBQUVOLFNBQVMsQ0FBRTtJQUN0RE8sY0FBYyxFQUFFbEIsZ0NBQWdDLENBQWlCQyxPQUFPLEVBQUVDLGFBQWE7RUFBRSxJQUdyRkQsT0FBTyxDQUFDa0IsR0FBRyxDQUFDLENBQUM7SUFBRWIsRUFBRTtJQUFFQyxLQUFLO0lBQUVhO0VBQVksQ0FBQyxrQkFDbkMzQixNQUFBLENBQUFxQixPQUFBLENBQUFDLGFBQUE7SUFBS0osU0FBUyxFQUFDLDBCQUEwQjtJQUFDLGVBQWEsaUJBQWlCTCxFQUFFLEVBQUc7SUFBQ2UsR0FBRyxFQUFFZjtFQUFHLEdBQ2pGQSxFQUFFLEtBQUtJLEtBQUssaUJBQUlqQixNQUFBLENBQUFxQixPQUFBLENBQUFDLGFBQUEsQ0FBQ2xCLE1BQUEsQ0FBQWlCLE9BQWE7SUFBQ0gsU0FBUyxFQUFDO0VBQXNDLENBQUUsQ0FBQyxlQUNuRmxCLE1BQUEsQ0FBQXFCLE9BQUEsQ0FBQUMsYUFBQTtJQUFNSixTQUFTLEVBQUM7RUFBK0IsR0FBRUosS0FBWSxDQUFDLEVBQzdELENBQUMsQ0FBQ2EsV0FBVyxpQkFBSTNCLE1BQUEsQ0FBQXFCLE9BQUEsQ0FBQUMsYUFBQTtJQUFNSixTQUFTLEVBQUM7RUFBcUMsR0FBRVMsV0FBa0IsQ0FDMUYsQ0FDUixDQUVDLENBQUM7QUFFbkIsQ0FBQztBQUFDRSxPQUFBLENBQUFkLGNBQUEsR0FBQUEsY0FBQSIsImlnbm9yZUxpc3QiOltdfQ==