summaryrefslogtreecommitdiffstats
path: root/front/odiparpack/app/containers/LanguageProvider/index.js
diff options
context:
space:
mode:
authorDayana31 <[email protected]>2022-04-21 17:27:08 -0500
committerDayana31 <[email protected]>2022-04-21 17:27:08 -0500
commit67c50667678dd0ce4709b29a854f6a47093a1ac5 (patch)
treeb6f9f39092ad54bf6b815984d32b37d7c7ca67ab /front/odiparpack/app/containers/LanguageProvider/index.js
parent91140b24f0d49a9f89a080ee063e9eb023a4b73a (diff)
parente13e630cd6e4fc0b1ff92098a28a770794c7bb9a (diff)
downloadDP1_project-67c50667678dd0ce4709b29a854f6a47093a1ac5.tar.gz
DP1_project-67c50667678dd0ce4709b29a854f6a47093a1ac5.tar.bz2
DP1_project-67c50667678dd0ce4709b29a854f6a47093a1ac5.zip
Merge branch 'gabshr' into dayana
Diffstat (limited to 'front/odiparpack/app/containers/LanguageProvider/index.js')
-rw-r--r--front/odiparpack/app/containers/LanguageProvider/index.js51
1 files changed, 51 insertions, 0 deletions
diff --git a/front/odiparpack/app/containers/LanguageProvider/index.js b/front/odiparpack/app/containers/LanguageProvider/index.js
new file mode 100644
index 0000000..666240d
--- /dev/null
+++ b/front/odiparpack/app/containers/LanguageProvider/index.js
@@ -0,0 +1,51 @@
+/*
+ *
+ * LanguageProvider
+ *
+ * this component connects the redux state language locale to the
+ * IntlProvider component and i18n messages (loaded from `app/translations`)
+ */
+
+import React from 'react';
+import PropTypes from 'prop-types';
+import { connect } from 'react-redux';
+import { createSelector } from 'reselect';
+import { IntlProvider } from 'react-intl';
+
+import { makeSelectLocale } from './selectors';
+
+export class LanguageProvider extends React.PureComponent {
+ // eslint-disable-line react/prefer-stateless-function
+ 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: PropTypes.string.isRequired,
+ messages: PropTypes.object.isRequired,
+ children: PropTypes.element.isRequired,
+};
+
+const mapStateToProps = createSelector(makeSelectLocale(), locale => ({
+ locale,
+}));
+
+function mapDispatchToProps(dispatch) {
+ return {
+ dispatch,
+ };
+}
+
+export default connect(
+ mapStateToProps,
+ mapDispatchToProps,
+)(LanguageProvider);