"use client";
import { Copy, Pencil, Sparkles, Trash2, Video } from "lucide-react";
import { Button } from "@/components/ui/button";
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) {
return (
{preset.type === "video" ? (
) : (
)}
{preset.name}
{preset.type === "video" ? "视频" : "生图"}
{preset.visibility === "public" ? "公共" : "私有"}
{preset.category?.name ? (
{preset.category.name}
) : null}
{preset.avatarUrl || preset.referenceAssets?.[0]?.thumbnailUrl || preset.referenceAssets?.[0]?.originalUrl ? (

) : null}
模型:{preset.defaultModel?.displayName || "未设置"}
槽位:{preset.slotCount} 个
需上传:{preset.requiredUploadCount} 张
{preset.visibility === "private" && onEdit ? (
) : null}
{preset.visibility === "private" && onDelete ? (
) : null}
{preset.visibility === "public" && onFork ? (
) : null}
);
}