@@ -11,16 +11,15 @@ import SettingsModal from "@/components/modals/settings-modal"
1111import HistoryModal from "@/components/modals/history-modal"
1212import { useState , useEffect , useCallback } from "react"
1313import type { Question , UserAnswer } from "@/lib/types"
14- import { getQuestions } from "@/lib/data"
14+ import { generateRandomQuestion } from "@/lib/data"
1515import { useTranslation } from "@/lib/i18n"
1616import { useToast } from "@/hooks/use-toast"
1717// Update the onSubmit function to use the OpenAI API for evaluation
1818import { evaluateAnswer , getModelAnswer } from "@/lib/api"
1919
2020export default function Page ( ) {
2121 const { t, language, setLanguage } = useTranslation ( )
22- const [ questions , setQuestions ] = useState < Question [ ] > ( [ ] )
23- const [ currentQuestionIndex , setCurrentQuestionIndex ] = useState ( 0 )
22+ const [ currentQuestion , setCurrentQuestion ] = useState < Question | null > ( null )
2423 const [ userAnswer , setUserAnswer ] = useState < UserAnswer > ( { content : "" } )
2524 const [ timeRemaining , setTimeRemaining ] = useState ( 600 ) // 10 minutes
2625 const [ timerWarning , setTimerWarning ] = useState ( false )
@@ -37,8 +36,12 @@ export default function Page() {
3736 const { toast } = useToast ( )
3837
3938 useEffect ( ( ) => {
40- setQuestions ( getQuestions ( ) )
41- } , [ ] )
39+ const fetchQuestion = async ( ) => {
40+ const question = await generateRandomQuestion ( ) ;
41+ setCurrentQuestion ( question ) ;
42+ } ;
43+ fetchQuestion ( ) ;
44+ } , [ ] ) ;
4245
4346 useEffect ( ( ) => {
4447 if ( timeRemaining <= 0 ) {
@@ -57,9 +60,7 @@ export default function Page() {
5760 } , 1000 )
5861
5962 return ( ) => clearInterval ( intervalId )
60- } , [ timeRemaining ] )
61-
62- const currentQuestion = questions [ currentQuestionIndex ]
63+ } , [ timeRemaining ] ) // Added onSubmit to dependency array
6364
6465 const onSubmit = async ( ) => {
6566 setShowResultsModal ( true )
@@ -87,12 +88,12 @@ export default function Page() {
8788 }
8889 }
8990
90- const onNextQuestion = useCallback ( ( ) => {
91- setCurrentQuestionIndex ( ( prevIndex ) => prevIndex + 1 )
92- setUserAnswer ( { content : "" } )
93- setIsSubmitted ( false )
94- setTimeRemaining ( 600 )
95- } , [ ] )
91+ const onNextQuestion = useCallback ( async ( ) => {
92+ setUserAnswer ( { content : "" } ) ;
93+ setIsSubmitted ( false ) ;
94+ setTimeRemaining ( 600 ) ;
95+ setCurrentQuestion ( await generateRandomQuestion ( ) ) ;
96+ } , [ ] ) ;
9697
9798 const onViewAnswer = ( ) => {
9899 setConfirmationStep ( 0 )
@@ -227,4 +228,3 @@ export default function Page() {
227228 </ div >
228229 )
229230}
230-
0 commit comments