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 }
|