UNPKG

acud

Version:

acg react 组件库

62 lines • 2.38 kB
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty"; /** * @file * @author zhousheng */ import React, { useContext, useMemo } from 'react'; import classnames from 'classnames'; import { isValidElement, cloneElement } from '../_util/reactNode'; import Tooltip from '../tooltip'; import MenuContext from './MenuContext'; import { MenuContext as BaseMenuContext } from './rc-menu/context/MenuContext'; ; var MenuHead = function MenuHead(props) { var children = props.children, icon = props.icon, title = props.title, popupClassName = props.popupClassName, onClick = props.onClick; var _useContext = useContext(MenuContext), prefixCls = _useContext.prefixCls; var _useContext2 = useContext(BaseMenuContext), inlineCollapsed = _useContext2.inlineCollapsed; var classNames = classnames("".concat(prefixCls, "-inline-header"), _defineProperty({}, "".concat(prefixCls, "-inline-header-collapsed"), inlineCollapsed)); var tipTitle = useMemo(function () { if (title) { return title; } if (inlineCollapsed && children) { return children; } return null; }, [title, inlineCollapsed, children]); var renderNode = useMemo(function () { var _a; var copyIcon = cloneElement(icon, { className: classnames(isValidElement(icon) ? (_a = icon.props) === null || _a === void 0 ? void 0 : _a.className : '', "".concat(prefixCls, "-item-icon")) }); if (!inlineCollapsed) { return /*#__PURE__*/React.createElement(React.Fragment, null, copyIcon, /*#__PURE__*/React.createElement("span", { className: "".concat(prefixCls, "-inline-header-item-text") }, children)); } if (icon) { return copyIcon; } if (typeof children === 'string' && children.length) { return /*#__PURE__*/React.createElement("span", null, children.charAt(0)); } return null; }, [inlineCollapsed, children, icon, prefixCls]); return /*#__PURE__*/React.createElement("div", { className: classNames, onClick: onClick }, /*#__PURE__*/React.createElement(Tooltip, { title: tipTitle, placement: "right", overlayClassName: classnames("".concat(prefixCls, "-inline-header-tooltip"), popupClassName) }, /*#__PURE__*/React.createElement("div", { className: "".concat(prefixCls, "-inline-header-item") }, renderNode))); }; export default MenuHead;