1 | "use strict";
|
2 |
|
3 | var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
4 |
|
5 | var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
6 |
|
7 | Object.defineProperty(exports, "__esModule", {
|
8 | value: true
|
9 | });
|
10 | exports.default = void 0;
|
11 |
|
12 | var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
13 |
|
14 | var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
15 |
|
16 | var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
17 |
|
18 | require("antd/es/config-provider/style");
|
19 |
|
20 | var _configProvider = _interopRequireDefault(require("antd/es/config-provider"));
|
21 |
|
22 | require("./index.less");
|
23 |
|
24 | var _react = _interopRequireWildcard(require("react"));
|
25 |
|
26 | var _classnames = _interopRequireDefault(require("classnames"));
|
27 |
|
28 | var _SiderMenu = require("../SiderMenu/SiderMenu");
|
29 |
|
30 | var _TopNavHeader = _interopRequireDefault(require("../TopNavHeader"));
|
31 |
|
32 | var _utils = require("../../utils/utils");
|
33 |
|
34 | var 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 |
|
46 | var 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 _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 = _react.default.createElement("span", {
|
92 | className: logoClassNames,
|
93 | key: "logo"
|
94 | }, _react.default.createElement("a", null, (0, _SiderMenu.defaultRenderLogo)(logo)));
|
95 |
|
96 | return _react.default.createElement("div", {
|
97 | className: className,
|
98 | style: (0, _objectSpread2.default)({}, style)
|
99 | }, isMobile && renderLogo(menuHeaderRender, logoDom), isMobile && collapsedButtonRender && _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 && _react.default.createElement(_react.default.Fragment, null, _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'))), _react.default.createElement("div", {
|
112 | style: {
|
113 | flex: 1
|
114 | }
|
115 | }, children), rightContentRender && rightContentRender(props));
|
116 | };
|
117 |
|
118 | var _default = GlobalHeader;
|
119 | exports.default = _default; |
\ | No newline at end of file |