From 8da7a70bfc7daa1fc4c7dac8cc487a5d9a2d9632 Mon Sep 17 00:00:00 2001 From: Alexander-Ger-Reich <50119493+Alexander-Ger-Reich@users.noreply.github.com> Date: Tue, 9 Dec 2025 23:23:40 +0100 Subject: [PATCH] Update download.tsx --- web/src/pages/desktop/menu/download.tsx | 89 ++++++++++++++++++++----- 1 file changed, 74 insertions(+), 15 deletions(-) diff --git a/web/src/pages/desktop/menu/download.tsx b/web/src/pages/desktop/menu/download.tsx index dd21e9a..a69ed55 100644 --- a/web/src/pages/desktop/menu/download.tsx +++ b/web/src/pages/desktop/menu/download.tsx @@ -21,6 +21,7 @@ export const DownloadImage = () => { const [popoverKey, setPopoverKey] = useState(0); const inputRef = useRef(null); + const [selectedFile, setSelectedFile] = useState(null); const intervalId = useRef(undefined); @@ -110,6 +111,22 @@ export const DownloadImage = () => { }); } + function handleFileChange(e: React.ChangeEvent) { + setSelectedFile(e.target.files?.[0] ?? null); + } + + function upload(file: File | null) { + if (!file) return; + + const formData = new FormData(); + formData.append("file", file); + + fetch("/api/download/file", { + method: "POST", + body: formData, + }); + } + const content = (
@@ -122,21 +139,63 @@ export const DownloadImage = () => {
{t('download.disabled')}
) : ( <> -
{t('download.input')}
-
- - +
+
{t('download.input')}
+
+ + +
+
+
+
{t('upload.input')}
+
+
{ + e.preventDefault(); + }} + onDrop={(e) => { + e.preventDefault(); + const file = e.dataTransfer.files?.[0] ?? null; + setSelectedFile(file); + }} + onClick={() => document.getElementById("file-upload")?.click()} + > + + {selectedFile ? selectedFile.name : "Datei hier ablegen oder klicken zum Auswählen"} + + + +
+ +
)}