import React from 'react'; import { browserHistory } from 'react-router'; import styles from './DropdownMenu.scss'; class MenuItem extends React.Component { onClick = () => { if (this.props.to) { browserHistory.push(this.props.to); } else { this.props.onClick(); } }; render() { return (
{this.props.children}
); } } MenuItem.propTypes = { onClick: React.PropTypes.func, to: React.PropTypes.string, children: React.PropTypes.node.isRequired, }; // class DropdownMenu extends React.Component { static propTypes = { label: React.PropTypes.node.isRequired, children: React.PropTypes.node.isRequired, }; state = { menuVisible: false, }; onMouseEnter = () => { this.setState({ menuVisible: true }); }; onMouseLeave = () => { this.setState({ menuVisible: false }); }; onClick = () => { this.setState({ menuVisible: !this.state.menuVisible }); }; render() { return (
{this.props.label}
{this.state.menuVisible ?
{this.props.children}
: null}
); } } export default DropdownMenu; export { MenuItem };