Browse Source

move this.el.addEventListener to onMount

so that they are only set when `this.el` is actually available
Artur Paikin 6 years ago
parent
commit
e16b71886b
1 changed files with 21 additions and 11 deletions
  1. 21 11
      packages/@uppy/url/src/index.js

+ 21 - 11
packages/@uppy/url/src/index.js

@@ -141,8 +141,12 @@ module.exports = class Url extends Plugin {
         }
         }
       })
       })
       .then(() => {
       .then(() => {
-        const dashboard = this.uppy.getPlugin('Dashboard')
-        if (dashboard) dashboard.hideAllPanels()
+        // Close the Dashboard panel if plugin is installed
+        // into Dashboard (could be other parent UI plugin)
+        // const parent = this.uppy.getPlugin(this.parent)
+        // if (parent && parent.hideAllPanels) {
+        //   parent.hideAllPanels()
+        // }
       })
       })
       .catch((err) => {
       .catch((err) => {
         this.uppy.log(err)
         this.uppy.log(err)
@@ -206,23 +210,29 @@ module.exports = class Url extends Plugin {
       addFile={this.addFile} />
       addFile={this.addFile} />
   }
   }
 
 
+  onMount () {
+    if (this.el) {
+      this.el.addEventListener('drop', this.handleDrop)
+      this.el.addEventListener('dragover', this.handleDragOver)
+      this.el.addEventListener('dragleave', this.handleDragLeave)
+      this.el.addEventListener('paste', this.handlePaste)
+    }
+  }
+
   install () {
   install () {
     const target = this.opts.target
     const target = this.opts.target
     if (target) {
     if (target) {
       this.mount(target, this)
       this.mount(target, this)
     }
     }
-
-    this.el.addEventListener('drop', this.handleDrop)
-    this.el.addEventListener('dragover', this.handleDragOver)
-    this.el.addEventListener('dragleave', this.handleDragLeave)
-    this.el.addEventListener('paste', this.handlePaste)
   }
   }
 
 
   uninstall () {
   uninstall () {
-    this.el.removeEventListener('drop', this.handleDrop)
-    this.el.removeEventListener('dragover', this.handleDragOver)
-    this.el.removeEventListener('dragleave', this.handleDragLeave)
-    this.el.removeEventListener('paste', this.handlePaste)
+    if (this.el) {
+      this.el.removeEventListener('drop', this.handleDrop)
+      this.el.removeEventListener('dragover', this.handleDragOver)
+      this.el.removeEventListener('dragleave', this.handleDragLeave)
+      this.el.removeEventListener('paste', this.handlePaste)
+    }
 
 
     this.unmount()
     this.unmount()
   }
   }