diff --git a/admin-lehrer/components/ocr-pipeline/BoxSessionTabs.tsx b/admin-lehrer/components/ocr-pipeline/BoxSessionTabs.tsx index aa25048..f4322e3 100644 --- a/admin-lehrer/components/ocr-pipeline/BoxSessionTabs.tsx +++ b/admin-lehrer/components/ocr-pipeline/BoxSessionTabs.tsx @@ -59,7 +59,7 @@ export function BoxSessionTabs({ parentSessionId, subSessions, activeSessionId, title={sub.name} > {icon} - Box {sub.box_index + 1} + Seite {sub.box_index + 1} ) })} diff --git a/admin-lehrer/components/ocr-pipeline/StepCrop.tsx b/admin-lehrer/components/ocr-pipeline/StepCrop.tsx index e578e3c..484a692 100644 --- a/admin-lehrer/components/ocr-pipeline/StepCrop.tsx +++ b/admin-lehrer/components/ocr-pipeline/StepCrop.tsx @@ -17,6 +17,13 @@ export function StepCrop({ sessionId, onNext }: StepCropProps) { const [error, setError] = useState(null) const [hasRun, setHasRun] = useState(false) + // Reset state when sessionId changes (e.g. switching sub-sessions) + useEffect(() => { + setCropResult(null) + setHasRun(false) + setError(null) + }, [sessionId]) + // Auto-trigger crop on mount useEffect(() => { if (!sessionId || hasRun) return diff --git a/admin-lehrer/components/ocr-pipeline/StepDeskew.tsx b/admin-lehrer/components/ocr-pipeline/StepDeskew.tsx index 73a1682..9ea6dbb 100644 --- a/admin-lehrer/components/ocr-pipeline/StepDeskew.tsx +++ b/admin-lehrer/components/ocr-pipeline/StepDeskew.tsx @@ -22,6 +22,14 @@ export function StepDeskew({ sessionId, onNext }: StepDeskewProps) { const [error, setError] = useState(null) const [hasAutoRun, setHasAutoRun] = useState(false) + // Reset state when sessionId changes (e.g. switching sub-sessions) + useEffect(() => { + setSession(null) + setDeskewResult(null) + setHasAutoRun(false) + setError(null) + }, [sessionId]) + // Load session and auto-trigger deskew useEffect(() => { if (!sessionId || session) return diff --git a/admin-lehrer/components/ocr-pipeline/StepDewarp.tsx b/admin-lehrer/components/ocr-pipeline/StepDewarp.tsx index 98f8514..9bcd43c 100644 --- a/admin-lehrer/components/ocr-pipeline/StepDewarp.tsx +++ b/admin-lehrer/components/ocr-pipeline/StepDewarp.tsx @@ -20,6 +20,13 @@ export function StepDewarp({ sessionId, onNext }: StepDewarpProps) { const [showGrid, setShowGrid] = useState(true) const [error, setError] = useState(null) + // Reset state when sessionId changes (e.g. switching sub-sessions) + useEffect(() => { + setDewarpResult(null) + setDeskewResult(null) + setError(null) + }, [sessionId]) + // Load session info to get deskew_result (for fine-tuning init values) useEffect(() => { if (!sessionId) return diff --git a/admin-lehrer/components/ocr-pipeline/StepOrientation.tsx b/admin-lehrer/components/ocr-pipeline/StepOrientation.tsx index 9bf0515..a77bb9b 100644 --- a/admin-lehrer/components/ocr-pipeline/StepOrientation.tsx +++ b/admin-lehrer/components/ocr-pipeline/StepOrientation.tsx @@ -30,6 +30,14 @@ export function StepOrientation({ sessionId: existingSessionId, onNext, onSubSes const [dragOver, setDragOver] = useState(false) const [sessionName, setSessionName] = useState('') + // Reset state when sessionId changes + useEffect(() => { + setSession(null) + setOrientationResult(null) + setPageSplitResult(null) + setError(null) + }, [existingSessionId]) + // Reload session data when navigating back useEffect(() => { if (!existingSessionId || session) return