Browse Source

refac: message drag file input

Timothy J. Baek 1 year ago
parent
commit
df3d95bf2a
1 changed files with 17 additions and 7 deletions
  1. 17 7
      src/lib/components/chat/MessageInput.svelte

+ 17 - 7
src/lib/components/chat/MessageInput.svelte

@@ -119,12 +119,16 @@
 	onMount(() => {
 		const dropZone = document.querySelector('body');
 
-		dropZone?.addEventListener('dragover', (e) => {
+		const onDragOver = (e) => {
 			e.preventDefault();
 			dragged = true;
-		});
+		};
+
+		const onDragLeave = () => {
+			dragged = false;
+		};
 
-		dropZone.addEventListener('drop', async (e) => {
+		const onDrop = async (e) => {
 			e.preventDefault();
 			console.log(e);
 
@@ -158,11 +162,17 @@
 			}
 
 			dragged = false;
-		});
+		};
 
-		dropZone?.addEventListener('dragleave', () => {
-			dragged = false;
-		});
+		dropZone?.addEventListener('dragover', onDragOver);
+		dropZone?.addEventListener('drop', onDrop);
+		dropZone?.addEventListener('dragleave', onDragLeave);
+
+		return () => {
+			dropZone?.removeEventListener('dragover', onDragOver);
+			dropZone?.removeEventListener('drop', onDrop);
+			dropZone?.removeEventListener('dragleave', onDragLeave);
+		};
 	});
 </script>