fix(form/select): autoSelectSingleOption fixes (#2594)
Fixes #2590 - emit option, not its value - support `simpleValue` behavior - only trigger when there are no selected options
This commit is contained in:
parent
add10ea556
commit
ed3ecc6f4e
@ -26,6 +26,7 @@ export default class Select extends React.PureComponent {
|
|||||||
multi: ReactSelect.defaultProps.multi,
|
multi: ReactSelect.defaultProps.multi,
|
||||||
options: [],
|
options: [],
|
||||||
required: ReactSelect.defaultProps.required,
|
required: ReactSelect.defaultProps.required,
|
||||||
|
simpleValue: ReactSelect.defaultProps.simpleValue,
|
||||||
valueKey: ReactSelect.defaultProps.valueKey,
|
valueKey: ReactSelect.defaultProps.valueKey,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -134,10 +135,25 @@ export default class Select extends React.PureComponent {
|
|||||||
|
|
||||||
componentDidUpdate () {
|
componentDidUpdate () {
|
||||||
const { props } = this
|
const { props } = this
|
||||||
const { autoSelectSingleOption = props.required, options } = props
|
const {
|
||||||
if (autoSelectSingleOption && options != null && options.length === 1) {
|
autoSelectSingleOption = props.required,
|
||||||
const value = options[0][props.valueKey]
|
multi,
|
||||||
props.onChange(props.multi ? [value] : value)
|
options,
|
||||||
|
simpleValue,
|
||||||
|
value,
|
||||||
|
} = props
|
||||||
|
if (
|
||||||
|
autoSelectSingleOption &&
|
||||||
|
options != null &&
|
||||||
|
options.length === 1 &&
|
||||||
|
(value == null ||
|
||||||
|
(simpleValue && value === '') ||
|
||||||
|
(multi && value.length === 0))
|
||||||
|
) {
|
||||||
|
const option = options[0]
|
||||||
|
props.onChange(
|
||||||
|
simpleValue ? option[props.valueKey] : multi ? [option] : option
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user