Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3481 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 3481 Rev 3719
Línea 1... Línea 1...
1
import React, { useEffect, useState } from 'react'
1
import React, { useEffect, useState } from 'react';
2
import { Box } from '@mui/material'
2
import { Box } from '@mui/material';
3
 
3
 
4
function QuizTimer({ time, onStop }) {
4
function QuizTimer({ time, onStop }) {
5
  const [minutes, setMinutes] = useState(time)
5
  const [minutes, setMinutes] = useState(time);
6
  const [seconds, setSeconds] = useState(0)
6
  const [seconds, setSeconds] = useState(0);
7
 
7
 
8
  useEffect(() => {
8
  useEffect(() => {
9
    const countDown = setInterval(() => {
9
    const countDown = setInterval(() => {
10
      if (minutes === 0 && seconds === 0) {
10
      if (minutes === 0 && seconds === 0) {
11
        clearInterval(countDown)
11
        clearInterval(countDown);
12
        onStop()
12
        onStop();
13
      }
13
      }
14
 
14
 
15
      setSeconds((prevSeconds) => (prevSeconds === 0 ? 0 : prevSeconds - 1))
15
      setSeconds((prevSeconds) => (prevSeconds === 0 ? 0 : prevSeconds - 1));
16
 
16
 
17
      if (seconds === 0) {
17
      if (seconds === 0) {
18
        setMinutes((prevMinutes) => (prevMinutes === 0 ? 0 : prevMinutes - 1))
18
        setMinutes((prevMinutes) => (prevMinutes === 0 ? 0 : prevMinutes - 1));
19
        setSeconds(59)
19
        setSeconds(59);
20
      }
20
      }
21
    }, 1000)
21
    }, 1000);
22
 
22
 
23
    return () => clearInterval(countDown)
23
    return () => clearInterval(countDown);
24
  }, [minutes, seconds])
24
  }, [minutes, seconds]);
25
 
25
 
26
  return (
26
  return (
27
    <Box component='span'>
27
    <Box component='span'>
28
      {minutes < 10 ? `0${minutes}` : minutes}:
28
      {minutes < 10 ? `0${minutes}` : minutes}:{seconds < 10 ? `0${seconds}` : seconds}
29
      {seconds < 10 ? `0${seconds}` : seconds}
-
 
30
    </Box>
29
    </Box>
31
  )
30
  );
32
}
31
}
33
 
32
 
34
export default QuizTimer
33
export default QuizTimer;