diff options
Removes t from props via metamask-connect and instead places it on context via a provider.
Diffstat (limited to 'ui/app/i18n-provider.js')
-rw-r--r-- | ui/app/i18n-provider.js | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/ui/app/i18n-provider.js b/ui/app/i18n-provider.js new file mode 100644 index 000000000..57482985d --- /dev/null +++ b/ui/app/i18n-provider.js @@ -0,0 +1,37 @@ +const { Component } = require('react') +const connect = require('react-redux').connect +const h = require('react-hyperscript') +const PropTypes = require('prop-types') +const t = require('../i18n-helper').getMessage + +class I18nProvider extends Component { + getChildContext() { + const { localeMessages } = this.props + return { + t: t.bind(null, localeMessages), + } + } + + render() { + return h('div', [ this.props.children ]) + } +} + +I18nProvider.propTypes = { + localeMessages: PropTypes.object, + children: PropTypes.object, +} + +I18nProvider.childContextTypes = { + t: PropTypes.func, +} + +const mapStateToProps = state => { + const { localeMessages } = state + return { + localeMessages, + } +} + +module.exports = connect(mapStateToProps)(I18nProvider) + |