Переглянути джерело

@uppy/drop-target: ignore if dropped elements aren't files (#3563)

Co-authored-by: Merlijn Vos <merlijn@soverin.net>
Penar Musaraj 3 роки тому
батько
коміт
aab74a99f4
1 змінених файлів з 17 додано та 0 видалено
  1. 17 0
      packages/@uppy/drop-target/src/index.js

+ 17 - 0
packages/@uppy/drop-target/src/index.js

@@ -45,7 +45,16 @@ module.exports = class DropTarget extends BasePlugin {
     }
   }
 
+  isFileTransfer = (event) => {
+    const transferTypes = event.dataTransfer.types ?? []
+    return transferTypes.some((type) => type === 'Files')
+  }
+
   handleDrop = async (event) => {
+    if (!this.isFileTransfer(event)) {
+      return
+    }
+
     event.preventDefault()
     event.stopPropagation()
     clearTimeout(this.removeDragOverClassTimeout)
@@ -85,6 +94,10 @@ module.exports = class DropTarget extends BasePlugin {
   }
 
   handleDragOver = (event) => {
+    if (!this.isFileTransfer(event)) {
+      return
+    }
+
     event.preventDefault()
     event.stopPropagation()
 
@@ -100,6 +113,10 @@ module.exports = class DropTarget extends BasePlugin {
   }
 
   handleDragLeave = (event) => {
+    if (!this.isFileTransfer(event)) {
+      return
+    }
+
     event.preventDefault()
     event.stopPropagation()