import Dropdown, { DropdownTrigger, DropdownContent } from 'react-simple-dropdown'; import PureRenderMixin from 'react-addons-pure-render-mixin'; const DropdownMenu = React.createClass({ propTypes: { icon: React.PropTypes.string.isRequired, items: React.PropTypes.array.isRequired, size: React.PropTypes.number.isRequired, direction: React.PropTypes.string }, getDefaultProps () { return { direction: 'left' }; }, mixins: [PureRenderMixin], setRef (c) { this.dropdown = c; }, handleClick (i, e) { const { action } = this.props.items[i]; if (typeof action === 'function') { e.preventDefault(); action(); this.dropdown.hide(); } }, renderItem (item, i) { if (item === null) { return
  • ; } const { text, action, href = '#' } = item; return (
  • {text}
  • ); }, render () { const { icon, items, size, direction } = this.props; const directionClass = (direction === "left") ? "dropdown__left" : "dropdown__right"; return (
      {items.map(this.renderItem)}
    ); } }); export default DropdownMenu;