1- import { useState } from 'react' ;
1+ import { ReactNode } from 'react' ;
22import { styled , alpha } from '@mui/material/styles' ;
33import Button from '@mui/material/Button' ;
44import Menu , { MenuProps } from '@mui/material/Menu' ;
5- import MenuItem from '@mui/material/MenuItem' ;
6- import EditIcon from '@mui/icons-material/Edit' ;
7- import Divider from '@mui/material/Divider' ;
8- import ArchiveIcon from '@mui/icons-material/Archive' ;
9- import FileCopyIcon from '@mui/icons-material/FileCopy' ;
10- import MoreHorizIcon from '@mui/icons-material/MoreHoriz' ;
115import KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown' ;
126
137const StyledMenu = styled ( ( props : MenuProps ) => (
@@ -53,16 +47,21 @@ const StyledMenu = styled((props: MenuProps) => (
5347 } ,
5448} ) ) ;
5549
56- export default function CustomizedMenus ( ) {
57- const [ anchorEl , setAnchorEl ] = useState < null | HTMLElement > ( null ) ;
58- const open = Boolean ( anchorEl ) ;
59- const handleClick = ( event : React . MouseEvent < HTMLElement > ) => {
60- setAnchorEl ( event . currentTarget ) ;
61- } ;
62- const handleClose = ( ) => {
63- setAnchorEl ( null ) ;
64- } ;
65-
50+ export default function DropDownMenu ( {
51+ keyboard,
52+ menuList,
53+ open,
54+ handleClick,
55+ handleClose,
56+ anchorEl
57+ } : {
58+ keyboard : ReactNode ,
59+ menuList : ReactNode ,
60+ open : boolean ,
61+ handleClick : ( event : React . MouseEvent < HTMLElement > ) => void ,
62+ handleClose : ( ) => void ,
63+ anchorEl : HTMLElement | null ;
64+ } ) {
6665 return (
6766 < div >
6867 < Button
@@ -75,7 +74,7 @@ export default function CustomizedMenus() {
7574 onClick = { handleClick }
7675 endIcon = { < KeyboardArrowDownIcon /> }
7776 >
78- Options
77+ { keyboard }
7978 </ Button >
8079 < StyledMenu
8180 id = "demo-customized-menu"
@@ -86,23 +85,7 @@ export default function CustomizedMenus() {
8685 open = { open }
8786 onClose = { handleClose }
8887 >
89- < MenuItem onClick = { handleClose } disableRipple >
90- < EditIcon />
91- Edit
92- </ MenuItem >
93- < MenuItem onClick = { handleClose } disableRipple >
94- < FileCopyIcon />
95- Duplicate
96- </ MenuItem >
97- < Divider sx = { { my : 0.5 } } />
98- < MenuItem onClick = { handleClose } disableRipple >
99- < ArchiveIcon />
100- Archive
101- </ MenuItem >
102- < MenuItem onClick = { handleClose } disableRipple >
103- < MoreHorizIcon />
104- More
105- </ MenuItem >
88+ { menuList }
10689 </ StyledMenu >
10790 </ div >
10891 ) ;
0 commit comments