1 | "use strict";
|
2 |
|
3 | var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
|
4 | var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
|
5 | Object.defineProperty(exports, "__esModule", {
|
6 | value: true
|
7 | });
|
8 | exports["default"] = void 0;
|
9 | var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
10 | var _classnames = _interopRequireDefault(require("classnames"));
|
11 | var _rcMenu = require("rc-menu");
|
12 | var _omit = _interopRequireDefault(require("rc-util/lib/omit"));
|
13 | var React = _interopRequireWildcard(require("react"));
|
14 | var _reactNode = require("../_util/reactNode");
|
15 | var _MenuContext = _interopRequireDefault(require("./MenuContext"));
|
16 | function SubMenu(props) {
|
17 | var _a;
|
18 | var popupClassName = props.popupClassName,
|
19 | icon = props.icon,
|
20 | title = props.title,
|
21 | customTheme = props.theme;
|
22 | var context = React.useContext(_MenuContext["default"]);
|
23 | var prefixCls = context.prefixCls,
|
24 | inlineCollapsed = context.inlineCollapsed,
|
25 | contextTheme = context.theme,
|
26 | mode = context.mode;
|
27 | var parentPath = (0, _rcMenu.useFullPath)();
|
28 | var titleNode;
|
29 | if (!icon) {
|
30 | titleNode = inlineCollapsed && !parentPath.length && title && typeof title === 'string' ? React.createElement("div", {
|
31 | className: prefixCls + "-inline-collapsed-noicon"
|
32 | }, title.charAt(0)) : React.createElement("span", {
|
33 | className: prefixCls + "-title-content"
|
34 | }, title);
|
35 | } else {
|
36 |
|
37 |
|
38 | var titleIsSpan = (0, _reactNode.isValidElement)(title) && title.type === 'span';
|
39 | titleNode = React.createElement(React.Fragment, null, (0, _reactNode.cloneElement)(icon, {
|
40 | className: (0, _classnames["default"])((0, _reactNode.isValidElement)(icon) ? (_a = icon.props) === null || _a === void 0 ? void 0 : _a.className : '', prefixCls + "-item-icon")
|
41 | }), titleIsSpan ? title : React.createElement("span", {
|
42 | className: prefixCls + "-title-content"
|
43 | }, title));
|
44 | }
|
45 | var contextValue = React.useMemo(function () {
|
46 | return (0, _extends2["default"])((0, _extends2["default"])({}, context), {
|
47 | firstLevel: false
|
48 | });
|
49 | }, [context]);
|
50 | var popupOffset = mode === 'horizontal' ? [0, 8] : [10, 0];
|
51 | return React.createElement(_MenuContext["default"].Provider, {
|
52 | value: contextValue
|
53 | }, React.createElement(_rcMenu.SubMenu, (0, _extends2["default"])({
|
54 | popupOffset: popupOffset
|
55 | }, (0, _omit["default"])(props, ['icon']), {
|
56 | title: titleNode,
|
57 | popupClassName: (0, _classnames["default"])(prefixCls, popupClassName, prefixCls + "-" + (customTheme || contextTheme))
|
58 | })));
|
59 | }
|
60 | var _default = SubMenu;
|
61 | exports["default"] = _default; |
\ | No newline at end of file |