diff --git a/admin-v2/app/(admin)/ai/ocr-compare/page.tsx b/admin-v2/app/(admin)/ai/ocr-compare/page.tsx index 4c2e69d..d6fd961 100644 --- a/admin-v2/app/(admin)/ai/ocr-compare/page.tsx +++ b/admin-v2/app/(admin)/ai/ocr-compare/page.tsx @@ -12,7 +12,7 @@ import { useState, useEffect, useCallback, useMemo } from 'react' import { PagePurpose } from '@/components/common/PagePurpose' import { AIToolsSidebarResponsive } from '@/components/ai/AIToolsSidebar' import { QRCodeUpload, UploadedFile } from '@/components/QRCodeUpload' -import { GridOverlay, GridStats, GridLegend, CellCorrectionDialog, BlockReviewPanel, BlockReviewSummary, getCellBlockNumber } from '@/components/ocr' +import { GridOverlay, GridStats, GridLegend, CellCorrectionDialog, BlockReviewPanel, BlockReviewSummary, getCellBlockNumber, GroundTruthPanel } from '@/components/ocr' import type { GridData, GridCell, BlockReviewData, BlockStatus } from '@/components/ocr' interface VocabEntry { @@ -155,6 +155,9 @@ export default function OCRComparePage() { const [isExporting, setIsExporting] = useState(false) const [exportSuccess, setExportSuccess] = useState(false) + // Tab State (compare vs ground truth) + const [activeTab, setActiveTab] = useState<'compare' | 'groundtruth'>('compare') + const KLAUSUR_API = '/klausur-api' // Load session history @@ -1065,8 +1068,43 @@ export default function OCRComparePage() { )} + {/* Tab Bar */} + {sessionId && pageCount > 0 && ( +
+ Erkennung starten um Vokabeln mit Positionen zu extrahieren. + Danach jede Zeile durchgehen und bestaetigen oder korrigieren. +
+ + {error && ( +| # | +English | +Deutsch | +Status | +
|---|---|---|---|
| {i + 1} | +{e.english} | +{e.german} | ++ + {e.status === 'confirmed' ? 'OK' : + e.status === 'edited' ? 'Editiert' : + e.status === 'skipped' ? 'Skip' : 'Offen'} + + | +