import type { CSSProperties } from "react"; import { AlertCircle, ImageUp, FileText, Film, Music2 } from "lucide-react"; import { CanvasNodeType, type CanvasNodeData } from "@/types/canvas"; import { uploadVeilOpacity } from "@/lib/canvas/canvas-file-upload"; import type { CanvasTheme } from "@/lib/canvas-theme"; import { useCanvasNodeActions } from "./canvas-node-action-context"; import "./canvas-file-upload.css"; export function CanvasFileUploadContent({ node, theme, reduceMotion = false }: { node: CanvasNodeData; theme: CanvasTheme; reduceMotion?: boolean }) { const { upload } = useCanvasNodeActions(); const failed = node.metadata?.fileUpload === "error"; const percent = node.metadata?.fileUploadProgress; const label = node.type === CanvasNodeType.Image ? "图片" : node.type === CanvasNodeType.Video ? "视频" : node.type === CanvasNodeType.Audio ? "音频" : "文本"; const Icon = failed ? AlertCircle : node.type === CanvasNodeType.Video ? Film : node.type === CanvasNodeType.Audio ? Music2 : node.type === CanvasNodeType.Text ? FileText : ImageUp; return (