"use client"; import { memo } from "react"; import { SparklesIcon } from "./icons"; import { Scissors, Expand, Droplet } from "lucide-react"; import { BloubAvatar } from "./bloub-avatar"; interface ImageProcessingLoadingProps { type: "enhance" | "rmbg" | "extend" | "watermark"; // 处理类型:变清晰、抠图、图像拓展或去水印 } /** * 图片处理加载占位符组件 * 显示类似 Gemini 生图的动态卡片效果 */ export const ImageProcessingLoading = memo(({ type }: ImageProcessingLoadingProps) => { const isEnhance = type === "enhance"; const isRmbg = type === "rmbg"; const isExtend = type === "extend"; const isWatermark = type === "watermark"; let text: string; let icon: any; let colorClasses: any; if (isEnhance) { text = "正在变清晰"; icon = SparklesIcon; colorClasses = { ping: "bg-blue-500/20", pulse: "bg-blue-500/10", ring: "ring-blue-500/30", text: "text-blue-500", dot: "bg-blue-500", gradientFrom: "from-blue-400", gradientFromOverlay: "from-blue-500/40", gradientToOverlay: "to-blue-500/30", }; } else if (isRmbg) { text = "正在抠图"; icon = Scissors; colorClasses = { ping: "bg-green-500/20", pulse: "bg-green-500/10", ring: "ring-green-500/30", text: "text-green-500", dot: "bg-green-500", gradientFrom: "from-green-400", gradientFromOverlay: "from-green-500/40", gradientToOverlay: "to-green-500/30", }; } else if (isWatermark) { text = "正在去水印"; icon = Droplet; colorClasses = { ping: "bg-cyan-500/20", pulse: "bg-cyan-500/10", ring: "ring-cyan-500/30", text: "text-cyan-500", dot: "bg-cyan-500", gradientFrom: "from-cyan-400", gradientFromOverlay: "from-cyan-500/40", gradientToOverlay: "to-cyan-500/30", }; } else { text = "正在图像拓展"; icon = Expand; colorClasses = { ping: "bg-orange-500/20", pulse: "bg-orange-500/10", ring: "ring-orange-500/30", text: "text-orange-500", dot: "bg-orange-500", gradientFrom: "from-orange-400", gradientFromOverlay: "from-orange-500/40", gradientToOverlay: "to-orange-500/30", }; } const Icon = icon; return (