improve add resources error handling (#769)
This commit is contained in:
@@ -297,7 +297,8 @@
|
||||
"addResource": "add resource",
|
||||
"addResourceFromUrlOrLocal": "add resource from url or local",
|
||||
"resourceAdded": "Resource added",
|
||||
"resourcesAdded": "{{fulfilled}} resources added, {{rejected}} failed to add.",
|
||||
"resourcesAdded": "{{fulfilled}} resources added, {{rejected}} failed to add. {{reasons}}",
|
||||
"resourcesAddInBatchLimitError": "You can only add {{limit}} resources at a time",
|
||||
"editResource": "edit resource",
|
||||
"deleteResource": "delete resource",
|
||||
"deleteResourceConfirmation": "Are you sure to delete {{name}}?",
|
||||
|
||||
@@ -297,7 +297,8 @@
|
||||
"addResource": "添加资源",
|
||||
"addResourceFromUrlOrLocal": "添加资源, 可以是 URL 或本地文件",
|
||||
"resourceAdded": "资源添加成功",
|
||||
"resourcesAdded": "成功添加 {{fulfilled}} 个资源, {{rejected}} 个资源添加失败",
|
||||
"resourcesAdded": "成功添加 {{fulfilled}} 个资源, {{rejected}} 个资源添加失败。{{reasons}}",
|
||||
"resourcesAddInBatchLimitError": "一次最多添加 {{limit}} 个资源",
|
||||
"editResource": "编辑资源",
|
||||
"deleteResource": "删除资源",
|
||||
"deleteResourceConfirmation": "您确定要删除资源 {{name}} 吗?",
|
||||
|
||||
@@ -40,23 +40,42 @@ export const AddMediaButton = (props: { type?: "Audio" | "Video" }) => {
|
||||
|
||||
const handleSubmit = async () => {
|
||||
if (!uri) return;
|
||||
if (files.length > 50) {
|
||||
toast.error(t("resourcesAddInBatchLimitError", { limit: 50 }));
|
||||
return;
|
||||
}
|
||||
|
||||
setSubmitting(true);
|
||||
|
||||
setTimeout(() => {
|
||||
setSubmitting(false);
|
||||
}, 3000);
|
||||
|
||||
if (files.length > 0) {
|
||||
if (files.length > 1) {
|
||||
Promise.allSettled(files.map((f) => EnjoyApp.audios.create(f)))
|
||||
.then((results) => {
|
||||
const fulfilled = results.filter(
|
||||
(r) => r.status === "fulfilled"
|
||||
).length;
|
||||
const rejected = results.filter(
|
||||
(r) => r.status === "rejected"
|
||||
).length;
|
||||
const fulfilled = results.filter((r) => r.status === "fulfilled");
|
||||
const rejected = results.filter((r) => r.status === "rejected");
|
||||
|
||||
toast.success(t("resourcesAdded", { fulfilled, rejected }));
|
||||
if (fulfilled.length === 0) {
|
||||
toast.error(
|
||||
t("resourcesAdded", {
|
||||
fulfilled: fulfilled.length,
|
||||
rejected: rejected.length,
|
||||
})
|
||||
);
|
||||
} else if (rejected.length > 0) {
|
||||
toast.warning(
|
||||
t("resourcesAdded", {
|
||||
fulfilled: fulfilled.length,
|
||||
rejected: rejected.length,
|
||||
reasons: rejected.map((r: any) => r.reason?.message).join("; "),
|
||||
})
|
||||
);
|
||||
} else {
|
||||
toast.success(
|
||||
t("resourcesAdded", {
|
||||
fulfilled: fulfilled.length,
|
||||
rejected: rejected.length,
|
||||
})
|
||||
);
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
toast.error(err.message);
|
||||
|
||||
Reference in New Issue
Block a user