| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- import React from 'react';
- import { Drawer } from 'antd';
- import SiderMenu from './SliderMenu';
- /**
- * Recursively flatten the data
- * [{path:string},{path:string}] => {path,path2}
- * @param menus
- */
- const getFlatMenuKeys = menuData => {
- let keys = [];
- menuData.forEach(item => {
- if (item.children) {
- keys = keys.concat(getFlatMenuKeys(item.children));
- }
- keys.push(item.path);
- });
- return keys;
- };
- const SiderMenuWrapper = props => {
- const { isMobile, menuData, collapsed } = props;
- return isMobile ? (
- <Drawer
- visible={!collapsed}
- placement="left"
- onClose={() => {
- props.onCollapse(true);
- }}
- style={{
- padding: 0,
- height: '100vh',
- }}
- >
- <SiderMenu
- {...props}
- flatMenuKeys={getFlatMenuKeys(menuData)}
- collapsed={isMobile ? false : collapsed}
- />
- </Drawer>
- ) : (
- <SiderMenu {...props} flatMenuKeys={getFlatMenuKeys(menuData)} />
- );
- };
- export default SiderMenuWrapper;
|