From b120637127e03a550a39ae07dbdb4341593e3bc9 Mon Sep 17 00:00:00 2001 From: Silentoplayz <50341825+Silentoplayz@users.noreply.github.com> Date: Tue, 17 Jun 2025 23:27:45 -0400 Subject: [PATCH] fix: refine folder component's drag-&-drop error handling --- src/lib/components/common/Folder.svelte | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/src/lib/components/common/Folder.svelte b/src/lib/components/common/Folder.svelte index 1c5fdd7a9..20edab332 100644 --- a/src/lib/components/common/Folder.svelte +++ b/src/lib/components/common/Folder.svelte @@ -69,12 +69,22 @@ } } else { open = true; - - const dataTransfer = e.dataTransfer.getData('text/plain'); - const data = JSON.parse(dataTransfer); - - console.log(data); - dispatch('drop', data); + try { + const dataTransfer = e.dataTransfer.getData('text/plain'); + if (dataTransfer) { + const data = JSON.parse(dataTransfer); + console.log(data); + dispatch('drop', data); + } else { + console.log('Dropped text data is empty or not text/plain.'); + } + } catch (error) { + console.log( + 'Dropped data is not valid JSON text or is empty. Ignoring drop event for this type of data.' + ); + } finally { + draggedOver = false; + } } } } @@ -103,7 +113,7 @@ if (!dragAndDrop) { return; } - folderElement.addEventListener('dragover', onDragOver); + folderElement.removeEventListener('dragover', onDragOver); folderElement.removeEventListener('drop', onDrop); folderElement.removeEventListener('dragleave', onDragLeave); });