@ant-design/pro-layout
Version:
145 lines (110 loc) • 5.55 kB
JavaScript
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
require("antd/es/layout/style");
var _layout = _interopRequireDefault(require("antd/es/layout"));
require("./Header.less");
var _react = _interopRequireWildcard(require("react"));
var _classnames = _interopRequireDefault(require("classnames"));
var _GlobalHeader = _interopRequireDefault(require("./components/GlobalHeader"));
var _TopNavHeader = _interopRequireDefault(require("./components/TopNavHeader"));
var _utils = require("./utils/utils");
var Header = _layout.default.Header;
var HeaderView = /*#__PURE__*/function (_Component) {
(0, _inherits2.default)(HeaderView, _Component);
var _super = (0, _createSuper2.default)(HeaderView);
function HeaderView() {
var _this;
(0, _classCallCheck2.default)(this, HeaderView);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
_this = _super.call.apply(_super, [this].concat(args));
_this.renderContent = function () {
var _this$props = _this.props,
isMobile = _this$props.isMobile,
onCollapse = _this$props.onCollapse,
navTheme = _this$props.navTheme,
layout = _this$props.layout,
headerRender = _this$props.headerRender,
headerContentRender = _this$props.headerContentRender;
var isTop = layout === 'top';
var clearMenuData = (0, _utils.clearMenuItem)(_this.props.menuData || []);
var defaultDom = /*#__PURE__*/_react.default.createElement(_GlobalHeader.default, (0, _extends2.default)({
onCollapse: onCollapse
}, _this.props, {
menuData: clearMenuData
}), headerContentRender && headerContentRender(_this.props, null));
if (isTop && !isMobile) {
defaultDom = /*#__PURE__*/_react.default.createElement(_TopNavHeader.default, (0, _extends2.default)({
theme: navTheme,
mode: "horizontal",
onCollapse: onCollapse
}, _this.props, {
menuData: clearMenuData
}));
}
if (headerRender && typeof headerRender === 'function') {
return headerRender(_this.props, defaultDom);
}
return defaultDom;
};
return _this;
}
(0, _createClass2.default)(HeaderView, [{
key: "render",
value: function render() {
var _classNames;
var _this$props2 = this.props,
fixedHeader = _this$props2.fixedHeader,
layout = _this$props2.layout,
propsClassName = _this$props2.className,
style = _this$props2.style,
navTheme = _this$props2.navTheme,
collapsed = _this$props2.collapsed,
siderWidth = _this$props2.siderWidth,
hasSiderMenu = _this$props2.hasSiderMenu,
isMobile = _this$props2.isMobile,
prefixCls = _this$props2.prefixCls,
headerHeight = _this$props2.headerHeight;
var needFixedHeader = fixedHeader || layout === 'mix';
var isTop = layout === 'top';
var needSettingWidth = needFixedHeader && hasSiderMenu && !isTop && !isMobile;
var className = (0, _classnames.default)(propsClassName, (_classNames = {}, (0, _defineProperty2.default)(_classNames, "".concat(prefixCls, "-fixed-header"), needFixedHeader), (0, _defineProperty2.default)(_classNames, "".concat(prefixCls, "-fixed-header-action"), !collapsed), (0, _defineProperty2.default)(_classNames, "".concat(prefixCls, "-top-menu"), isTop), (0, _defineProperty2.default)(_classNames, "".concat(prefixCls, "-header-").concat(navTheme), navTheme && layout !== 'mix'), _classNames));
/** 计算侧边栏的宽度,不然导致左边的样式会出问题 */
var width = layout !== 'mix' && needSettingWidth ? "calc(100% - ".concat(collapsed ? 48 : siderWidth, "px)") : '100%';
var right = needFixedHeader ? 0 : undefined;
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, needFixedHeader && /*#__PURE__*/_react.default.createElement(Header, {
style: {
height: headerHeight,
lineHeight: "".concat(headerHeight, "px"),
background: 'transparent'
}
}), /*#__PURE__*/_react.default.createElement(Header, {
style: (0, _objectSpread2.default)({
padding: 0,
height: headerHeight,
lineHeight: "".concat(headerHeight, "px"),
width: width,
zIndex: layout === 'mix' ? 100 : 19,
right: right
}, style),
className: className
}, this.renderContent()));
}
}]);
return HeaderView;
}(_react.Component);
var _default = HeaderView;
exports.default = _default;