UNPKG

@guardian/threads

Version:
21 lines 1.21 kB
import React, { Children, useState } from 'react'; import { MenuItem } from './MenuItem'; import { MdExpandMore, MdExpandLess } from 'react-icons/md'; import styles from './Menu.module.css'; export var MenuGroup = function (_a) { var defaultOpen = _a.defaultOpen, children = _a.children, expandable = _a.expandable, label = _a.label, control = _a.control; var _b = useState(!!defaultOpen), open = _b[0], setOpen = _b[1]; var wrappedControl = undefined; if (control) { wrappedControl = React.cloneElement(control, { onClick: function (ev) { ev.stopPropagation(); control.props.onClick(); }, }); } return (React.createElement(React.Fragment, null, React.createElement(MenuItem, { label: label, icon: open && expandable ? React.createElement(MdExpandLess, null) : React.createElement(MdExpandMore, null), onClick: function () { return setOpen(!open); }, control: wrappedControl }), open && expandable && (React.createElement("ul", { className: styles.nested }, Children.map(children, function (item) { return (React.createElement("li", null, item)); }))))); }; //# sourceMappingURL=MenuGroup.js.map