UNPKG

@nomios/web-uikit

Version:
53 lines (46 loc) 1.76 kB
import _omit from "lodash/omit"; function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } import React, { Component } from 'react'; import PropTypes from 'prop-types'; import Select from 'react-select'; import { CustomControl, CustomInput, CustomOption, CustomMenu, CustomMenuList, CustomValueContainer, NullComponent, DefaultTrigger } from './custom-components'; class Dropdown extends Component { constructor(...args) { super(...args); _defineProperty(this, "handleChange", data => this.props.onChange && this.props.onChange(_omit(data, 'render'))); } render() { return React.createElement(Select, Object.assign({}, this.props, { onChange: this.handleChange, components: { Control: CustomControl, Input: CustomInput, Option: CustomOption, Menu: CustomMenu, MenuList: CustomMenuList, ValueContainer: CustomValueContainer, IndicatorsContainer: NullComponent, Placeholder: NullComponent, SingleValue: NullComponent } })); } } Dropdown.propTypes = { arrowPlacement: PropTypes.oneOf(['left', 'center', 'right', 'none']), menuListClassName: PropTypes.string, controlClassName: PropTypes.string, triggerClassName: PropTypes.string, optionClassName: PropTypes.string, menuClassName: PropTypes.string, renderTrigger: PropTypes.func, placeholder: PropTypes.string, renderOption: PropTypes.func, onChange: PropTypes.func }; Dropdown.defaultProps = { placeholder: 'Select from the list', renderTrigger: DefaultTrigger, arrowPlacement: 'none' }; export default Dropdown;