mirror of
https://github.com/terribleplan/next.js.git
synced 2024-01-19 02:48:18 +00:00
9c4eefcdbf
* Add prettier for examples directory * Fix files * Fix linting * Add prettier script in case it has to be ran again
24 lines
830 B
JavaScript
24 lines
830 B
JavaScript
import { compose, withState, setStatic } from 'recompose'
|
|
|
|
// the setStatic HOC allow us to define the getInitialProps props to the enhanced component
|
|
// it needs to be at the top of the compose
|
|
const enhance = compose(
|
|
// set the static async method getInitialProps
|
|
setStatic('getInitialProps', async ({ req }) => {
|
|
const isServer = !!req
|
|
// log if we're server or client side
|
|
if (isServer) console.log('from server')
|
|
else console.log('from client')
|
|
// return a prop to know if we're server or client side
|
|
return { isServer }
|
|
}),
|
|
withState('counter', 'setCounter', 0)
|
|
)
|
|
|
|
// our enhanced page component
|
|
export default enhance(({ counter, setCounter, isServer }) => (
|
|
<button onClick={() => setCounter(counter + 1)}>
|
|
{isServer ? 'from server' : 'from client'} Counter:{counter}
|
|
</button>
|
|
))
|