mirror of
https://github.com/seigler/triplebyte-react-spa
synced 2025-07-26 07:16:10 +00:00
39 lines
837 B
JavaScript
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)
|