From 836c1118d99fc5c931b66034dee5ff7d8fc89583 Mon Sep 17 00:00:00 2001 From: Jiku Godwill Nsanwi <65053264+Jikugodwill@users.noreply.github.com> Date: Mon, 8 Jul 2024 14:11:53 +0100 Subject: [PATCH] added upload statuses (#464) * Added logic to handle various upload phases * Update apps/old/widget/components/UploadField.jsx Co-authored-by: Megha <100185149+Megha-Dev-19@users.noreply.github.com> * accepted variable name change --------- Co-authored-by: Megha <100185149+Megha-Dev-19@users.noreply.github.com> --- apps/old/widget/components/UploadField.jsx | 62 ++++++++++++++++++---- 1 file changed, 53 insertions(+), 9 deletions(-) diff --git a/apps/old/widget/components/UploadField.jsx b/apps/old/widget/components/UploadField.jsx index 5786a03c..e08c971a 100644 --- a/apps/old/widget/components/UploadField.jsx +++ b/apps/old/widget/components/UploadField.jsx @@ -1,15 +1,47 @@ +const initialMsg = ( + <> + +
+

Choose a file or drag & drop it here.

+

JPEG, PNG, PDF, and MP4 formats, up to 50 MB.

+
+ +); + const [img, setImg] = useState(""); -const [msg, setMsg] = useState("Upload"); +const [displayText, setDisplayText] = useState(initialMsg); + +const SpinningIcon = styled.i` + animation: spin 0.8s linear infinite; + @keyframes spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } + } +`; const uploadFile = (files) => { - setMsg("Uploading..."); + setDisplayText( + <> + +

Uploading...

+ , + ); asyncFetch("https://ipfs.near.social/add", { method: "POST", headers: { Accept: "application/json" }, body: files[0], }) .catch((e) => { - console.error(e); - setMsg("Failed to upload"); + console.error("Upload error:", e); + setDisplayText( + <> + +

Failed to upload. Please try again.

+ , + ); }) .then((res) => { setImg(res.body.cid); @@ -18,6 +50,22 @@ const uploadFile = (files) => { ipfs_cid: res.body.cid, }); } + if (res.body.cid) { + setDisplayText( + <> + +

Upload successful!

+ , + ); + setTimeout(() => setDisplayText(""), 1500); + } else { + setDisplayText( + <> + +

Failed to upload. Please try again.

+ , + ); + } }); }; @@ -102,11 +150,7 @@ const UploadedImage = styled.img` return ( - -
-

Choose a file or drag & drop it here.

-

JPEG, PNG, PDF, and MP4 formats, up to 50 MB.

-
+ {msg}