From 18d78914640e9ded2734ae9da987a3d3eeebc225 Mon Sep 17 00:00:00 2001 From: Lucas Oliveira Date: Thu, 6 Jun 2024 18:54:02 -0300 Subject: [PATCH] Added error catching on folder upload --- .../components/sideBarFolderButtons/index.tsx | 16 ++++++++++--- src/frontend/src/stores/foldersStore.tsx | 23 ++++++++++++------- 2 files changed, 28 insertions(+), 11 deletions(-) diff --git a/src/frontend/src/components/sidebarComponent/components/sideBarFolderButtons/index.tsx b/src/frontend/src/components/sidebarComponent/components/sideBarFolderButtons/index.tsx index b887c2aab..3586596d6 100644 --- a/src/frontend/src/components/sidebarComponent/components/sideBarFolderButtons/index.tsx +++ b/src/frontend/src/components/sidebarComponent/components/sideBarFolderButtons/index.tsx @@ -13,6 +13,7 @@ import IconComponent, { import { Button, buttonVariants } from "../../../ui/button"; import { Input } from "../../../ui/input"; import useFileDrop from "../../hooks/use-on-file-drop"; +import useAlertStore from "../../../../stores/alertStore"; type SideBarFoldersButtonsComponentProps = { folders: FolderType[]; @@ -51,6 +52,7 @@ const SideBarFoldersButtonsComponent = ({ const location = useLocation(); const folderId = location?.state?.folderId ?? myCollectionId; const getFolderById = useFolderStore((state) => state.getFolderById); + const setErrorData = useAlertStore((state) => state.setErrorData); const handleFolderChange = (folderId: string) => { getFolderById(folderId); @@ -62,9 +64,17 @@ const SideBarFoldersButtonsComponent = ({ ); const handleUploadFlowsToFolder = () => { - uploadFolder(folderId).then(() => { - getFolderById(folderId); - }); + uploadFolder(folderId) + .then(() => { + getFolderById(folderId); + }) + .catch((err) => { + console.log(err); + setErrorData({ + title: `Error on upload`, + list: [err["response"]["data"]], + }); + }); }; const handleDownloadFolder = (id: string) => { diff --git a/src/frontend/src/stores/foldersStore.tsx b/src/frontend/src/stores/foldersStore.tsx index 4b878e764..9284c426f 100644 --- a/src/frontend/src/stores/foldersStore.tsx +++ b/src/frontend/src/stores/foldersStore.tsx @@ -101,7 +101,7 @@ export const useFolderStore = create((set, get) => ({ folderIdDragging: "", setFolderIdDragging: (id) => set(() => ({ folderIdDragging: id })), uploadFolder: () => { - return new Promise((resolve) => { + return new Promise((resolve, reject) => { const input = document.createElement("input"); input.type = "file"; input.onchange = (event: Event) => { @@ -120,15 +120,22 @@ export const useFolderStore = create((set, get) => ({ .addFlow(true, data) .then(() => { resolve(); + }) + .catch((error) => { + reject(error); }); } else { - uploadFlowsFromFolders(formData).then(() => { - get() - .getFoldersApi(true) - .then(() => { - resolve(); - }); - }); + uploadFlowsFromFolders(formData) + .then(() => { + get() + .getFoldersApi(true) + .then(() => { + resolve(); + }); + }) + .catch((error) => { + reject(error); + }); } }); }