From 9dc453bb24f58d3efff015470066695d9eb03620 Mon Sep 17 00:00:00 2001 From: Paul Kaplan <pkaplan@media.mit.edu> Date: Thu, 1 Nov 2018 10:32:02 -0400 Subject: [PATCH] Do not re-compute object.keys on locale check --- src/containers/language-selector.jsx | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/containers/language-selector.jsx b/src/containers/language-selector.jsx index 8eb621bb1..1672949a3 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 => ({ -- GitLab