1 | import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
2 | import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
3 | import _extends from "@babel/runtime/helpers/esm/extends";
|
4 | import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
5 | import _createClass from "@babel/runtime/helpers/esm/createClass";
|
6 | import _inherits from "@babel/runtime/helpers/esm/inherits";
|
7 | import _createSuper from "@babel/runtime/helpers/esm/createSuper";
|
8 | import "antd/es/layout/style";
|
9 | import _Layout from "antd/es/layout";
|
10 | import './Header.less';
|
11 | import React, { Component } from 'react';
|
12 | import classNames from 'classnames';
|
13 | import GlobalHeader from './components/GlobalHeader';
|
14 | import TopNavHeader from './components/TopNavHeader';
|
15 | import { clearMenuItem } from './utils/utils';
|
16 | var Header = _Layout.Header;
|
17 |
|
18 | var HeaderView = function (_Component) {
|
19 | _inherits(HeaderView, _Component);
|
20 |
|
21 | var _super = _createSuper(HeaderView);
|
22 |
|
23 | function HeaderView() {
|
24 | var _this;
|
25 |
|
26 | _classCallCheck(this, HeaderView);
|
27 |
|
28 | for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
29 | args[_key] = arguments[_key];
|
30 | }
|
31 |
|
32 | _this = _super.call.apply(_super, [this].concat(args));
|
33 |
|
34 | _this.renderContent = function () {
|
35 | var _this$props = _this.props,
|
36 | isMobile = _this$props.isMobile,
|
37 | onCollapse = _this$props.onCollapse,
|
38 | navTheme = _this$props.navTheme,
|
39 | layout = _this$props.layout,
|
40 | headerRender = _this$props.headerRender,
|
41 | headerContentRender = _this$props.headerContentRender;
|
42 | var isTop = layout === 'top';
|
43 | var clearMenuData = clearMenuItem(_this.props.menuData || []);
|
44 | var defaultDom = React.createElement(GlobalHeader, _extends({
|
45 | onCollapse: onCollapse
|
46 | }, _this.props, {
|
47 | menuData: clearMenuData
|
48 | }), headerContentRender && headerContentRender(_this.props, null));
|
49 |
|
50 | if (isTop && !isMobile) {
|
51 | defaultDom = React.createElement(TopNavHeader, _extends({
|
52 | theme: navTheme,
|
53 | mode: "horizontal",
|
54 | onCollapse: onCollapse
|
55 | }, _this.props, {
|
56 | menuData: clearMenuData
|
57 | }));
|
58 | }
|
59 |
|
60 | if (headerRender && typeof headerRender === 'function') {
|
61 | return headerRender(_this.props, defaultDom);
|
62 | }
|
63 |
|
64 | return defaultDom;
|
65 | };
|
66 |
|
67 | return _this;
|
68 | }
|
69 |
|
70 | _createClass(HeaderView, [{
|
71 | key: "render",
|
72 | value: function render() {
|
73 | var _classNames;
|
74 |
|
75 | var _this$props2 = this.props,
|
76 | fixedHeader = _this$props2.fixedHeader,
|
77 | layout = _this$props2.layout,
|
78 | propsClassName = _this$props2.className,
|
79 | style = _this$props2.style,
|
80 | navTheme = _this$props2.navTheme,
|
81 | collapsed = _this$props2.collapsed,
|
82 | siderWidth = _this$props2.siderWidth,
|
83 | hasSiderMenu = _this$props2.hasSiderMenu,
|
84 | isMobile = _this$props2.isMobile,
|
85 | prefixCls = _this$props2.prefixCls,
|
86 | headerHeight = _this$props2.headerHeight;
|
87 | var needFixedHeader = fixedHeader || layout === 'mix';
|
88 | var isTop = layout === 'top';
|
89 | var needSettingWidth = needFixedHeader && hasSiderMenu && !isTop && !isMobile;
|
90 | var className = classNames(propsClassName, (_classNames = {}, _defineProperty(_classNames, "".concat(prefixCls, "-fixed-header"), needFixedHeader), _defineProperty(_classNames, "".concat(prefixCls, "-fixed-header-action"), !collapsed), _defineProperty(_classNames, "".concat(prefixCls, "-top-menu"), isTop), _defineProperty(_classNames, "".concat(prefixCls, "-header-").concat(navTheme), navTheme && layout !== 'mix'), _classNames));
|
91 |
|
92 |
|
93 | var width = layout !== 'mix' && needSettingWidth ? "calc(100% - ".concat(collapsed ? 48 : siderWidth, "px)") : '100%';
|
94 | var right = needFixedHeader ? 0 : undefined;
|
95 | return React.createElement(React.Fragment, null, needFixedHeader && React.createElement(Header, {
|
96 | style: {
|
97 | height: headerHeight,
|
98 | lineHeight: "".concat(headerHeight, "px"),
|
99 | background: 'transparent'
|
100 | }
|
101 | }), React.createElement(Header, {
|
102 | style: _objectSpread({
|
103 | padding: 0,
|
104 | height: headerHeight,
|
105 | lineHeight: "".concat(headerHeight, "px"),
|
106 | width: width,
|
107 | zIndex: layout === 'mix' ? 100 : 19,
|
108 | right: right
|
109 | }, style),
|
110 | className: className
|
111 | }, this.renderContent()));
|
112 | }
|
113 | }]);
|
114 |
|
115 | return HeaderView;
|
116 | }(Component);
|
117 |
|
118 | export default HeaderView; |
\ | No newline at end of file |