'use client'
import type { ExcludeRegion, StructureResult } from '@/app/(admin)/ai/ocr-kombi/types'
import { COLOR_HEX, getDocLayoutColor } from './structure-detection-utils'
interface StructureResultDetailsProps {
result: StructureResult
excludeRegions: ExcludeRegion[]
}
export function StructureResultDetails({ result, excludeRegions }: StructureResultDetailsProps) {
return (
{/* Summary badges */}
{result.zones.length} Zone(n)
{result.boxes.length} Box(en)
{result.layout_regions && result.layout_regions.length > 0 && (
{result.layout_regions.length} Layout-Region(en)
)}
{result.graphics && result.graphics.length > 0 && (
{result.graphics.length} Grafik(en)
)}
{result.has_words && (
{result.word_count} Woerter
)}
{excludeRegions.length > 0 && (
{excludeRegions.length} Ausschluss
)}
{(result.border_ghosts_removed ?? 0) > 0 && (
{result.border_ghosts_removed} Rahmenlinien entfernt
)}
{result.detection_method && (
{result.detection_method === 'ppdoclayout' ? 'PP-DocLayout' : 'OpenCV'} |
)}
{result.image_width}x{result.image_height}px | {result.duration_seconds}s
{/* Boxes detail */}
{result.boxes.length > 0 && (
)}
{/* PP-DocLayout regions detail */}
{result.layout_regions && result.layout_regions.length > 0 && (
)}
{/* Zones detail */}
{/* Graphics / visual elements */}
{result.graphics && result.graphics.length > 0 && (
)}
{/* Color regions */}
{Object.keys(result.color_pixel_counts).length > 0 && (
)}
)
}
/* ------------------------------------------------------------------ */
/* Sub-sections */
/* ------------------------------------------------------------------ */
function BoxesDetail({ boxes }: { boxes: StructureResult['boxes'] }) {
return (