skyouc
1 天以前 c0a87b9244e1521c76b8a0dc70b922f6fc3e30a1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
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;