const React = require('react'); const createClass = require('create-react-class'); const _ = require('lodash'); const cx = require('classnames'); require('./combobox.less'); const Dropdown = { combo : createClass({ displayName : 'Dropdown.combo', getDefaultProps : function() { return { trigger : 'hover' }; }, getInitialState : function() { return { showDropdown : false }; }, componentDidMount : function() { if(this.props.trigger == 'click') document.addEventListener('click', this.handleClickOutside); }, componentWillUnmount : function() { if(this.props.trigger == 'click') document.removeEventListener('click', this.handleClickOutside); }, handleClickOutside : function(e){ // Close dropdown when clicked outside if(this.refs.dropdown && !this.refs.dropdown.contains(e.target)) { this.handleDropdown(false); } }, handleDropdown : function(show){ this.setState({ showDropdown : show }); }, renderDropdown : function(dropdownChildren){ if(!this.state.showDropdown) return null; return (