rsnext/examples/with-higher-order-component/hocs/withLanguages.js
Brice BERNARD 206470283e [with-hocs] Revamp example to use real world hocs (#3423)
* Revamp example to use real world hocs

* Add missing sync await parts

* Remove process.browser usage

* Get parent initialProps in last position
2018-02-24 13:04:17 +01:00

22 lines
550 B
JavaScript

import accepts from 'accepts'
import { getDisplayName } from '../lib/getDisplayName'
export const withLanguages = Page => {
const WithLanguages = props => <Page {...props} />
WithLanguages.getInitialProps = async context => {
const languages = context.req
? accepts(context.req).languages()
: navigator.languages
return {
...(Page.getInitialProps ? await Page.getInitialProps(context) : {}),
languages
}
}
WithLanguages.displayName = `WithLanguages(${getDisplayName(Page)})`
return WithLanguages
}