diff --git a/frontend/src/Components/Form/EnhancedSelectInput.js b/frontend/src/Components/Form/EnhancedSelectInput.js index f3a2d1791..87d156520 100644 --- a/frontend/src/Components/Form/EnhancedSelectInput.js +++ b/frontend/src/Components/Form/EnhancedSelectInput.js @@ -113,10 +113,12 @@ class EnhancedSelectInput extends Component { this._scheduleUpdate(); } - if (!Array.isArray(this.props.value) && prevProps.value !== this.props.value) { - this.setState({ - selectedIndex: getSelectedIndex(this.props) - }); + if (!Array.isArray(this.props.value)) { + if (prevProps.value !== this.props.value || prevProps.values !== this.props.values) { + this.setState({ + selectedIndex: getSelectedIndex(this.props) + }); + } } } @@ -332,6 +334,11 @@ class EnhancedSelectInput extends Component { const isMultiSelect = Array.isArray(value); const selectedOption = getSelectedOption(selectedIndex, values); + let selectedValue = value; + + if (!values.length) { + selectedValue = isMultiSelect ? [] : ''; + } return (
@@ -372,15 +379,17 @@ class EnhancedSelectInput extends Component { onPress={this.onPress} > { - isFetching && + isFetching ? + /> : + null } { - !isFetching && + isFetching ? + null : @@ -400,7 +409,7 @@ class EnhancedSelectInput extends Component { onPress={this.onPress} > { - isFetching && + isFetching ? + /> : + null } { - !isFetching && + isFetching ? + null : @@ -506,7 +517,7 @@ class EnhancedSelectInput extends Component { { - isMobile && + isMobile ? - + : + null }
); diff --git a/frontend/src/Components/Form/HintedSelectInputSelectedValue.js b/frontend/src/Components/Form/HintedSelectInputSelectedValue.js index 07f6c9e25..a3fecf324 100644 --- a/frontend/src/Components/Form/HintedSelectInputSelectedValue.js +++ b/frontend/src/Components/Form/HintedSelectInputSelectedValue.js @@ -24,7 +24,7 @@ function HintedSelectInputSelectedValue(props) { >
{ - isMultiSelect && + isMultiSelect ? value.map((key, index) => { const v = valuesMap[key]; return ( @@ -32,26 +32,28 @@ function HintedSelectInputSelectedValue(props) { {v ? v.value : key} ); - }) + }) : + null } { - !isMultiSelect && value + isMultiSelect ? null : value }
{ - hint != null && includeHint && + hint != null && includeHint ?
{hint} -
+ : + null } ); } HintedSelectInputSelectedValue.propTypes = { - value: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))]).isRequired, + value: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))]).isRequired, values: PropTypes.arrayOf(PropTypes.object).isRequired, hint: PropTypes.string, isMultiSelect: PropTypes.bool.isRequired, diff --git a/frontend/src/Components/Form/RootFolderSelectInputOption.js b/frontend/src/Components/Form/RootFolderSelectInputOption.js index 17e416403..7fc6314e6 100644 --- a/frontend/src/Components/Form/RootFolderSelectInputOption.js +++ b/frontend/src/Components/Form/RootFolderSelectInputOption.js @@ -68,7 +68,7 @@ RootFolderSelectInputOption.propTypes = { value: PropTypes.string.isRequired, freeSpace: PropTypes.number, movieFolder: PropTypes.string, - isMissing: PropTypes.boolean, + isMissing: PropTypes.bool, isMobile: PropTypes.bool.isRequired, isWindows: PropTypes.bool };