import { ExpandLess, ExpandMore } from "@mui/icons-material"; import { Collapse, List, ListItemButton, ListItemText } from "@mui/material"; import equal from "fast-deep-equal"; import { memo, MouseEventHandler, useCallback, useState } from "react"; import DrawerItem, { Props as DrawerItemProps } from "./DrawerItem"; import DrawerItemIcon, { Props as DrawerItemIconProps } from "./DrawerItemIcon"; export type Props = { title: string; tools: DrawerItemProps[]; } & DrawerItemIconProps; type ComponentProps = { open: boolean; onClick: MouseEventHandler; } & Props; const StyledComponent = ({ icon, title, tools, open, onClick }: ComponentProps) => ( <> {open ? : } {tools.map(tool => ( ))} ); export const Component = memo(StyledComponent, equal); const Container = ({ icon, title, tools }: Props) => { const [open, setOpen] = useState(false); const onClick = useCallback(() => { setOpen(!open); }, [open]); return ; }; export default Container;