'use client'; import type { InferenceResult } from '@/types/inference'; import { isClassificationTask } from '@/lib/classification'; import { CameraOverlay } from './camera-overlay'; import { ClassificationOverlay } from './classification-overlay'; interface InferenceOverlayProps { result: InferenceResult | null | undefined; width: number; height: number; confidenceThreshold: number; } /** * Dispatches the frame overlay based on the task type reported by the * inference result itself. * * `result.taskType` is preferred over the model metadata because it reflects * what the Python post-processor actually did — metadata can disagree with the * executed code path. * * Note the branch is written as "is this classification?" rather than "is this * detection?" on purpose: the detection task type string has been inconsistent * across the stack (`detection` vs `object_detection`, plan R-4), so detection * is the fall-through default and stays correct under either spelling. */ export function InferenceOverlay({ result, width, height, confidenceThreshold, }: InferenceOverlayProps) { if (isClassificationTask(result?.taskType)) { return ( ); } return ( ); }