triplebyte-react-spa/pages/index.js
2020-02-18 14:51:01 -05:00

39 lines
837 B
JavaScript

import React from 'react'
import { useDispatch } from 'react-redux'
import { withRedux } from '../lib/redux'
import useInterval from '../lib/useInterval'
import Clock from '../components/clock'
import Counter from '../components/counter'
const IndexPage = () => {
// Tick the time every second
const dispatch = useDispatch()
useInterval(() => {
dispatch({
type: 'TICK',
light: true,
lastUpdate: Date.now(),
})
}, 1000)
return (
<>
<Clock />
<Counter />
</>
)
}
IndexPage.getInitialProps = ({ reduxStore }) => {
// Tick the time once, so we'll have a
// valid time before first render
const { dispatch } = reduxStore
dispatch({
type: 'TICK',
light: typeof window === 'object',
lastUpdate: Date.now(),
})
return {}
}
export default withRedux(IndexPage)