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 => ({ diff --git a/src/containers/sprite-selector-item.jsx b/src/containers/sprite-selector-item.jsx index 7a1100d0b..c448df486 100644 --- a/src/containers/sprite-selector-item.jsx +++ b/src/containers/sprite-selector-item.jsx @@ -55,13 +55,15 @@ class SpriteSelectorItem extends React.Component { window.removeEventListener('mousemove', this.handleMouseMove); window.removeEventListener('touchend', this.handleMouseUp); window.removeEventListener('touchmove', this.handleMouseMove); - this.props.onDrag({ - img: null, - currentOffset: null, - dragging: false, - dragType: null, - index: null - }); + if (this.props.dragging) { + this.props.onDrag({ + img: null, + currentOffset: null, + dragging: false, + dragType: null, + index: null + }); + } setTimeout(() => { this.noClick = false; }); @@ -156,6 +158,7 @@ SpriteSelectorItem.propTypes = { body: PropTypes.string }), dragType: PropTypes.string, + dragging: PropTypes.bool, id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), index: PropTypes.number, name: PropTypes.string,