import Popover from '@material-ui/core/Popover'; import PropTypes from 'prop-types'; import React from 'react'; import { withStyles } from '@material-ui/core/styles'; const styles = theme => ({ paper: { padding: theme.spacing(1), }, }); class ClickablePopover extends React.Component { constructor(props) { super(props); this.state = { anchorEl: null, }; } handleClick = event => { this.setState({ anchorEl: event.currentTarget }); }; handleKeyPress = event => { if (event.key === 'Enter') { this.setState({ anchorEl: event.currentTarget }); } } handleClose = () => { this.setState({ anchorEl: null }); }; render() { const { classes, baseContent, popoverContent } = this.props; const { anchorEl } = this.state; const open = Boolean(anchorEl); return ( {baseContent} {popoverContent} ); } } ClickablePopover.propTypes = { baseContent: PropTypes.node.isRequired, popoverContent: PropTypes.node.isRequired, }; export default withStyles(styles)(ClickablePopover);