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