Ver código fonte

dashboard: auto-discover previously added provider plugins

Renée Kooi 7 anos atrás
pai
commit
bd506d8425
2 arquivos alterados com 13 adições e 0 exclusões
  1. 3 0
      examples/react-example/App.js
  2. 10 0
      src/plugins/Dashboard/index.js

+ 3 - 0
examples/react-example/App.js

@@ -2,6 +2,8 @@
 const React = require('react')
 const React = require('react')
 const Uppy = require('uppy/lib/core')
 const Uppy = require('uppy/lib/core')
 const Tus10 = require('uppy/lib/plugins/Tus10')
 const Tus10 = require('uppy/lib/plugins/Tus10')
+const GoogleDrive = require('uppy/lib/plugins/GoogleDrive')
+const DashboardPlugin = require('uppy/lib/plugins/Dashboard')
 const { Dashboard, DashboardModal, DragDrop, ProgressBar } = require('uppy/lib/uppy-react')
 const { Dashboard, DashboardModal, DragDrop, ProgressBar } = require('uppy/lib/uppy-react')
 
 
 module.exports = class App extends React.Component {
 module.exports = class App extends React.Component {
@@ -19,6 +21,7 @@ module.exports = class App extends React.Component {
   componentWillMount () {
   componentWillMount () {
     this.uppy = new Uppy({ autoProceed: false })
     this.uppy = new Uppy({ autoProceed: false })
       .use(Tus10, { endpoint: 'https://master.tus.io/files' })
       .use(Tus10, { endpoint: 'https://master.tus.io/files' })
+      .use(GoogleDrive, { target: DashboardPlugin, host: 'https://server.uppy.io' })
       .run()
       .run()
 
 
     this.uppy2 = new Uppy({ autoProceed: false })
     this.uppy2 = new Uppy({ autoProceed: false })

+ 10 - 0
src/plugins/Dashboard/index.js

@@ -402,6 +402,14 @@ module.exports = class DashboardUI extends Plugin {
     })
     })
   }
   }
 
 
+  discoverProviderPlugins () {
+    this.core.iteratePlugins((plugin) => {
+      if (plugin && !plugin.target && plugin.opts && plugin.opts.target === this.constructor) {
+        this.addTarget(plugin)
+      }
+    })
+  }
+
   install () {
   install () {
     // Set default state for Modal
     // Set default state for Modal
     this.core.setState({modal: {
     this.core.setState({modal: {
@@ -427,6 +435,8 @@ module.exports = class DashboardUI extends Plugin {
       })
       })
     }
     }
 
 
+    this.discoverProviderPlugins()
+
     this.initEvents()
     this.initEvents()
     this.actions()
     this.actions()
   }
   }