import { CheckCircle2, CircleDot, Clock3, Loader2, TriangleAlert, } from 'lucide-react'; import type { CreativeAgentProcessItem } from './creativeAgentViewModel'; type CreativeAgentProcessPanelProps = { items: CreativeAgentProcessItem[]; isStreaming: boolean; }; const PROCESS_TONE_CLASS: Record = { active: 'border-[rgba(255,105,145,0.38)] bg-white/82', done: 'border-emerald-200/80 bg-emerald-50/82', info: 'border-[var(--platform-subpanel-border)] bg-white/68', warning: 'border-amber-200/80 bg-amber-50/82', danger: 'border-red-200/80 bg-red-50/86', }; function ProcessIcon({ item }: { item: CreativeAgentProcessItem }) { if (item.tone === 'active') { return ; } if (item.tone === 'done') { return ; } if (item.tone === 'warning' || item.tone === 'danger') { return ; } return ; } export function CreativeAgentProcessPanel({ items, isStreaming, }: CreativeAgentProcessPanelProps) { const visibleItems = items.slice(-12).reverse(); if (visibleItems.length === 0) { return (
过程
等待新的创作输入
); } return (
{isStreaming ? ( ) : null} 过程
{items.length} 条
{visibleItems.map((item) => (
{item.meta}
{item.title}
{item.detail ? (
{item.detail}
) : null} {item.detailLines.length > 0 ? (
{item.detailLines.map((line, index) => (
{line}
))}
) : null}
))}
); } export default CreativeAgentProcessPanel;