rsnext/examples/with-lingui/components/withLang.js
Tim Neutkens 3e51ddb8af
Move syntax formatting to prettier (#7454)
* Run prettier over packages/**/*.js

* Run prettier over packages/**/*.ts

* Run prettier over examples

* Remove tslint

* Run prettier over examples

* Run prettier over all markdown files

* Run prettier over json files
2019-05-29 13:57:26 +02:00

31 lines
830 B
JavaScript

import React from 'react'
import { I18nProvider } from '@lingui/react'
export default (Component, defaultLang = 'en') =>
class WithLang extends React.Component {
static async getInitialProps (ctx) {
const language = ctx.query.lang || defaultLang
const [props, catalog] = await Promise.all([
Component.getInitialProps ? Component.getInitialProps(ctx) : {},
import(`../locale/${language}/messages.po`).then(m => m.default)
])
return {
...props,
language,
catalogs: {
[language]: catalog
}
}
}
render () {
const { language, catalogs, ...restProps } = this.props
return (
<I18nProvider language={language} catalogs={catalogs}>
<Component {...restProps} />
</I18nProvider>
)
}
}