matrix-react-sdk
Version:
SDK for matrix.org using React
67 lines (64 loc) • 8.7 kB
JavaScript
;
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==