import { Button, Tooltip } from "antd"; import { Eye, FileText, Image as ImageIcon, RotateCcw, Video, X } from "lucide-react"; import { CONTENT_MODERATION_ERROR_CODE, isContentModerationError } from "@/lib/generation-error"; import { statusLabel } from "@/lib/generation-task-display"; import type { GenerationTask } from "@/services/api/task-center"; import { isTaskFailed, statusDotClassName, TaskDate } from "./task-shared"; export function TaskGridCard({ task, actingId, onOpen, onRetry, onCancel }: { task: GenerationTask; actingId: string; onOpen: () => void; onRetry: () => void; onCancel: () => void }) { const isActive = task.status === "queued" || task.status === "running"; const isFailed = isTaskFailed(task); const isVideo = task.previewKind === "video"; const fallbackVideo = task.type.includes("video"); const Icon = fallbackVideo ? Video : task.type.includes("image") ? ImageIcon : FileText; return (
{task.previewUrl ? ( isVideo ? (
{statusLabel[task.status]}
); }