@@ -23,7 +23,7 @@ const Quiz_Details: QuizDetails[] = [ | |||||
], | ], | ||||
answer: ["alert('Hello World');"], | answer: ["alert('Hello World');"], | ||||
result: false, | result: false, | ||||
timeLimit: 25 | |||||
timeLimit: 10 | |||||
}, | }, | ||||
{ | { | ||||
question: "is javascript", | question: "is javascript", | ||||
@@ -14,23 +14,26 @@ interface OwnProp { | |||||
let timeout: NodeJS.Timeout; | let timeout: NodeJS.Timeout; | ||||
const Question: React.FC<OwnProp> = (props) => { | const Question: React.FC<OwnProp> = (props) => { | ||||
const [seconds, setSeconds] = useState<number>(props.timeLimit); | const [seconds, setSeconds] = useState<number>(props.timeLimit); | ||||
const [duration, setDuration] = useState<number>(props.timeLimit); | |||||
const displaySeconds = seconds % 60; | const displaySeconds = seconds % 60; | ||||
useEffect(() => { | |||||
setSeconds(props.timeLimit); | |||||
setDuration(props.timeLimit); | |||||
}, [props.questionNumber]); | |||||
useEffect(() => { | useEffect(() => { | ||||
setTimeout(() => { | setTimeout(() => { | ||||
if (seconds <= 0) { | |||||
props.updateQuestionNumber(); | |||||
console.log(props.timeLimit); | |||||
setSeconds(5) | |||||
} else { | |||||
if (seconds > 0) { | |||||
setSeconds(seconds - 1); | setSeconds(seconds - 1); | ||||
} else { | |||||
props.updateQuestionNumber(); | |||||
} | } | ||||
}, 500); | |||||
}, 1000); | |||||
}, [seconds]); | }, [seconds]); | ||||
const renderTime = () => { | const renderTime = () => { | ||||
return ( | return ( | ||||
<div className={styles.time}> | <div className={styles.time}> | ||||
@@ -56,13 +59,11 @@ const Question: React.FC<OwnProp> = (props) => { | |||||
<CountdownCircleTimer | <CountdownCircleTimer | ||||
isPlaying | isPlaying | ||||
duration={props.timeLimit} | |||||
duration={duration} | |||||
colors={'#6BD534'} | colors={'#6BD534'} | ||||
size={60} | size={60} | ||||
onComplete={() => { | onComplete={() => { | ||||
// setSeconds(COUNTDOWN_AMOUNT_TOTAL); | |||||
// props.updateQuestionNumber(); | |||||
return { shouldRepeat: true } | |||||
return { shouldRepeat: true, delay: 1.5 } | |||||
}} | }} | ||||
strokeWidth={5} > | strokeWidth={5} > | ||||
@@ -11,15 +11,13 @@ import Quiz_Details from '../../mockData/QuizDetails'; | |||||
const Quiz: React.FC = () => { | const Quiz: React.FC = () => { | ||||
const [questionNumber, setQuestionNumber] = useState<number>(1); | const [questionNumber, setQuestionNumber] = useState<number>(1); | ||||
const timeLimit = Quiz_Details[questionNumber - 1].timeLimit; | |||||
const updateQuestionNumber = () => { | const updateQuestionNumber = () => { | ||||
console.log("update") | |||||
if (Quiz_Details.length > questionNumber) { | if (Quiz_Details.length > questionNumber) { | ||||
setQuestionNumber((questionNumber) => questionNumber + 1); | setQuestionNumber((questionNumber) => questionNumber + 1); | ||||
} | } | ||||
} | } | ||||
console.log("no", questionNumber); | |||||
console.log(Quiz_Details[questionNumber - 1]); | |||||
return ( | return ( | ||||
<div className={styles.quizContainer}> | <div className={styles.quizContainer}> | ||||
@@ -33,7 +31,7 @@ const Quiz: React.FC = () => { | |||||
<Question question={Quiz_Details[questionNumber - 1].question} | <Question question={Quiz_Details[questionNumber - 1].question} | ||||
questionNumber={questionNumber} | questionNumber={questionNumber} | ||||
timeLimit={Quiz_Details[questionNumber - 1].timeLimit} | |||||
timeLimit={timeLimit} | |||||
updateQuestionNumber={updateQuestionNumber} /> | updateQuestionNumber={updateQuestionNumber} /> | ||||
</div> | </div> | ||||