From c12209629fbac2ac6f6341bc78e4c8e7850f227e Mon Sep 17 00:00:00 2001 From: Juliet Date: Tue, 10 Mar 2026 23:38:48 +0000 Subject: [PATCH] add loading screen --- web/src/pages/Upload.tsx | 225 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------------------- 1 file(s) changed, 116 insertion(s)(+), 109 deletion(s)(-) diff --git a/web/src/pages/Upload.tsx b/web/src/pages/Upload.tsx --- a/web/src/pages/Upload.tsx +++ b/web/src/pages/Upload.tsx @@ -40,6 +40,7 @@ const [maxFileSize, setMaxFileSize] = createSignal(0); const [maxTtl, setMaxTtl] = createSignal(""); const [expiryValue, setExpiryValue] = createSignal(""); + const [loading, setLoading] = createSignal(true); let fileInput!: HTMLInputElement; let activeXhr: XMLHttpRequest | null = null; @@ -142,6 +143,7 @@ } } } catch {} + setLoading(false); }); onCleanup(() => { @@ -295,123 +297,128 @@
- -
- - expires in {expiryValue()} - - - -
+ + loading… - - -
- - {progress()}% - - - {status() === "encrypting" - ? "encrypting\u2026" - : "uploading\u2026"} - - -
-
- - -
- + + +
- {file()!.name} + expires in {expiryValue()} - + {copied() ? "copied!" : "copy link"} + + - -
-
+ new drop + +
+
- -
- - drop a file, or - - - + +
+ + {progress()}% + - up to {formatBytes(maxFileSize())} + {status() === "encrypting" + ? "encrypting\u2026" + : "uploading\u2026"} - -
+ +
+
+ + +
+ + + {file()!.name} + + + {tooLarge() + ? `${formatBytes(file()!.size)} / ${formatBytes(maxFileSize())}` + : formatBytes(file()!.size)} + + + + +
+
+ + +
+ + drop a file, or + + + + + up to {formatBytes(maxFileSize())} + + +
+
@@ -425,7 +432,7 @@ /> - +