|
1 | 1 | 'use client'; |
2 | 2 |
|
3 | | -import { useMemo, useState, useEffect, useRef } from 'react'; |
| 3 | +import { useEffect, useMemo, useRef, useState } from 'react'; |
4 | 4 | import { useQuestionnaireActions } from './useQuestionnaireActions'; |
5 | 5 | import { useQuestionnaireAutoAnswer } from './useQuestionnaireAutoAnswer'; |
6 | 6 | import { useQuestionnaireParse } from './useQuestionnaireParse'; |
@@ -65,11 +65,13 @@ export function useQuestionnaireParser() { |
65 | 65 | answeringQuestionIndex: state.answeringQuestionIndex, |
66 | 66 | setAnsweringQuestionIndex: state.setAnsweringQuestionIndex, |
67 | 67 | setQuestionStatuses: state.setQuestionStatuses, |
68 | | - uploadFileAction: parse.uploadFileAction, |
69 | | - parseAction: parse.parseAction, |
70 | | - triggerAutoAnswer: autoAnswer.triggerAutoAnswer, |
71 | | - triggerSingleAnswer: singleAnswer.triggerSingleAnswer, |
72 | | - }); |
| 68 | + setParseTaskId: state.setParseTaskId, |
| 69 | + setParseToken: state.setParseToken, |
| 70 | + uploadFileAction: parse.uploadFileAction, |
| 71 | + parseAction: parse.parseAction, |
| 72 | + triggerAutoAnswer: autoAnswer.triggerAutoAnswer, |
| 73 | + triggerSingleAnswer: singleAnswer.triggerSingleAnswer, |
| 74 | + }); |
73 | 75 |
|
74 | 76 | const isLoading = useMemo(() => { |
75 | 77 | const isUploading = parse.uploadFileAction.status === 'executing'; |
@@ -167,7 +169,9 @@ export function useQuestionnaireParser() { |
167 | 169 | ]); |
168 | 170 |
|
169 | 171 | // Throttled status for smooth transitions |
170 | | - const [parseStatus, setParseStatus] = useState<'uploading' | 'starting' | 'queued' | 'analyzing' | 'processing' | null>(null); |
| 172 | + const [parseStatus, setParseStatus] = useState< |
| 173 | + 'uploading' | 'starting' | 'queued' | 'analyzing' | 'processing' | null |
| 174 | + >(null); |
171 | 175 | const statusTimeoutRef = useRef<NodeJS.Timeout | null>(null); |
172 | 176 | const lastStatusRef = useRef<string | null>(null); |
173 | 177 | const statusStartTimeRef = useRef<number | null>(null); |
@@ -207,12 +211,17 @@ export function useQuestionnaireParser() { |
207 | 211 | statusStartTimeRef.current = Date.now(); |
208 | 212 | } else { |
209 | 213 | // Check if current status has been visible for minimum duration |
210 | | - const isEarlyStage = lastStatusRef.current === 'uploading' || lastStatusRef.current === 'starting' || lastStatusRef.current === 'queued'; |
| 214 | + const isEarlyStage = |
| 215 | + lastStatusRef.current === 'uploading' || |
| 216 | + lastStatusRef.current === 'starting' || |
| 217 | + lastStatusRef.current === 'queued'; |
211 | 218 | const minDisplayTime = isEarlyStage ? 3000 : 1500; // 3s minimum for early stages, 1.5s for later |
212 | | - |
213 | | - const timeSinceStatusStart = statusStartTimeRef.current ? Date.now() - statusStartTimeRef.current : 0; |
| 219 | + |
| 220 | + const timeSinceStatusStart = statusStartTimeRef.current |
| 221 | + ? Date.now() - statusStartTimeRef.current |
| 222 | + : 0; |
214 | 223 | const remainingTime = Math.max(0, minDisplayTime - timeSinceStatusStart); |
215 | | - |
| 224 | + |
216 | 225 | statusTimeoutRef.current = setTimeout(() => { |
217 | 226 | setParseStatus(rawParseStatus); |
218 | 227 | lastStatusRef.current = rawParseStatus; |
|
0 commit comments