From 142818d2966f03f35a306b7ed4b9d990457cd7c9 Mon Sep 17 00:00:00 2001 From: Pascal Mugnier Date: Tue, 1 May 2018 15:19:47 +0200 Subject: [PATCH] Fix SONAR-10579 --- .../coding-rules/components/LanguageFacet.tsx | 1 + .../components/LanguageFacetFooter.tsx | 15 ++++++++++++--- .../main/js/apps/issues/sidebar/LanguageFacet.tsx | 4 +++- .../apps/issues/sidebar/LanguageFacetFooter.tsx | 15 +++++++++++---- 4 files changed, 27 insertions(+), 8 deletions(-) diff --git a/server/sonar-web/src/main/js/apps/coding-rules/components/LanguageFacet.tsx b/server/sonar-web/src/main/js/apps/coding-rules/components/LanguageFacet.tsx index 057d51961f8..c883f930557 100644 --- a/server/sonar-web/src/main/js/apps/coding-rules/components/LanguageFacet.tsx +++ b/server/sonar-web/src/main/js/apps/coding-rules/components/LanguageFacet.tsx @@ -50,6 +50,7 @@ class LanguageFacet extends React.PureComponent { ); }; diff --git a/server/sonar-web/src/main/js/apps/coding-rules/components/LanguageFacetFooter.tsx b/server/sonar-web/src/main/js/apps/coding-rules/components/LanguageFacetFooter.tsx index 34b27b53aeb..97d247d1363 100644 --- a/server/sonar-web/src/main/js/apps/coding-rules/components/LanguageFacetFooter.tsx +++ b/server/sonar-web/src/main/js/apps/coding-rules/components/LanguageFacetFooter.tsx @@ -18,6 +18,7 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ import * as React from 'react'; +import { difference } from 'lodash'; import Select from '../../../components/controls/Select'; import { translate } from '../../../helpers/l10n'; @@ -26,17 +27,25 @@ type Option = { label: string; value: string }; interface Props { referencedLanguages: { [language: string]: { key: string; name: string } }; onSelect: (value: string) => void; + selected: string[]; } export default class LanguageFacetFooter extends React.PureComponent { handleChange = (option: Option) => this.props.onSelect(option.value); render() { - const options = Object.values(this.props.referencedLanguages).map(language => ({ - label: language.name, - value: language.key + const options = difference( + Object.keys(this.props.referencedLanguages), + this.props.selected + ).map(key => ({ + label: this.props.referencedLanguages[key].name, + value: key })); + if (options.length === 0) { + return null; + } + return (