UNPKG

4.57 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
5var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
7Object.defineProperty(exports, "__esModule", {
8 value: true
9});
10exports.default = void 0;
11
12var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
14var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
15
16var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
18require("antd/es/config-provider/style");
19
20var _configProvider = _interopRequireDefault(require("antd/es/config-provider"));
21
22require("./index.less");
23
24var _react = _interopRequireWildcard(require("react"));
25
26var _classnames = _interopRequireDefault(require("classnames"));
27
28var _SiderMenu = require("../SiderMenu/SiderMenu");
29
30var _TopNavHeader = _interopRequireDefault(require("../TopNavHeader"));
31
32var _utils = require("../../utils/utils");
33
34var renderLogo = function renderLogo(menuHeaderRender, logoDom) {
35 if (menuHeaderRender === false) {
36 return null;
37 }
38
39 if (menuHeaderRender) {
40 return menuHeaderRender(logoDom, null);
41 }
42
43 return logoDom;
44};
45
46var GlobalHeader = function GlobalHeader(props) {
47 var isMobile = props.isMobile,
48 logo = props.logo,
49 collapsed = props.collapsed,
50 onCollapse = props.onCollapse,
51 _props$collapsedButto = props.collapsedButtonRender,
52 collapsedButtonRender = _props$collapsedButto === void 0 ? _SiderMenu.defaultRenderCollapsedButton : _props$collapsedButto,
53 rightContentRender = props.rightContentRender,
54 menuHeaderRender = props.menuHeaderRender,
55 onMenuHeaderClick = props.onMenuHeaderClick,
56 propClassName = props.className,
57 style = props.style,
58 layout = props.layout,
59 children = props.children,
60 _props$headerTheme = props.headerTheme,
61 headerTheme = _props$headerTheme === void 0 ? 'dark' : _props$headerTheme,
62 splitMenus = props.splitMenus,
63 menuData = props.menuData,
64 prefixCls = props.prefixCls;
65
66 var _useContext = (0, _react.useContext)(_configProvider.default.ConfigContext),
67 direction = _useContext.direction;
68
69 var baseClassName = "".concat(prefixCls, "-global-header");
70 var className = (0, _classnames.default)(propClassName, baseClassName, (0, _defineProperty2.default)({}, "".concat(baseClassName, "-layout-").concat(layout), layout && headerTheme === 'dark'));
71
72 if (layout === 'mix' && !isMobile && splitMenus) {
73 var noChildrenMenuData = (menuData || []).map(function (item) {
74 return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, item), {}, {
75 children: undefined,
76 routes: undefined
77 });
78 });
79 var clearMenuData = (0, _utils.clearMenuItem)(noChildrenMenuData);
80 return /*#__PURE__*/_react.default.createElement(_TopNavHeader.default, (0, _extends2.default)({
81 mode: "horizontal"
82 }, props, {
83 splitMenus: false,
84 menuData: clearMenuData,
85 theme: headerTheme
86 }));
87 }
88
89 var logoClassNames = (0, _classnames.default)("".concat(baseClassName, "-logo"), (0, _defineProperty2.default)({}, "".concat(baseClassName, "-logo-rtl"), direction === 'rtl'));
90
91 var logoDom = /*#__PURE__*/_react.default.createElement("span", {
92 className: logoClassNames,
93 key: "logo"
94 }, /*#__PURE__*/_react.default.createElement("a", null, (0, _SiderMenu.defaultRenderLogo)(logo)));
95
96 return /*#__PURE__*/_react.default.createElement("div", {
97 className: className,
98 style: (0, _objectSpread2.default)({}, style)
99 }, isMobile && renderLogo(menuHeaderRender, logoDom), isMobile && collapsedButtonRender && /*#__PURE__*/_react.default.createElement("span", {
100 className: "".concat(baseClassName, "-collapsed-button"),
101 onClick: function onClick() {
102 if (onCollapse) {
103 onCollapse(!collapsed);
104 }
105 }
106 }, collapsedButtonRender(collapsed)), layout === 'mix' && !isMobile && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
107 className: logoClassNames,
108 onClick: onMenuHeaderClick
109 }, (0, _SiderMenu.defaultRenderLogoAndTitle)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {
110 collapsed: false
111 }), 'headerTitleRender'))), /*#__PURE__*/_react.default.createElement("div", {
112 style: {
113 flex: 1
114 }
115 }, children), rightContentRender && rightContentRender(props));
116};
117
118var _default = GlobalHeader;
119exports.default = _default;
\No newline at end of file