react-garden
Version:
React + TypeScript + ThreeJS app using Material UI on NextJS, Apollo Client, GraphQL + WordPress REST APIs, for ThreeD web development.. a part of the threed.ai code family.
91 lines (81 loc) • 2.31 kB
JavaScript
// ** React Imports
import { useState } from 'react'
// ** MUI Imports
import Button from '@mui/material/Button'
import { styled } from '@mui/material/styles'
import ListItemIcon from '@mui/material/ListItemIcon'
import ListItemText from '@mui/material/ListItemText'
import MuiMenu from '@mui/material/Menu'
import MuiMenuItem from '@mui/material/MenuItem'
// ** Icons Imports
import Send from 'mdi-material-ui/Send'
import EmailOpen from 'mdi-material-ui/EmailOpen'
import InboxArrowDown from 'mdi-material-ui/InboxArrowDown'
// Styled Menu component
const Menu = styled(MuiMenu)(({ theme }) => ({
'& .MuiMenu-paper': {
border: `1px solid ${theme.palette.divider}`
}
}))
// Styled MenuItem component
const MenuItem = styled(MuiMenuItem)(({ theme }) => ({
'&:focus': {
backgroundColor: theme.palette.primary.main,
'& .MuiListItemIcon-root, & .MuiListItemText-primary': {
color: theme.palette.common.white
}
}
}))
const MenuCustomized = () => {
// ** State
const [anchorEl, setAnchorEl] = useState(null)
const handleClick = event => {
setAnchorEl(event.currentTarget)
}
const handleClose = () => {
setAnchorEl(null)
}
return (
<div>
<Button variant='outlined' aria-haspopup='true' onClick={handleClick} aria-controls='customized-menu'>
Open Menu
</Button>
<Menu
keepMounted
elevation={0}
anchorEl={anchorEl}
id='customized-menu'
onClose={handleClose}
open={Boolean(anchorEl)}
anchorOrigin={{
vertical: 'bottom',
horizontal: 'center'
}}
transformOrigin={{
vertical: 'top',
horizontal: 'center'
}}
>
<MenuItem>
<ListItemIcon>
<Send fontSize='small' />
</ListItemIcon>
<ListItemText primary='Sent mail' />
</MenuItem>
<MenuItem>
<ListItemIcon>
<EmailOpen fontSize='small' />
</ListItemIcon>
<ListItemText primary='Drafts' />
</MenuItem>
<MenuItem>
<ListItemIcon>
<InboxArrowDown fontSize='small' />
</ListItemIcon>
<ListItemText primary='Inbox' />
</MenuItem>
</Menu>
</div>
)
}
export default MenuCustomized