|
|
|
@ -271,26 +271,29 @@ class EnhancedSelectInput extends Component {
|
|
|
|
|
this.setState({ isOpen: !this.state.isOpen });
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
onSelect = (value) => {
|
|
|
|
|
if (Array.isArray(this.props.value)) {
|
|
|
|
|
let newValue = null;
|
|
|
|
|
const index = this.props.value.indexOf(value);
|
|
|
|
|
onSelect = (newValue) => {
|
|
|
|
|
const { name, value, values, onChange } = this.props;
|
|
|
|
|
|
|
|
|
|
if (Array.isArray(value)) {
|
|
|
|
|
let arrayValue = null;
|
|
|
|
|
const index = value.indexOf(newValue);
|
|
|
|
|
|
|
|
|
|
if (index === -1) {
|
|
|
|
|
newValue = this.props.values.map((v) => v.key).filter((v) => (v === value) || this.props.value.includes(v));
|
|
|
|
|
arrayValue = values.map((v) => v.key).filter((v) => (v === newValue) || value.includes(v));
|
|
|
|
|
} else {
|
|
|
|
|
newValue = [...this.props.value];
|
|
|
|
|
newValue.splice(index, 1);
|
|
|
|
|
arrayValue = [...value];
|
|
|
|
|
arrayValue.splice(index, 1);
|
|
|
|
|
}
|
|
|
|
|
this.props.onChange({
|
|
|
|
|
name: this.props.name,
|
|
|
|
|
value: newValue
|
|
|
|
|
onChange({
|
|
|
|
|
name,
|
|
|
|
|
value: arrayValue
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
this.setState({ isOpen: false });
|
|
|
|
|
|
|
|
|
|
this.props.onChange({
|
|
|
|
|
name: this.props.name,
|
|
|
|
|
value
|
|
|
|
|
onChange({
|
|
|
|
|
name,
|
|
|
|
|
value: newValue
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
@ -485,7 +488,7 @@ class EnhancedSelectInput extends Component {
|
|
|
|
|
values.map((v, index) => {
|
|
|
|
|
const hasParent = v.parentKey !== undefined;
|
|
|
|
|
const depth = hasParent ? 1 : 0;
|
|
|
|
|
const parentSelected = hasParent && value.includes(v.parentKey);
|
|
|
|
|
const parentSelected = hasParent && Array.isArray(value) && value.includes(v.parentKey);
|
|
|
|
|
return (
|
|
|
|
|
<OptionComponent
|
|
|
|
|
key={v.key}
|
|
|
|
|