fix(pdf): correct parse status handling and loader display logic
Update PDF viewer and document hook to improve parse status management: - Set parseStatus to null on clear instead of 'pending' for accurate state - Explicitly set initial parseStatus and reset parseProgress when loading a new document - Adjust loader display logic to check for resolved parse status before showing expanded loader Prevents UI inconsistencies and ensures parse progress is reflected correctly during document transitions.
This commit is contained in:
parent
50c4330ab1
commit
1d4a301a5d
2 changed files with 7 additions and 2 deletions
|
|
@ -76,12 +76,14 @@ export default function PDFViewerPage() {
|
|||
const clearCurrDocRef = useRef(clearCurrDoc);
|
||||
const [isNavigatingBack, setIsNavigatingBack] = useState(false);
|
||||
const parseUiState: NonNullable<typeof parseStatus> = parseStatus ?? 'pending';
|
||||
const hasResolvedParseStatus = parseStatus !== null;
|
||||
const isParseReady = parseUiState === 'ready';
|
||||
const forceReparseDisabled = isForceReparseDisabled(parseStatus);
|
||||
const hasRealParseProgress = !!parseProgress
|
||||
&& parseProgress.totalPages > 0
|
||||
&& parseProgress.pagesParsed >= 0;
|
||||
const shouldShowExpandedParseLoader = !isLoading
|
||||
&& hasResolvedParseStatus
|
||||
&& (parseUiState === 'pending' || parseUiState === 'running' || parseUiState === 'failed' || hasRealParseProgress);
|
||||
|
||||
useEffect(() => {
|
||||
|
|
|
|||
|
|
@ -450,7 +450,7 @@ export function usePdfDocument(): PdfDocumentState {
|
|||
setCurrDocName(undefined);
|
||||
setCurrDocData(undefined);
|
||||
setParsedDocument(null);
|
||||
setParseStatus('pending');
|
||||
setParseStatus(null);
|
||||
setParseProgress(null);
|
||||
setDocumentSettings(DEFAULT_DOCUMENT_SETTINGS);
|
||||
|
||||
|
|
@ -461,7 +461,10 @@ export function usePdfDocument(): PdfDocumentState {
|
|||
return false;
|
||||
}
|
||||
if (meta.type === 'pdf') {
|
||||
startParsedPolling(id, (meta.parseStatus ?? null) as PdfParseStatus | null);
|
||||
const initialParseStatus = (meta.parseStatus ?? null) as PdfParseStatus | null;
|
||||
setParseStatus(initialParseStatus);
|
||||
setParseProgress(null);
|
||||
startParsedPolling(id, initialParseStatus);
|
||||
void fetchDocumentSettings(id, controller.signal);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue