matrix-react-sdk
Version:
SDK for matrix.org using React
53 lines (51 loc) • 5.81 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.FilterTabGroup = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _react = _interopRequireDefault(require("react"));
const _excluded = ["name", "value", "tabs", "onFilterChange"];
/*
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.
*/
/**
* React component which styles a set of content filters as tabs
*
* This is used in displays which show a list of content items, and the user can select between one of several
* filters for those items. For example, in the Poll History dialog, the user can select between "Active" and "Ended"
* polls.
*
* Type `T` is used for the `value` attribute for the buttons in the radio group.
*/
const FilterTabGroup = _ref => {
let {
name,
value,
tabs,
onFilterChange
} = _ref,
rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
return /*#__PURE__*/_react.default.createElement("fieldset", (0, _extends2.default)({}, rest, {
className: "mx_FilterTabGroup"
}), tabs.map(({
label,
id
}) => /*#__PURE__*/_react.default.createElement("label", {
"data-testid": `filter-tab-${name}-${id}`,
key: id
}, /*#__PURE__*/_react.default.createElement("input", {
type: "radio",
name: name,
value: id,
onChange: () => onFilterChange(id),
checked: value === id
}), /*#__PURE__*/_react.default.createElement("span", null, label))));
};
exports.FilterTabGroup = FilterTabGroup;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9leGNsdWRlZCIsIkZpbHRlclRhYkdyb3VwIiwiX3JlZiIsIm5hbWUiLCJ2YWx1ZSIsInRhYnMiLCJvbkZpbHRlckNoYW5nZSIsInJlc3QiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMyIiwiZGVmYXVsdCIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kczIiLCJjbGFzc05hbWUiLCJtYXAiLCJsYWJlbCIsImlkIiwia2V5IiwidHlwZSIsIm9uQ2hhbmdlIiwiY2hlY2tlZCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy92aWV3cy9lbGVtZW50cy9GaWx0ZXJUYWJHcm91cC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjMgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5XG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuaW1wb3J0IFJlYWN0LCB7IEZpZWxkc2V0SFRNTEF0dHJpYnV0ZXMsIFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xuXG5leHBvcnQgdHlwZSBGaWx0ZXJUYWI8VD4gPSB7XG4gICAgbGFiZWw6IHN0cmluZyB8IFJlYWN0Tm9kZTtcbiAgICBpZDogVDtcbn07XG50eXBlIEZpbHRlclRhYkdyb3VwUHJvcHM8VCBleHRlbmRzIHN0cmluZyA9IHN0cmluZz4gPSBGaWVsZHNldEhUTUxBdHRyaWJ1dGVzPGFueT4gJiB7XG4gICAgLy8gZ3JvdXAgbmFtZSB1c2VkIGZvciByYWRpbyBidXR0b25zXG4gICAgbmFtZTogc3RyaW5nO1xuICAgIG9uRmlsdGVyQ2hhbmdlOiAoaWQ6IFQpID0+IHZvaWQ7XG4gICAgLy8gYWN0aXZlIHRhYidzIGlkXG4gICAgdmFsdWU6IFQ7XG4gICAgLy8gdGFicyB0byBkaXNwbGF5XG4gICAgdGFiczogRmlsdGVyVGFiPFQ+W107XG59O1xuXG4vKipcbiAqIFJlYWN0IGNvbXBvbmVudCB3aGljaCBzdHlsZXMgYSBzZXQgb2YgY29udGVudCBmaWx0ZXJzIGFzIHRhYnNcbiAqXG4gKiBUaGlzIGlzIHVzZWQgaW4gZGlzcGxheXMgd2hpY2ggc2hvdyBhIGxpc3Qgb2YgY29udGVudCBpdGVtcywgYW5kIHRoZSB1c2VyIGNhbiBzZWxlY3QgYmV0d2VlbiBvbmUgb2Ygc2V2ZXJhbFxuICogZmlsdGVycyBmb3IgdGhvc2UgaXRlbXMuIEZvciBleGFtcGxlLCBpbiB0aGUgUG9sbCBIaXN0b3J5IGRpYWxvZywgdGhlIHVzZXIgY2FuIHNlbGVjdCBiZXR3ZWVuIFwiQWN0aXZlXCIgYW5kIFwiRW5kZWRcIlxuICogcG9sbHMuXG4gKlxuICogVHlwZSBgVGAgaXMgdXNlZCBmb3IgdGhlIGB2YWx1ZWAgYXR0cmlidXRlIGZvciB0aGUgYnV0dG9ucyBpbiB0aGUgcmFkaW8gZ3JvdXAuXG4gKi9cbmV4cG9ydCBjb25zdCBGaWx0ZXJUYWJHcm91cCA9IDxUIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nPih7XG4gICAgbmFtZSxcbiAgICB2YWx1ZSxcbiAgICB0YWJzLFxuICAgIG9uRmlsdGVyQ2hhbmdlLFxuICAgIC4uLnJlc3Rcbn06IEZpbHRlclRhYkdyb3VwUHJvcHM8VD4pOiBKU1guRWxlbWVudCA9PiAoXG4gICAgPGZpZWxkc2V0IHsuLi5yZXN0fSBjbGFzc05hbWU9XCJteF9GaWx0ZXJUYWJHcm91cFwiPlxuICAgICAgICB7dGFicy5tYXAoKHsgbGFiZWwsIGlkIH0pID0+IChcbiAgICAgICAgICAgIDxsYWJlbCBkYXRhLXRlc3RpZD17YGZpbHRlci10YWItJHtuYW1lfS0ke2lkfWB9IGtleT17aWR9PlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBuYW1lPXtuYW1lfSB2YWx1ZT17aWR9IG9uQ2hhbmdlPXsoKSA9PiBvbkZpbHRlckNoYW5nZShpZCl9IGNoZWNrZWQ9e3ZhbHVlID09PSBpZH0gLz5cbiAgICAgICAgICAgICAgICA8c3Bhbj57bGFiZWx9PC9zcGFuPlxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgKSl9XG4gICAgPC9maWVsZHNldD5cbik7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQVFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUFpRSxNQUFBQyxTQUFBO0FBUmpFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBa0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLE1BQU1DLGNBQWMsR0FBR0MsSUFBQTtFQUFBLElBQTRCO01BQ3REQyxJQUFJO01BQ0pDLEtBQUs7TUFDTEMsSUFBSTtNQUNKQztJQUVvQixDQUFDLEdBQUFKLElBQUE7SUFEbEJLLElBQUksT0FBQUMseUJBQUEsQ0FBQUMsT0FBQSxFQUFBUCxJQUFBLEVBQUFGLFNBQUE7RUFBQSxvQkFFUEgsTUFBQSxDQUFBWSxPQUFBLENBQUFDLGFBQUEsaUJBQUFDLFNBQUEsQ0FBQUYsT0FBQSxNQUFjRixJQUFJO0lBQUVLLFNBQVMsRUFBQztFQUFtQixJQUM1Q1AsSUFBSSxDQUFDUSxHQUFHLENBQUMsQ0FBQztJQUFFQyxLQUFLO0lBQUVDO0VBQUcsQ0FBQyxrQkFDcEJsQixNQUFBLENBQUFZLE9BQUEsQ0FBQUMsYUFBQTtJQUFPLGVBQWEsY0FBY1AsSUFBSSxJQUFJWSxFQUFFLEVBQUc7SUFBQ0MsR0FBRyxFQUFFRDtFQUFHLGdCQUNwRGxCLE1BQUEsQ0FBQVksT0FBQSxDQUFBQyxhQUFBO0lBQU9PLElBQUksRUFBQyxPQUFPO0lBQUNkLElBQUksRUFBRUEsSUFBSztJQUFDQyxLQUFLLEVBQUVXLEVBQUc7SUFBQ0csUUFBUSxFQUFFQSxDQUFBLEtBQU1aLGNBQWMsQ0FBQ1MsRUFBRSxDQUFFO0lBQUNJLE9BQU8sRUFBRWYsS0FBSyxLQUFLVztFQUFHLENBQUUsQ0FBQyxlQUN4R2xCLE1BQUEsQ0FBQVksT0FBQSxDQUFBQyxhQUFBLGVBQU9JLEtBQVksQ0FDaEIsQ0FDVixDQUNLLENBQUM7QUFBQSxDQUNkO0FBQUNNLE9BQUEsQ0FBQW5CLGNBQUEsR0FBQUEsY0FBQSIsImlnbm9yZUxpc3QiOltdfQ==