import { cancelUploadUsingPut, preUploadUsingPost, uploadFileChunkUsingPost, } from "@/pages/DataManagement/dataset.api"; import { Button, Empty, Progress, Tag } from "antd"; import { DeleteOutlined, FileTextOutlined } from "@ant-design/icons"; import { useEffect } from "react"; import { useFileSliceUpload } from "@/hooks/useSliceUpload"; export default function TaskUpload() { const { createTask, taskList, removeTask, handleUpload, registerStreamUploadListener } = useFileSliceUpload( { preUpload: preUploadUsingPost, uploadChunk: uploadFileChunkUsingPost, cancelUpload: cancelUploadUsingPut, }, true, // showTaskCenter true // enableStreamUpload ); useEffect(() => { const uploadHandler = (e: Event) => { const customEvent = e as CustomEvent; console.log('[TaskUpload] Received upload event detail:', customEvent.detail); const { files } = customEvent.detail; const task = createTask(customEvent.detail); console.log('[TaskUpload] Created task with prefix:', task.prefix); handleUpload({ task, files }); }; window.addEventListener("upload:dataset", uploadHandler); return () => { window.removeEventListener("upload:dataset", uploadHandler); }; }, [createTask, handleUpload]); // 注册流式上传监听器 useEffect(() => { const unregister = registerStreamUploadListener(); return unregister; }, [registerStreamUploadListener]); return (