UNPKG

@momentum-ui/react-collaboration

Version:

Cisco Momentum UI Framework for React Collaboration Applications

49 lines 2.29 kB
/* eslint-disable @typescript-eslint/ban-types */ var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; import React, { useCallback } from 'react'; import { STYLE } from './MenuSection.constants'; import './MenuSection.style.scss'; import MenuItem from '../MenuItem'; import { useMenuSection } from '@react-aria/menu'; import ContentSeparator from '../ContentSeparator'; /** * @deprecated Use the equivalent from momentum.design (NPM: `@momentum-design/components/dist/react`) */ var MenuSection = function (props) { var item = props.item, state = props.state, onAction = props.onAction; var _a = useMenuSection({ heading: item.rendered, 'aria-label': item['aria-label'], }), itemProps = _a.itemProps, headingProps = _a.headingProps, groupProps = _a.groupProps; var renderItems = useCallback(function () { return Array.from(item.childNodes).map(function (node) { var _a; if ((_a = node.props) === null || _a === void 0 ? void 0 : _a._isSeparator) { var props_1 = __assign({}, node.props); delete props_1._isSeparator; return React.createElement(ContentSeparator, __assign({}, props_1)); } return React.createElement(MenuItem, { key: node.key, item: node, state: state, onAction: onAction }); }); // eslint-disable-next-line react-hooks/exhaustive-deps }, [state]); return (React.createElement("div", __assign({}, itemProps), !React.isValidElement(item.rendered) && item.rendered ? (React.createElement("span", __assign({ className: STYLE.header }, headingProps), item.rendered)) : (item.rendered && React.cloneElement(item.rendered, __assign({}, headingProps))), React.createElement("ul", __assign({}, groupProps, { className: STYLE.wrapper }), renderItems()))); }; /** * @internal * The MenuSection component. */ export default MenuSection; //# sourceMappingURL=MenuSection.js.map