From ce1ee0a28fd050c3b6d97d8e744c0b8aa0662924 Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Wed, 27 Nov 2024 10:53:11 -0700 Subject: [PATCH] Close upload dialog when done and add toasts --- web/src/pages/FaceLibrary.tsx | 37 ++++++++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/web/src/pages/FaceLibrary.tsx b/web/src/pages/FaceLibrary.tsx index e955a17de..5ea215dfd 100644 --- a/web/src/pages/FaceLibrary.tsx +++ b/web/src/pages/FaceLibrary.tsx @@ -20,7 +20,7 @@ export default function FaceLibrary() { // face data - const { data: faceData } = useSWR("faces"); + const { data: faceData, mutate: refreshFaces } = useSWR("faces"); const faces = useMemo( () => (faceData ? Object.keys(faceData) : []), @@ -47,13 +47,36 @@ export default function FaceLibrary() { (file: File) => { const formData = new FormData(); formData.append("file", file); - axios.post(`faces/${pageToggle}`, formData, { - headers: { - "Content-Type": "multipart/form-data", - }, - }); + axios + .post(`faces/${pageToggle}`, formData, { + headers: { + "Content-Type": "multipart/form-data", + }, + }) + .then((resp) => { + if (resp.status == 200) { + setUpload(false); + refreshFaces(); + toast.success( + "Successfully uploaded iamge. View the file in the /exports folder.", + { position: "top-center" }, + ); + } + }) + .catch((error) => { + if (error.response?.data?.message) { + toast.error( + `Failed to upload image: ${error.response.data.message}`, + { position: "top-center" }, + ); + } else { + toast.error(`Failed to upload image: ${error.message}`, { + position: "top-center", + }); + } + }); }, - [pageToggle], + [pageToggle, refreshFaces], ); return (