diff --git a/src/containers/language-selector.jsx b/src/containers/language-selector.jsx index 8eb621bb1b79b441627a49245245ab80549bf109..1672949a3716ea11b88a71b5e53dbf389886af24 100644 --- a/src/containers/language-selector.jsx +++ b/src/containers/language-selector.jsx @@ -17,7 +17,7 @@ class LanguageSelector extends React.Component { } handleChange (e) { const newLocale = e.target.value; - if (this.props.supportedLocales.includes(newLocale)) { + if (this.props.messagesByLocale[newLocale]) { this.props.onChangeLanguage(newLocale); document.documentElement.lang = newLocale; } @@ -25,7 +25,7 @@ class LanguageSelector extends React.Component { render () { const { onChangeLanguage, // eslint-disable-line no-unused-vars - supportedLocales, // eslint-disable-line no-unused-vars + messagesByLocale, // eslint-disable-line no-unused-vars children, ...props } = this.props; @@ -43,13 +43,14 @@ class LanguageSelector extends React.Component { LanguageSelector.propTypes = { children: PropTypes.node, currentLocale: PropTypes.string.isRequired, - onChangeLanguage: PropTypes.func.isRequired, - supportedLocales: PropTypes.arrayOf(PropTypes.string) + // Only checking key presence for messagesByLocale, no need to be more specific than object + messagesByLocale: PropTypes.object, // eslint-disable-line react/forbid-prop-types + onChangeLanguage: PropTypes.func.isRequired }; const mapStateToProps = state => ({ currentLocale: state.locales.locale, - supportedLocales: Object.keys(state.locales.messagesByLocale) + messagesByLocale: state.locales.messagesByLocale }); const mapDispatchToProps = dispatch => ({