UNPKG

2.63 kBJavaScriptView Raw
1import "antd/es/drawer/style";
2import _Drawer from "antd/es/drawer";
3import _extends from "@babel/runtime/helpers/esm/extends";
4import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
5import { getFlatMenus } from '@umijs/route-utils';
6import classNames from 'classnames';
7import Omit from 'omit.js';
8import React, { useEffect } from 'react';
9import MenuCounter from './Counter';
10import SiderMenu from './SiderMenu';
11
12var SiderMenuWrapper = function SiderMenuWrapper(props) {
13 var isMobile = props.isMobile,
14 menuData = props.menuData,
15 siderWidth = props.siderWidth,
16 collapsed = props.collapsed,
17 onCollapse = props.onCollapse,
18 style = props.style,
19 className = props.className,
20 hide = props.hide,
21 getContainer = props.getContainer,
22 prefixCls = props.prefixCls,
23 matchMenuKeys = props.matchMenuKeys;
24
25 var _MenuCounter$useConta = MenuCounter.useContainer(),
26 setFlatMenuKeys = _MenuCounter$useConta.setFlatMenuKeys;
27
28 useEffect(function () {
29 if (!menuData || menuData.length < 1) {
30 return;
31 } // 当 menu data 改变的时候重新计算这两个参数
32
33
34 var newFlatMenus = getFlatMenus(menuData);
35 setFlatMenuKeys(Object.keys(newFlatMenus)); // eslint-disable-next-line react-hooks/exhaustive-deps
36 }, [matchMenuKeys.join('-')]);
37 useEffect(function () {
38 if (isMobile === true) {
39 onCollapse === null || onCollapse === void 0 ? void 0 : onCollapse(true);
40 } // eslint-disable-next-line react-hooks/exhaustive-deps
41
42 }, [isMobile]);
43 var omitProps = Omit(props, ['className', 'style']);
44
45 if (hide) {
46 return null;
47 }
48
49 return isMobile ? /*#__PURE__*/React.createElement(_Drawer, {
50 visible: !collapsed,
51 placement: "left",
52 className: classNames("".concat(prefixCls, "-drawer-sider"), className),
53 onClose: function onClose() {
54 return onCollapse === null || onCollapse === void 0 ? void 0 : onCollapse(true);
55 },
56 style: _objectSpread({
57 padding: 0,
58 height: '100vh'
59 }, style),
60 getContainer: getContainer,
61 width: siderWidth,
62 bodyStyle: {
63 height: '100vh',
64 padding: 0,
65 display: 'flex',
66 flexDirection: 'row'
67 }
68 }, /*#__PURE__*/React.createElement(SiderMenu, _extends({}, omitProps, {
69 className: classNames("".concat(prefixCls, "-sider"), className),
70 collapsed: isMobile ? false : collapsed,
71 splitMenus: false
72 }))) : /*#__PURE__*/React.createElement(SiderMenu, _extends({
73 className: classNames("".concat(prefixCls, "-sider"), className)
74 }, omitProps, {
75 style: style
76 }));
77};
78
79export default SiderMenuWrapper;
\No newline at end of file