index.tsx 749 B

123456789101112131415161718192021222324
  1. import { Timer } from '../../src/timer'
  2. import { useContext, useState, useEffect } from 'react'
  3. import { TrainingContext } from '../_app'
  4. import { useRouter } from 'next/router'
  5. const TimerPage = () => {
  6. const trainingList = useContext(TrainingContext)
  7. const [trainingIndex, setTrainingIndex] = useState(trainingList.length - 1)
  8. const router = useRouter()
  9. const queryId = router.query && router.query.id
  10. useEffect(() => {
  11. if (typeof queryId !== 'string') return
  12. const intId = parseInt(queryId)
  13. if (intId < 0 || intId + 1 > trainingList.length) return
  14. setTrainingIndex(intId)
  15. }, [router.query])
  16. const { trainings } = trainingList[trainingIndex]
  17. return <Timer training={trainings[0]} />
  18. }
  19. export default TimerPage