import { Icon } from 'UI'; import styles from './itemMenu.css'; export default class ItemMenu extends React.PureComponent { state = { displayed: false, }; componentDidMount() { document.addEventListener('click', this.handleClickOutside); } componentWillUnmount() { document.removeEventListener('click', this.handleClickOutside); } onClick = callback => (e) => { e.stopPropagation(); callback(e); } handleClickOutside = (e) => { if (!this.state.displayed) return; if (e.target !== this.menuBtnRef) { this.closeMenu(); } } toggleMenu = (e) => { e.stopPropagation(); this.setState({ displayed: !this.state.displayed }); } closeMenu = () => this.setState({ displayed: false }) render() { const { items } = this.props; const { displayed } = this.state; return (