From 34fa2bb524643ff194eaabc084b44c35f62e2c85 Mon Sep 17 00:00:00 2001 From: Fernando Porazzi Date: Wed, 8 Nov 2023 18:59:21 +0100 Subject: [PATCH] allow upload of files using drag and drop --- .../app/src/Element/Event/NoteCreator.tsx | 23 ++++++++++++++++++- packages/app/src/Element/Textarea.tsx | 3 +++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/packages/app/src/Element/Event/NoteCreator.tsx b/packages/app/src/Element/Event/NoteCreator.tsx index 986895a6..1284302e 100644 --- a/packages/app/src/Element/Event/NoteCreator.tsx +++ b/packages/app/src/Element/Event/NoteCreator.tsx @@ -12,7 +12,7 @@ import ProfileImage from "Element/User/ProfileImage"; import useFileUpload from "Upload"; import Note from "Element/Event/Note"; -import { ClipboardEventHandler } from "react"; +import { ClipboardEventHandler, DragEvent } from "react"; import useLogin from "Hooks/useLogin"; import { GetPowWorker } from "index"; import AsyncButton from "Element/AsyncButton"; @@ -505,6 +505,24 @@ export function NoteCreator() { } }; + const handleDragOver = (event: DragEvent) => { + event.preventDefault(); + }; + + const handleDragLeave = (event: DragEvent) => { + event.preventDefault(); + }; + + const handleDrop = (event: DragEvent) => { + event.preventDefault(); + + const droppedFiles = Array.from(event.dataTransfer.files); + + droppedFiles.forEach(async file => { + await uploadFile(file); + }) + }; + function noteCreatorForm() { return ( <> @@ -550,6 +568,9 @@ export function NoteCreator() { {!note.preview && (