import bindAll from 'lodash.bindall'; import classNames from 'classnames'; import Popover from 'react-popover'; import PropTypes from 'prop-types'; import React from 'react'; import styles from './dropdown.css'; import dropdownIcon from '!../../tw-recolor/build!./dropdown-caret.svg'; import TWRenderRecoloredImage from '../../tw-recolor/render.jsx'; class Dropdown extends React.Component { constructor (props) { super(props); bindAll(this, [ 'handleClosePopover', 'handleToggleOpenState', 'isOpen' ]); this.state = { isOpen: false }; } handleClosePopover () { this.setState({ isOpen: false }); } handleToggleOpenState () { const newState = !this.state.isOpen; this.setState({ isOpen: newState }); if (newState && this.props.onOpen) { this.props.onOpen(); } } isOpen () { return this.state.isOpen; } render () { return (
{this.props.children}
); } } Dropdown.propTypes = { children: PropTypes.node.isRequired, className: PropTypes.string, onOpen: PropTypes.func, onOuterAction: PropTypes.func, popoverContent: PropTypes.node.isRequired }; export default Dropdown;