import type { EpisodeMappingPreviewItem } from "@umt/contracts"; import { ArrowRight } from "lucide-react"; import { StatusBadge } from "~/components/console/status-badge.tsx"; import { cn, formatDateTime } from "~/lib/utils.ts"; import { canonicalText, methodText, sourceText, VALIDATION } from "./model.ts"; // 模拟预览表格:原始季集 → 当前结果 → 套用草稿后的结果、方式、校验;与当前不同的行高亮并标「有变化」。 export function PreviewTable({ items, hasDraft, empty = "这部作品还没有绑定的资源。", }: { items: EpisodeMappingPreviewItem[]; /** 有草稿时列名写「套用后」,否则写「重算」 */ hasDraft: boolean; empty?: string; }) { if (!items.length) return

{empty}

; return (
{items.map((it) => { const v = VALIDATION[it.validation]; return ( ); })}
资源 原始 当前 {hasDraft ? "套用后" : "重算"} 方式 校验
{it.title}
{[it.releaseGroup, formatDateTime(it.publishedAt)].filter(Boolean).join(" · ")}
{sourceText(it.preview)}
{canonicalText(it.current)}
{methodText(it.current)}
{it.changed ? : null} {canonicalText(it.preview)}
{it.changed ?
有变化
: null}
{methodText(it.preview)} {v.label}
); }