UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

48 lines (47 loc) 1.54 kB
"use strict"; "use client"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = require("react"); var _clsx = require("clsx"); var _Accordion = _interopRequireDefault(require("../accordion/Accordion.js")); var _FilterContext = require("./FilterContext.js"); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function FilterItem({ label, filterKey, defaultOpen, className, onOpenChange, children }) { var _ref; const context = (0, _react.useContext)(_FilterContext.FilterContext); if (!context) { throw new Error('Filter.Item must be used inside a Filter.Root.'); } const remembered = context.getAccordionOpen(filterKey); const isOpen = (_ref = remembered !== null && remembered !== void 0 ? remembered : defaultOpen) !== null && _ref !== void 0 ? _ref : false; const handleChange = (0, _react.useCallback)(({ expanded }) => { context.setAccordionOpen(filterKey, expanded); onOpenChange?.(expanded); }, [context, filterKey, onOpenChange]); return (0, _jsxRuntime.jsx)(_Accordion.default, { variant: "tertiary", title: label, expanded: isOpen, onChange: handleChange, className: (0, _clsx.clsx)('dnb-filter__item', className), children: (0, _jsxRuntime.jsx)("div", { className: "dnb-filter__item-content", children: children }) }); } var _default = exports.default = FilterItem; //# sourceMappingURL=FilterItem.js.map