diff --git a/scm-ui/src/containers/Autocomplete.js b/scm-ui/src/containers/Autocomplete.js index a1677be287..15ca784416 100644 --- a/scm-ui/src/containers/Autocomplete.js +++ b/scm-ui/src/containers/Autocomplete.js @@ -21,29 +21,33 @@ type Props = { value?: AutocompleteObject }; -type State = { - value: AutocompleteObject -}; +type State = {}; class Autocomplete extends React.Component { handleInputChange = (newValue: SelectValue) => { - this.setState({ value: newValue.value }); this.props.valueSelected(newValue.value); }; render() { const { label, helpText, value } = this.props; - const stringValue = value ? value.id : ""; + let selectValue = null; + if (value) { + selectValue = { + value, + label: value.displayName + }; + } return (
<>No suggestion available} // TODO: i18n />
diff --git a/scm-ui/src/groups/components/AutocompleteAddEntryToTableField.js b/scm-ui/src/groups/components/AutocompleteAddEntryToTableField.js index 7e794fbad5..36dcebf777 100644 --- a/scm-ui/src/groups/components/AutocompleteAddEntryToTableField.js +++ b/scm-ui/src/groups/components/AutocompleteAddEntryToTableField.js @@ -15,15 +15,18 @@ type Props = { }; type State = { - entryToAdd: AutocompleteObject + entryToAdd?: AutocompleteObject }; class AutocompleteAddEntryToTableField extends React.Component { + constructor(props: Props) { + super(props); + this.state = { entryToAdd: undefined }; + } render() { const { disabled, buttonLabel, fieldLabel, helpText } = this.props; const { entryToAdd } = this.state; - return (
{ appendEntry = () => { const { entryToAdd } = this.state; - this.props.addEntry(entryToAdd.id); - this.setState({ ...this.state, entryToAdd: undefined }); + if (!entryToAdd) { + return; + } + this.setState({ ...this.state, entryToAdd: undefined }, () => + this.props.addEntry(entryToAdd.id) + ); }; - handleAddEntryChange = (selection: any) => { + handleAddEntryChange = (selection: AutocompleteObject) => { this.setState({ ...this.state, entryToAdd: selection