materialuiupgraded
Version:
Material-UI's workspace package
43 lines (38 loc) • 1.35 kB
JavaScript
import React from 'react';
import Button from '@material-ui/core/Button';
import Menu from '@material-ui/core/Menu';
import MenuItem from '@material-ui/core/MenuItem';
import toRenderProps from 'recompose/toRenderProps';
import withState from 'recompose/withState';
const WithState = toRenderProps(withState('anchorEl', 'updateAnchorEl', null));
function RenderPropsMenu() {
return (
<WithState>
{({ anchorEl, updateAnchorEl }) => {
const open = Boolean(anchorEl);
const handleClose = () => {
updateAnchorEl(null);
};
return (
<React.Fragment>
<Button
aria-owns={open ? 'render-props-menu' : null}
aria-haspopup="true"
onClick={event => {
updateAnchorEl(event.currentTarget);
}}
>
Open Menu
</Button>
<Menu id="render-props-menu" anchorEl={anchorEl} open={open} onClose={handleClose}>
<MenuItem onClick={handleClose}>Profile</MenuItem>
<MenuItem onClick={handleClose}>My account</MenuItem>
<MenuItem onClick={handleClose}>Logout</MenuItem>
</Menu>
</React.Fragment>
);
}}
</WithState>
);
}
export default RenderPropsMenu;