From 6c5df3bbf1d5e522b40c7095dabfc2377a76ff33 Mon Sep 17 00:00:00 2001 From: Avi Flombaum <4515+aviflombaum@users.noreply.github.com> Date: Mon, 7 Aug 2023 06:08:07 -0400 Subject: [PATCH] Drag and Drop files --- .../controllers/uploadzone_controller.js | 22 +++++++++++++++++-- app/views/tracks/new.html.erb | 2 +- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/app/javascript/controllers/uploadzone_controller.js b/app/javascript/controllers/uploadzone_controller.js index 245585a..5b4f1ee 100644 --- a/app/javascript/controllers/uploadzone_controller.js +++ b/app/javascript/controllers/uploadzone_controller.js @@ -1,11 +1,29 @@ import { Controller } from "@hotwired/stimulus"; -// Connects to data-controller="uploadzone" export default class extends Controller { static targets = ["fileInput"]; - connect() {} + connect() { + this.element.addEventListener("dragover", this.preventDragDefaults); + this.element.addEventListener("dragenter", this.preventDragDefaults); + } + + disconnect() { + this.element.removeEventListener("dragover", this.preventDragDefaults); + this.element.removeEventListener("dragenter", this.preventDragDefaults); + } + + preventDragDefaults(e) { + e.preventDefault(); + e.stopPropagation(); + } trigger() { this.fileInputTarget.click(); } + + acceptFiles(event) { + event.preventDefault(); + const files = event.dataTransfer ? event.dataTransfer.files : event.target.files; + debugger; + } } diff --git a/app/views/tracks/new.html.erb b/app/views/tracks/new.html.erb index 13a8f24..a7fed54 100644 --- a/app/views/tracks/new.html.erb +++ b/app/views/tracks/new.html.erb @@ -1,6 +1,6 @@
-
+