UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

42 lines (41 loc) 1.23 kB
"use client"; import { useCallback, useContext } from 'react'; import { clsx } from 'clsx'; import Accordion from "../accordion/Accordion.js"; import { FilterContext } from "./FilterContext.js"; import { jsx as _jsx } from "react/jsx-runtime"; function FilterItem({ label, filterKey, defaultOpen, className, onOpenChange, children }) { var _ref; const context = useContext(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 = useCallback(({ expanded }) => { context.setAccordionOpen(filterKey, expanded); onOpenChange?.(expanded); }, [context, filterKey, onOpenChange]); return _jsx(Accordion, { variant: "tertiary", title: label, expanded: isOpen, onChange: handleChange, className: clsx('dnb-filter__item', className), children: _jsx("div", { className: "dnb-filter__item-content", children: children }) }); } export default FilterItem; //# sourceMappingURL=FilterItem.js.map