| import * as React from 'react'; | 
| import { ReactElement, ReactNode } from 'react'; | 
| import { | 
|     Box, | 
|     List, | 
|     MenuItem, | 
|     ListItemIcon, | 
|     Typography, | 
|     Collapse, | 
|     Tooltip, | 
| } from '@mui/material'; | 
| import ExpandMore from '@mui/icons-material/ExpandMore'; | 
| import { useTranslate, useSidebarState } from 'react-admin'; | 
| import KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown'; | 
| import KeyboardArrowRightIcon from '@mui/icons-material/KeyboardArrowRight'; | 
| const SubMenu = (props) => { | 
|     const { handleToggle, isOpen, name, icon, children, dense } = props; | 
|     const translate = useTranslate(); | 
|     const [sidebarIsOpen] = useSidebarState(); | 
|   | 
|     const header = ( | 
|        <MenuItem dense={dense} onClick={handleToggle} sx={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}> | 
|             <Box sx={{ display: 'flex', alignItems: 'center', flex: 1 }}> | 
|                 <ListItemIcon sx={{ minWidth: 40, color: 'text.secondary', display: 'flex', alignItems: 'center' }}> | 
|                     {icon} | 
|                 </ListItemIcon> | 
|                 <Typography variant="inherit" color="textSecondary" sx={{ ml: 1, display: 'flex', alignItems: 'center' }}> | 
|                     {translate(name)} | 
|                 </Typography> | 
|             </Box> | 
|             <Box sx={{ display: 'flex', alignItems: 'center', minWidth: 24 }}> | 
|                 {isOpen ? <KeyboardArrowDownIcon fontSize="small" sx={{color: 'text.secondary'}} /> : <KeyboardArrowRightIcon fontSize="small" sx={{color: 'text.secondary'}} />} | 
|             </Box> | 
|         </MenuItem> | 
|     ); | 
|   | 
|     return ( | 
|         <div> | 
|             {sidebarIsOpen || isOpen ? ( | 
|                 header | 
|             ) : ( | 
|                 <Tooltip title={translate(name)} placement="right"> | 
|                     {header} | 
|                 </Tooltip> | 
|             )} | 
|             <Collapse in={isOpen} timeout="auto" unmountOnExit> | 
|                 <List | 
|                     dense={dense} | 
|                     component="div" | 
|                     disablePadding | 
|                     // sx={{ | 
|                     //     '& .MuiMenuItem-root': { | 
|                     //         transition: | 
|                     //             'padding-left 195ms cubic-bezier(0.4, 0, 0.6, 1) 0ms', | 
|                     //         paddingLeft: theme => | 
|                     //             sidebarIsOpen | 
|                     //                 ? theme.spacing(4) | 
|                     //                 : theme.spacing(2), | 
|                     //     }, | 
|                     //     // 显示二级菜单的icon | 
|                     //     '& .RaMenuItemLink-icon': { | 
|                     //         visibility: 'visible !important', | 
|                     //         minWidth: '24px' | 
|                     //     } | 
|                     // }} | 
|                 > | 
|                     {children} | 
|                 </List> | 
|             </Collapse> | 
|         </div> | 
|     ); | 
| }; | 
|   | 
| export default SubMenu; |