@@ -35,11 +35,12 @@ function FileInput({ onFileUpload }: FileInputProps) {
35
35
id : uuidv4 ( ) ,
36
36
isDeleted : false ,
37
37
isLocked : false ,
38
- customTimer : 600 , // Default value in seconds
38
+ customTimer : 0 , // Default value in seconds
39
39
} as QuizInfo ) ;
40
40
const [ quizGenerated , setQuizGenerated ] = useState ( false ) ;
41
41
const [ viewQuizData , setViewQuizData ] = useState ( false ) ;
42
42
const [ fileName , setFileName ] = useState ( "" ) ;
43
+ const [ timerInput , setTimerInput ] = useState ( { minutes : "" , seconds : "" } ) ;
43
44
44
45
const onDrop = ( acceptedFiles : any ) => {
45
46
const file = acceptedFiles [ 0 ] ;
@@ -82,15 +83,24 @@ function FileInput({ onFileUpload }: FileInputProps) {
82
83
const { name, value } = e . target ;
83
84
setQuizInfo ( {
84
85
...quizInfo ,
85
- [ name ] : name === "customTimer" ? parseInt ( value , 10 ) : value , // Ensure customTimer is an integer
86
+ [ name ] : value ,
87
+ } ) ;
88
+ } ;
89
+
90
+ const handleTimerInputChange = ( e : React . ChangeEvent < HTMLInputElement > ) => {
91
+ const { name, value } = e . target ;
92
+ setTimerInput ( {
93
+ ...timerInput ,
94
+ [ name ] : value ,
86
95
} ) ;
87
96
} ;
88
97
89
98
const { getRootProps, getInputProps } = useDropzone ( { onDrop } ) ;
90
99
91
100
const generateQuiz = ( ) => {
92
101
if ( quizInfo . quizName && quizInfo . course && quizInfo . courseCode && excelData ) {
93
- onFileUpload ( { ...quizInfo , quizData : excelData , fileName } ) ;
102
+ const totalSeconds = ( parseInt ( timerInput . minutes ) * 60 ) + parseInt ( timerInput . seconds ) ;
103
+ onFileUpload ( { ...quizInfo , customTimer : totalSeconds , quizData : excelData , fileName } ) ;
94
104
setQuizGenerated ( true ) ;
95
105
router . push ( "/" ) ;
96
106
} else {
@@ -135,10 +145,18 @@ function FileInput({ onFileUpload }: FileInputProps) {
135
145
/>
136
146
< input
137
147
type = "number"
138
- name = "customTimer"
139
- value = { quizInfo . customTimer }
140
- placeholder = "Custom Timer (seconds)"
141
- onChange = { handleInputChange }
148
+ name = "minutes"
149
+ value = { timerInput . minutes }
150
+ placeholder = "Minutes"
151
+ onChange = { handleTimerInputChange }
152
+ className = "text-black bg-slate-500 w-full m-2 p-2 rounded"
153
+ />
154
+ < input
155
+ type = "number"
156
+ name = "seconds"
157
+ value = { timerInput . seconds }
158
+ placeholder = "Seconds"
159
+ onChange = { handleTimerInputChange }
142
160
className = "text-black bg-slate-500 w-full m-2 p-2 rounded"
143
161
/>
144
162
</ div >
0 commit comments