diff --git a/packages/web/src/components/list/MultiDropdownList.d.ts b/packages/web/src/components/list/MultiDropdownList.d.ts index b389841e3..91ac683e8 100644 --- a/packages/web/src/components/list/MultiDropdownList.d.ts +++ b/packages/web/src/components/list/MultiDropdownList.d.ts @@ -44,6 +44,7 @@ export interface MultiDropdownList extends CommonProps { preferencesPath?: string; showClear?: boolean; endpoint?: types.endpointConfig; + showOnlyOneOption?: boolean; } declare const MultiDropdownList: React.ComponentClass; diff --git a/packages/web/src/components/list/MultiDropdownList.js b/packages/web/src/components/list/MultiDropdownList.js index bce5b7fac..a86ca0a23 100644 --- a/packages/web/src/components/list/MultiDropdownList.js +++ b/packages/web/src/components/list/MultiDropdownList.js @@ -373,6 +373,10 @@ class MultiDropdownList extends Component { return isFunction(renderError) ? renderError(error) : renderError; } + if (this.state.options && this.state.options.length <= 1 && !this.props.showOnlyOneOption) { + return null; + } + if (!this.hasCustomRenderer && this.state.options.length === 0) { if (this.props.renderNoResults && !this.props.isLoading) { return this.props.renderNoResults(); @@ -494,6 +498,7 @@ MultiDropdownList.propTypes = { showClear: types.bool, isOpen: types.bool, endpoint: types.endpoint, + showOnlyOneOption: types.bool, }; MultiDropdownList.defaultProps = { @@ -513,6 +518,7 @@ MultiDropdownList.defaultProps = { showLoadMore: false, loadMoreLabel: 'Load More', isOpen: false, + showOnlyOneOption: true, }; // Add componentType for SSR diff --git a/packages/web/src/components/list/MultiList.d.ts b/packages/web/src/components/list/MultiList.d.ts index 8f2008678..0648aba1b 100644 --- a/packages/web/src/components/list/MultiList.d.ts +++ b/packages/web/src/components/list/MultiList.d.ts @@ -42,6 +42,7 @@ export interface MultiList extends CommonProps { index?: string; preferencesPath?: string; endpoint?: types.endpointConfig; + showOnlyOneOption?: boolean; } declare const MultiList: React.ComponentClass; diff --git a/packages/web/src/components/list/MultiList.js b/packages/web/src/components/list/MultiList.js index 9a933ddbb..8828b2fc8 100644 --- a/packages/web/src/components/list/MultiList.js +++ b/packages/web/src/components/list/MultiList.js @@ -481,6 +481,10 @@ class MultiList extends Component { return isFunction(renderError) ? renderError(error) : renderError; } + if (this.state.options && this.state.options.length <= 1 && !this.props.showOnlyOneOption) { + return null; + } + if (!this.hasCustomRenderer && this.state.options && this.state.options.length === 0) { return this.props.renderNoResults ? this.props.renderNoResults() : null; } @@ -661,6 +665,7 @@ MultiList.propTypes = { loadMoreLabel: types.title, index: types.string, endpoint: types.endpoint, + showOnlyOneOption: types.bool, }; MultiList.defaultProps = { @@ -678,6 +683,7 @@ MultiList.defaultProps = { missingLabel: 'N/A', showLoadMore: false, loadMoreLabel: 'Load More', + showOnlyOneOption: true, }; // Add componentType for SSR diff --git a/packages/web/src/components/list/SingleDropdownList.d.ts b/packages/web/src/components/list/SingleDropdownList.d.ts index 9a0ae6dfe..6ce282864 100644 --- a/packages/web/src/components/list/SingleDropdownList.d.ts +++ b/packages/web/src/components/list/SingleDropdownList.d.ts @@ -42,6 +42,7 @@ export interface SingleDropdownList extends CommonProps { preferencesPath?: string; showClear?: boolean; endpoint?: types.endpointConfig; + showOnlyOneOption?: boolean; } declare const SingleDropdownList: React.ComponentClass; diff --git a/packages/web/src/components/list/SingleDropdownList.js b/packages/web/src/components/list/SingleDropdownList.js index 02d100224..a0f153e76 100644 --- a/packages/web/src/components/list/SingleDropdownList.js +++ b/packages/web/src/components/list/SingleDropdownList.js @@ -282,6 +282,10 @@ class SingleDropdownList extends Component { return isFunction(renderError) ? renderError(error) : renderError; } + if (this.state.options && this.state.options.length <= 1 && !this.props.showOnlyOneOption) { + return null; + } + if (!this.hasCustomRenderer && this.state.options.length === 0) { if (this.props.renderNoResults && !this.props.isLoading) { return this.props.renderNoResults(); @@ -402,6 +406,7 @@ SingleDropdownList.propTypes = { showClear: types.bool, isOpen: types.bool, endpoint: types.endpoint, + showOnlyOneOption: types.bool, }; SingleDropdownList.defaultProps = { @@ -420,6 +425,7 @@ SingleDropdownList.defaultProps = { showLoadMore: false, loadMoreLabel: 'Load More', isOpen: false, + showOnlyOneOption: true, }; // Add componentType for SSR diff --git a/packages/web/src/components/list/SingleList.d.ts b/packages/web/src/components/list/SingleList.d.ts index cc443dea3..38db34a29 100644 --- a/packages/web/src/components/list/SingleList.d.ts +++ b/packages/web/src/components/list/SingleList.d.ts @@ -42,6 +42,7 @@ export interface SingleList extends CommonProps { preferencesPath?: string; enableStrictSelection?: boolean; endpoint?: types.endpointConfig; + showOnlyOneOption?: boolean; } declare const SingleList: React.ComponentClass; diff --git a/packages/web/src/components/list/SingleList.js b/packages/web/src/components/list/SingleList.js index 6ad88fd8c..1c2f1c623 100644 --- a/packages/web/src/components/list/SingleList.js +++ b/packages/web/src/components/list/SingleList.js @@ -375,6 +375,10 @@ class SingleList extends Component { return isFunction(renderError) ? renderError(error) : renderError; } + if (this.state.options && this.state.options.length <= 1 && !this.props.showOnlyOneOption) { + return null; + } + if (!this.hasCustomRenderer && this.state.options.length === 0) { if (this.props.renderNoResults && !this.props.isLoading) { return this.props.renderNoResults(); @@ -552,6 +556,7 @@ SingleList.propTypes = { index: types.string, enableStrictSelection: types.bool, endpoint: types.endpoint, + showOnlyOneOption: types.bool, }; SingleList.defaultProps = { @@ -570,6 +575,7 @@ SingleList.defaultProps = { showLoadMore: false, loadMoreLabel: 'Load More', enableStrictSelection: false, + showOnlyOneOption: true, }; // Add componentType for SSR