import React, { useState, useMemo } from 'react'; import { Layout as ALayout, Menu } from 'antd'; import Icon from './../Icon/Icon'; import { handAppMenus } from './utils'; import Context from './../Context'; import useConfig from './../../use/useConfig'; import style from './layout.module.scss'; const { Sider, Content } = ALayout; const { SubMenu, Item } = Menu; interface LayoutProps { appCode: string; appName: string; } const Layout: React.FC = ({ children, appCode, appName }) => { const config = useConfig(); const menus: any[] = handAppMenus(appCode); const [openKeys, setOpenKeys] = useState([]); const [collapsed, setCollapsed] = useState(sessionStorage.collapsed == 1); const onOpenChange = (keys: React.Key[]) => { setOpenKeys(keys.map(item => item.toString())) } function changeCollapsed() { setCollapsed(true); sessionStorage.collapsed = 1; } function onMenuClick(e: { key: string }) { config.history?.push(e.key) } const contextValue = useMemo(() => { return { collapsed, changeCollapsed: () => { setCollapsed(false); sessionStorage.collapsed = 0; } } }, [collapsed]); return ( {collapsed ? (
) : (

{appName}

)} {menus.map((group, index) => ( }> {group.children.map((menu: any) => ( {menu.name} ))} ))}
{children}
) } export default Layout;