* 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';
interface Props {
referencedLanguages: { [language: string]: { key: string; name: string } };
onSelect: (value: string) => void;
+ selected: string[];
}
export default class LanguageFacetFooter extends React.PureComponent<Props> {
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 (
<div className="search-navigator-facet-footer">
<Select
*/
import * as React from 'react';
import { connect } from 'react-redux';
+import { differenceWith } from 'lodash';
import Select from '../../../components/controls/Select';
import { translate } from '../../../helpers/l10n';
import { getLanguages } from '../../../store/rootReducer';
interface Props {
languages: Array<{ key: string; name: string }>;
onSelect: (value: string) => void;
+ selected: string[];
}
class LanguageFacetFooter extends React.PureComponent<Props> {
};
render() {
- const options = this.props.languages.map(language => ({
- label: language.name,
- value: language.key
- }));
+ const options = differenceWith(
+ this.props.languages,
+ this.props.selected,
+ (language, key) => language.key === key
+ ).map(language => ({ label: language.name, value: language.key }));
+
+ if (options.length === 0) {
+ return null;
+ }
return (
<div className="search-navigator-facet-footer">