eunomia-controller
Version:
28 lines (24 loc) • 801 B
JavaScript
import React from 'react';
import { connect } from 'react-redux';
import { createSelector } from 'reselect';
import { IntlProvider } from 'react-intl';
import { makeSelectLocale } from './selectors';
export class LanguageProvider extends React.PureComponent {
render() {
return (
<IntlProvider locale={this.props.locale} key={this.props.locale} messages={this.props.messages[this.props.locale]}>
{React.Children.only(this.props.children)}
</IntlProvider>
);
}
}
LanguageProvider.propTypes = {
locale: React.PropTypes.string,
messages: React.PropTypes.object,
children: React.PropTypes.element.isRequired
};
const mapStateToProps = createSelector (
makeSelectLocale(),
(locale) => ({ locale })
);
module.exports = connect(mapStateToProps)(LanguageProvider)