"use client"; import { Copy, Pencil, Sparkles, Trash2, Video } from "lucide-react"; import { Badge } from "@/components/ui/badge"; import { cn } from "@/lib/utils"; import type { AgentPreset } from "@/types/agent"; interface AgentPresetCardProps { preset: AgentPreset; selected?: boolean; onSelect: (presetId: string) => void; onFork?: (preset: AgentPreset) => void; onEdit?: (preset: AgentPreset) => void; onDelete?: (preset: AgentPreset) => void; } export function AgentPresetCard({ preset, selected = false, onSelect, onFork, onEdit, onDelete, }: AgentPresetCardProps) { const previewUrl = preset.avatarUrl || preset.referenceAssets?.[0]?.thumbnailUrl || preset.referenceAssets?.[0]?.originalUrl || ""; const ownerName = String(preset.owner?.name || "").trim() || String(preset.owner?.email || "").trim() || "未知发布人"; const publishedAt = (() => { const raw = preset.createdAt ? new Date(preset.createdAt) : null; if (!raw || Number.isNaN(raw.getTime())) return "未知时间"; return raw.toLocaleDateString("zh-CN", { year: "numeric", month: "2-digit", day: "2-digit", }); })(); return (
) : null} {preset.visibility === "private" && onDelete ? ( ) : null} {preset.visibility === "public" && onFork ? ( ) : null}
{preset.name}
发布人:{ownerName}
发布时间:{publishedAt}
); }