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, }