From 7a350f7266062d3310a3caec02cc0daa9602a1e5 Mon Sep 17 00:00:00 2001
From: Jose Manuel Serrano Amaut <a20122128@pucp.pe>
Date: Fri, 3 Mar 2023 00:08:56 -0500
Subject: [PATCH] [FEAT]: Add method for setting next uploadStatus given the
 new status

---
 src/files-ui/core/index.ts               |  3 +-
 src/files-ui/core/upload/index.ts        |  3 +-
 src/files-ui/core/upload/utils.upload.ts | 39 ++++++++++++++++++------
 3 files changed, 34 insertions(+), 11 deletions(-)

diff --git a/src/files-ui/core/index.ts b/src/files-ui/core/index.ts
index 8d276ea..0c91871 100644
--- a/src/files-ui/core/index.ts
+++ b/src/files-ui/core/index.ts
@@ -118,7 +118,8 @@ export {
     addExtraData,
     addHeaders,
     sanitizeArrExtFile,
-    unexpectedErrorUploadResult
+    unexpectedErrorUploadResult,
+    setNextUploadStatus
 } from "./upload";
 
 export {
diff --git a/src/files-ui/core/upload/index.ts b/src/files-ui/core/upload/index.ts
index 5140796..db4a27d 100644
--- a/src/files-ui/core/upload/index.ts
+++ b/src/files-ui/core/upload/index.ts
@@ -30,5 +30,6 @@ export {
     completeUploadResult,
     sanitizeArrExtFile,
     unableToUploadResult,
-    unexpectedErrorUploadResult
+    unexpectedErrorUploadResult,
+    setNextUploadStatus
 } from "./utils.upload";
diff --git a/src/files-ui/core/upload/utils.upload.ts b/src/files-ui/core/upload/utils.upload.ts
index 2c07d1a..121f7a5 100644
--- a/src/files-ui/core/upload/utils.upload.ts
+++ b/src/files-ui/core/upload/utils.upload.ts
@@ -116,21 +116,42 @@ export const sleepTransition = (
 }
 
 export const sanitizeArrExtFile = (arrExtFile: ExtFileInstance[]): ExtFile[] => {
-    /*  console.log("sanitizeArrExtFile", arrExtFile.length, arrExtFile.filter((extFileInstance: ExtFileInstance) => extFileInstance.extraData?.deleted)
-     .map((extFileInstance: ExtFileInstance) => extFileInstance.toExtFile()).length);
-      */
-
     return arrExtFile.filter((extFileInstance: ExtFileInstance) =>
         !extFileInstance.extraData?.deleted)
         .map((extFileInstance: ExtFileInstance) => {
-            if (extFileInstance.uploadStatus === "aborted") {
-                if(!extFileInstance.uploadMessage){
-                    extFileInstance.uploadMessage="Upload aborted";
-                }
-                extFileInstance.uploadStatus = "error";
+            if (extFileInstance.uploadStatus === "aborted"
+                && !extFileInstance.uploadMessage) {
+                extFileInstance.uploadMessage = "Upload aborted by user";
+                //extFileInstance.uploadStatus = "error";
             }
 
             return extFileInstance.toExtFile()
         });
+}
+/**
+ * 
+ * @param extFileInstance 
+ * @param extFileobj 
+ */
+export const setNextUploadStatus = (
+    extFileInstance: ExtFileInstance,
+    extFileobj: ExtFile) => {
+
+    const prevStatus: UPLOADSTATUS | undefined = extFileInstance.uploadStatus;
+    const nextStstaus: UPLOADSTATUS | undefined = extFileobj.uploadStatus;
+
+    if (
+        prevStatus === "preparing" &&
+        ["aborted", undefined].includes(nextStstaus)
+    ) {
+        extFileInstance.uploadStatus = undefined;
+    } else if (
+        prevStatus === "uploading" &&
+        ["aborted", undefined].includes(nextStstaus)
+    ) {
+        extFileInstance.uploadStatus = "aborted";
+
+    }
+    extFileInstance.uploadMessage = extFileobj.uploadMessage;
 
 }
\ No newline at end of file
-- 
GitLab