|
@@ -64,7 +64,6 @@ const MinioUploader: React.FC<MinioUploaderProps> = ({
|
|
|
displayMode = 'full'
|
|
displayMode = 'full'
|
|
|
}) => {
|
|
}) => {
|
|
|
const [fileList, setFileList] = useState<UploadFile[]>([]);
|
|
const [fileList, setFileList] = useState<UploadFile[]>([]);
|
|
|
- const [uploadingFiles, setUploadingFiles] = useState<Set<string>>(new Set());
|
|
|
|
|
const [dragActive, setDragActive] = useState(false);
|
|
const [dragActive, setDragActive] = useState(false);
|
|
|
|
|
|
|
|
// 根据尺寸模式获取样式配置
|
|
// 根据尺寸模式获取样式配置
|
|
@@ -128,7 +127,7 @@ const MinioUploader: React.FC<MinioUploaderProps> = ({
|
|
|
|
|
|
|
|
// 处理上传成功
|
|
// 处理上传成功
|
|
|
const handleComplete = useCallback((uid: string, result: { fileKey: string; fileUrl: string }, file: File) => {
|
|
const handleComplete = useCallback((uid: string, result: { fileKey: string; fileUrl: string }, file: File) => {
|
|
|
- setFileList(prev =>
|
|
|
|
|
|
|
+ setFileList(prev =>
|
|
|
prev.map(item => {
|
|
prev.map(item => {
|
|
|
if (item.uid === uid) {
|
|
if (item.uid === uid) {
|
|
|
return {
|
|
return {
|
|
@@ -142,19 +141,13 @@ const MinioUploader: React.FC<MinioUploaderProps> = ({
|
|
|
})
|
|
})
|
|
|
);
|
|
);
|
|
|
|
|
|
|
|
- setUploadingFiles(prev => {
|
|
|
|
|
- const newSet = new Set(prev);
|
|
|
|
|
- newSet.delete(uid);
|
|
|
|
|
- return newSet;
|
|
|
|
|
- });
|
|
|
|
|
-
|
|
|
|
|
// toast.success(`文件 "${file.name}" 上传成功`);
|
|
// toast.success(`文件 "${file.name}" 上传成功`);
|
|
|
onUploadSuccess?.(result.fileKey, result.fileUrl, file);
|
|
onUploadSuccess?.(result.fileKey, result.fileUrl, file);
|
|
|
}, [onUploadSuccess]);
|
|
}, [onUploadSuccess]);
|
|
|
|
|
|
|
|
// 处理上传失败
|
|
// 处理上传失败
|
|
|
const handleError = useCallback((uid: string, error: Error, file: File) => {
|
|
const handleError = useCallback((uid: string, error: Error, file: File) => {
|
|
|
- setFileList(prev =>
|
|
|
|
|
|
|
+ setFileList(prev =>
|
|
|
prev.map(item => {
|
|
prev.map(item => {
|
|
|
if (item.uid === uid) {
|
|
if (item.uid === uid) {
|
|
|
return {
|
|
return {
|
|
@@ -168,12 +161,6 @@ const MinioUploader: React.FC<MinioUploaderProps> = ({
|
|
|
})
|
|
})
|
|
|
);
|
|
);
|
|
|
|
|
|
|
|
- setUploadingFiles(prev => {
|
|
|
|
|
- const newSet = new Set(prev);
|
|
|
|
|
- newSet.delete(uid);
|
|
|
|
|
- return newSet;
|
|
|
|
|
- });
|
|
|
|
|
-
|
|
|
|
|
// toast.error(`文件 "${file.name}" 上传失败: ${error.message}`);
|
|
// toast.error(`文件 "${file.name}" 上传失败: ${error.message}`);
|
|
|
onUploadError?.(error, file);
|
|
onUploadError?.(error, file);
|
|
|
}, [onUploadError]);
|
|
}, [onUploadError]);
|
|
@@ -195,8 +182,7 @@ const MinioUploader: React.FC<MinioUploaderProps> = ({
|
|
|
}
|
|
}
|
|
|
]);
|
|
]);
|
|
|
|
|
|
|
|
- // 添加到上传中集合
|
|
|
|
|
- setUploadingFiles(prev => new Set(prev).add(uid));
|
|
|
|
|
|
|
+ // 文件已添加到上传列表
|
|
|
|
|
|
|
|
try {
|
|
try {
|
|
|
// 验证文件大小
|
|
// 验证文件大小
|