"use client"; import { AlertCircle, CheckCircle2 } from "lucide-react"; import { cn } from "@/lib/utils"; type DetailUiValidationSnapshot = { passed?: boolean; issues?: string[]; }; type DetailUiReviewSnapshot = { screenIndex: number; action?: "pass" | "protocol_patch" | "regenerate_image"; passed?: boolean; issues?: string[]; }; export function DetailUiValidationPanel(params: { generationMode: "classic" | "agent_layout"; planValidation?: DetailUiValidationSnapshot | null; latestScreenValidation?: DetailUiReviewSnapshot | null; surfaceId?: string | null; }) { const planIssues = Array.isArray(params.planValidation?.issues) ? params.planValidation?.issues.filter(Boolean) : []; const latestIssues = Array.isArray(params.latestScreenValidation?.issues) ? params.latestScreenValidation.issues.filter(Boolean) : []; if (!params.planValidation && !params.latestScreenValidation) { return null; } const title = params.generationMode === "agent_layout" ? "协议排版质检" : "排版与复审状态"; const hasPlanValidation = Boolean(params.planValidation); const latestActionLabel = params.latestScreenValidation?.action === "protocol_patch" ? "已走协议修正" : params.latestScreenValidation?.action === "regenerate_image" ? "已要求重生图" : "通过"; return (
{title}