import React from 'react'; import { useSelector } from 'react-redux'; // material-ui import { useTheme } from '@mui/material/styles'; import { Collapse, List, ListItemButton, ListItemIcon, ListItemText, Typography } from '@mui/material'; // project imports import NavItem from '../NavItem'; // assets import FiberManualRecordIcon from '@mui/icons-material/FiberManualRecord'; import { IconChevronDown, IconChevronUp } from '@tabler/icons'; import { DefaultRootStateProps } from 'types'; import { NavGroupProps } from '../NavGroup'; // ==============================|| SIDEBAR MENU LIST COLLAPSE ITEMS ||============================== // export interface NavCollapseProps { menu: NavGroupProps['item']; level: number; } const NavCollapse = ({ menu, level }: NavCollapseProps) => { const theme = useTheme(); const customization = useSelector((state: DefaultRootStateProps) => state.customization); const [open, setOpen] = React.useState(false); const [selected, setSelected] = React.useState(null); const handleClick = () => { setOpen(!open); setSelected(!selected ? menu.id : null); }; // menu collapse & item const menus = menu.children?.map((item) => { switch (item.type) { case 'collapse': return ; case 'item': return ; default: return ( Menu Items Error ); } }); const Icon = menu.icon!; const menuIcon = menu.icon ? ( ) : ( 0 ? 'inherit' : 'medium'} /> ); return ( <> 1 ? 'transparent !important' : 'inherit', py: level > 1 ? 1 : 1.25, pl: `${level * 24}px` }} selected={selected === menu.id} onClick={handleClick} > {menuIcon} {menu.title} } secondary={ menu.caption && ( {menu.caption} ) } /> {open ? ( ) : ( )} {menus} ); }; export default NavCollapse;