UNPKG

@hbsis.uikit/react

Version:
81 lines (72 loc) 1.91 kB
import React, { Component } from 'react' import PropTypes from 'prop-types' import Select from 'react-select' import { Arrow as ArrowIcon } from 'icons' import InputContainer from 'utils/input-container' import SelectStyled from './select-box.styled' const arrowRenderer = () => ( <div> <ArrowIcon /> </div> ) class SelectBox extends Component { renderOption = (option) => { const { labelKey } = this.props return ( <div className='option-item'> {option[labelKey]} </div> ) } render () { const { placeholder, onChange, value, labelKey, valueKey, options, simpleValue, ...rest } = this.props return ( <InputContainer {...rest} > <SelectStyled> <Select placeholder={placeholder} onChange={onChange} value={value} clearable={false} autosize={false} autoload searchable={false} backspaceRemoves={false} arrowRenderer={arrowRenderer} optionRenderer={this.renderOption} valueKey={valueKey} labelKey={labelKey} options={options} simpleValue={simpleValue} {...rest} /> </SelectStyled> </InputContainer> ) } } SelectBox.propTypes = { width: PropTypes.string, placeholder: PropTypes.string, label: PropTypes.string, type: PropTypes.oneOf(['primary', 'error', 'alert', 'success']), message: PropTypes.string, name: PropTypes.string, onChange: PropTypes.func, value: PropTypes.object, labelKey: PropTypes.string, valueKey: PropTypes.string, options: PropTypes.array, simpleValue: PropTypes.bool } export { AutoComplete } from './auto-complete' export { SelectBox }