UNPKG

qt-public-ui

Version:

新设计规范下业务组件库

76 lines (75 loc) 2.82 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import React, { useEffect, useState, useContext } from 'react'; import { Layout } from 'antd'; import classnames from 'classnames'; import { loadScript } from '../utils'; import { Frame } from '..'; import globalContext from '../UmProvider/globalContext'; import './style'; export var scrollDomId = 'umui-layout-scroll'; var scrollToTop = function scrollToTop() { setTimeout(function () { window.scrollTo(0, 0); }, 0); }; var getDefaultHeader = function getDefaultHeader(headerProps) { var _window$UmHeader; if (headerProps.customHeader) { return headerProps.customHeader; } else return (_window$UmHeader = window.UmHeader) === null || _window$UmHeader === void 0 ? void 0 : _window$UmHeader.Header; }; export default (function (props) { var _Frame$useFrame = Frame.useFrame(), inFrame = _Frame$useFrame.inFrame; var children = props.children, nav = props.nav, headerProps = props.headerProps, style = props.style, className = props.className; var _useState = useState(function () { return getDefaultHeader(headerProps); }), Header = _useState[0], setHeader = _useState[1]; var gContext = useContext(globalContext); useEffect(function () { // 处理刷新后不在页面顶部问题 window.addEventListener('load', scrollToTop); if (headerProps.customHeader) return; // 以下加载umHeader if (window.UmHeader) return; loadScript('//workbench.umeng.com/public/workbench/um-header.js', function () { setHeader(function () { var _window$UmHeader2; return (_window$UmHeader2 = window.UmHeader) === null || _window$UmHeader2 === void 0 ? void 0 : _window$UmHeader2.Header; }); // 移除 loading skeleton setTimeout(function () { if (window.umSkeleton) window.umSkeleton.destory(); }, 200); }); return function () { window.removeEventListener('load', scrollToTop); }; }, []); return /*#__PURE__*/React.createElement(Layout, { className: classnames('umui-layout', className), style: style, id: "umui-layout" }, Header ? /*#__PURE__*/React.createElement(Header, _extends({}, headerProps, { menu: nav })) : /*#__PURE__*/React.createElement(Layout.Header, { className: "umui-layout-header" }), /*#__PURE__*/React.createElement("div", { className: classnames('umui-layout-fixed', { 'umui-layout-frame': inFrame }) }, /*#__PURE__*/React.createElement("div", { className: "umui-layout-scroll", id: scrollDomId }, /*#__PURE__*/React.createElement(Layout, { className: classnames('umui-layout-body', { 'umui-operational': gContext.theme === 'operational' }) }, /*#__PURE__*/React.createElement(Frame.Container, null, children))))); });