fix: catch prepare file API error
This commit is contained in:
@@ -54,7 +54,7 @@ const FileMessage: FC<Props> = ({
|
|||||||
from: from_uid,
|
from: from_uid,
|
||||||
to
|
to
|
||||||
});
|
});
|
||||||
const { stopUploading, data, uploadFile, progress, isSuccess: uploadSuccess } = useUploadFile();
|
const { stopUploading, data, uploadFile, progress, isSuccess: uploadSuccess, isError } = useUploadFile();
|
||||||
const fromUser = useAppSelector((store) => store.users.byId[from_uid]);
|
const fromUser = useAppSelector((store) => store.users.byId[from_uid]);
|
||||||
const { size = 0, name, content_type } = properties ?? {};
|
const { size = 0, name, content_type } = properties ?? {};
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@@ -89,6 +89,18 @@ const FileMessage: FC<Props> = ({
|
|||||||
handleUpSend({ url: content, name, type: content_type });
|
handleUpSend({ url: content, name, type: content_type });
|
||||||
}
|
}
|
||||||
}, [content, name, content_type]);
|
}, [content, name, content_type]);
|
||||||
|
const handleCancel = () => {
|
||||||
|
stopUploading();
|
||||||
|
URL.revokeObjectURL(content);
|
||||||
|
removeLocalMessage(properties.local_id);
|
||||||
|
};
|
||||||
|
useEffect(() => {
|
||||||
|
if (isError) {
|
||||||
|
// 撤回消息
|
||||||
|
handleCancel();
|
||||||
|
}
|
||||||
|
}, [isError]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const props = properties ?? {};
|
const props = properties ?? {};
|
||||||
const propsV2 = imageSize ? { ...props, ...imageSize } : props;
|
const propsV2 = imageSize ? { ...props, ...imageSize } : props;
|
||||||
@@ -110,11 +122,7 @@ const FileMessage: FC<Props> = ({
|
|||||||
URL.revokeObjectURL(content);
|
URL.revokeObjectURL(content);
|
||||||
}
|
}
|
||||||
}, [sendMessageSuccess, content]);
|
}, [sendMessageSuccess, content]);
|
||||||
const handleCancel = () => {
|
|
||||||
stopUploading();
|
|
||||||
URL.revokeObjectURL(content);
|
|
||||||
removeLocalMessage(properties.local_id);
|
|
||||||
};
|
|
||||||
if (!properties) return null;
|
if (!properties) return null;
|
||||||
const icon = getFileIcon(content_type, name, "w-9 h-auto");
|
const icon = getFileIcon(content_type, name, "w-9 h-auto");
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ const useUploadFile = (props?: IProps) => {
|
|||||||
const canceledRef = useRef(false);
|
const canceledRef = useRef(false);
|
||||||
const sliceUploadedCountRef = useRef(0);
|
const sliceUploadedCountRef = useRef(0);
|
||||||
const totalSliceCountRef = useRef(1);
|
const totalSliceCountRef = useRef(1);
|
||||||
const [prepareUploadFile, { isLoading: isPreparing }] = usePrepareUploadFileMutation();
|
const [prepareUploadFile, { isLoading: isPreparing, isError: prepareFileError }] = usePrepareUploadFileMutation();
|
||||||
const [uploadFileFn, { isLoading: isUploading, isError: uploadFileError }] =
|
const [uploadFileFn, { isLoading: isUploading, isError: uploadFileError }] =
|
||||||
useUploadFileMutation();
|
useUploadFileMutation();
|
||||||
|
|
||||||
@@ -41,6 +41,8 @@ const useUploadFile = (props?: IProps) => {
|
|||||||
|
|
||||||
const uploadFile = async (file?: File) => {
|
const uploadFile = async (file?: File) => {
|
||||||
if (!file) return;
|
if (!file) return;
|
||||||
|
console.log("up file", file);
|
||||||
|
|
||||||
setData(null);
|
setData(null);
|
||||||
const {
|
const {
|
||||||
name = `-${+new Date()}.${file.type.split("/")[1]}`,
|
name = `-${+new Date()}.${file.type.split("/")[1]}`,
|
||||||
@@ -95,7 +97,7 @@ const useUploadFile = (props?: IProps) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// setUploadingFile(false);
|
// 出错 则返回
|
||||||
if (!uploadResult || "error" in uploadResult) {
|
if (!uploadResult || "error" in uploadResult) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -157,7 +159,7 @@ const useUploadFile = (props?: IProps) => {
|
|||||||
2
|
2
|
||||||
),
|
),
|
||||||
uploadFile,
|
uploadFile,
|
||||||
isError: uploadFileError,
|
isError: uploadFileError || prepareFileError,
|
||||||
isSuccess: !!data,
|
isSuccess: !!data,
|
||||||
stageFiles,
|
stageFiles,
|
||||||
addStageFile,
|
addStageFile,
|
||||||
|
|||||||
Reference in New Issue
Block a user