import { Icon } from 'UI'; import styles from './itemMenu.css'; import OutsideClickDetectingDiv from 'Shared/OutsideClickDetectingDiv'; import cn from 'classnames'; export default class ItemMenu extends React.PureComponent { state = { displayed: false, }; onClick = callback => (e) => { e.stopPropagation(); callback(e); } toggleMenu = (e) => { this.setState({ displayed: !this.state.displayed }); } closeMenu = () => this.setState({ displayed: false }) render() { const { items } = this.props; const { displayed } = this.state; return (
{ this.menuBtnRef = ref; } } className={cn("w-10 h-10 cursor-pointer rounded-full flex items-center justify-center hover:bg-gray-light", { 'bg-gray-light' : displayed })} onClick={ this.toggleMenu } role="button" >
{ items.filter(({ hidden }) => !hidden).map(({ onClick, text, icon }) => (
{ icon && (
)}
{ text }
))}
); } }