MenuItemGroup.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import _extends from "@babel/runtime/helpers/esm/extends";
  2. import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
  3. var _excluded = ["className", "title", "eventKey", "children"];
  4. import classNames from 'classnames';
  5. import omit from "rc-util/es/omit";
  6. import * as React from 'react';
  7. import { MenuContext } from "./context/MenuContext";
  8. import { useFullPath, useMeasure } from "./context/PathContext";
  9. import { parseChildren } from "./utils/commonUtil";
  10. var InternalMenuItemGroup = /*#__PURE__*/React.forwardRef(function (props, ref) {
  11. var className = props.className,
  12. title = props.title,
  13. eventKey = props.eventKey,
  14. children = props.children,
  15. restProps = _objectWithoutProperties(props, _excluded);
  16. var _React$useContext = React.useContext(MenuContext),
  17. prefixCls = _React$useContext.prefixCls;
  18. var groupPrefixCls = "".concat(prefixCls, "-item-group");
  19. return /*#__PURE__*/React.createElement("li", _extends({
  20. ref: ref,
  21. role: "presentation"
  22. }, restProps, {
  23. onClick: function onClick(e) {
  24. return e.stopPropagation();
  25. },
  26. className: classNames(groupPrefixCls, className)
  27. }), /*#__PURE__*/React.createElement("div", {
  28. role: "presentation",
  29. className: "".concat(groupPrefixCls, "-title"),
  30. title: typeof title === 'string' ? title : undefined
  31. }, title), /*#__PURE__*/React.createElement("ul", {
  32. role: "group",
  33. className: "".concat(groupPrefixCls, "-list")
  34. }, children));
  35. });
  36. var MenuItemGroup = /*#__PURE__*/React.forwardRef(function (props, ref) {
  37. var eventKey = props.eventKey,
  38. children = props.children;
  39. var connectedKeyPath = useFullPath(eventKey);
  40. var childList = parseChildren(children, connectedKeyPath);
  41. var measure = useMeasure();
  42. if (measure) {
  43. return childList;
  44. }
  45. return /*#__PURE__*/React.createElement(InternalMenuItemGroup, _extends({
  46. ref: ref
  47. }, omit(props, ['warnKey'])), childList);
  48. });
  49. if (process.env.NODE_ENV !== 'production') {
  50. MenuItemGroup.displayName = 'MenuItemGroup';
  51. }
  52. export default MenuItemGroup;