Jelajahi Sumber

robodog: Add events properties...

Renée Kooi 6 tahun lalu
induk
melakukan
5b20f39a2f
2 mengubah file dengan 49 tambahan dan 12 penghapusan
  1. 38 1
      packages/@uppy/robodog/src/createUppy.js
  2. 11 11
      website/src/docs/robodog-form.md

+ 38 - 1
packages/@uppy/robodog/src/createUppy.js

@@ -1,5 +1,24 @@
 const Uppy = require('@uppy/core')
 
+const eventNames = {
+  onFileAdded: 'file-added',
+  onFileRemoved: 'file-removed',
+
+  onAssemblyCreated: 'transloadit:assembly-created',
+  onAssemblyExecuting: 'transloadit:assembly-executing',
+  onAssemblyComplete: 'transloadit:complete',
+
+  onStart: 'upload',
+  onPause: 'pause-all',
+  onFilePause: 'upload-pause',
+  onCancel: 'cancel-all',
+  onFileCancel: 'upload-cancel',
+  onFileProgress: 'upload-progress',
+  onUploaded: 'transloadit:upload',
+  onResult: 'transloadit:result',
+  onComplete: 'complete'
+}
+
 const uppyOptionNames = [
   'autoProceed',
   'restrictions',
@@ -14,7 +33,25 @@ function createUppy (opts, overrides = {}) {
   })
   Object.assign(uppyOptions, overrides)
 
-  return Uppy(uppyOptions)
+  const uppy = Uppy(uppyOptions)
+
+  // Builtin event aliases
+  Object.keys(eventNames).forEach((optionName) => {
+    const eventName = eventNames[optionName]
+    if (typeof opts[optionName] === 'function') {
+      uppy.on(eventName, opts[optionName])
+    }
+  })
+
+  // Custom events (these should probably be added to core)
+  if (typeof opts.onProgress === 'function') {
+    uppy.on('upload-progress', () => {
+      const { totalProgress } = uppy.getState()
+      opts.onProgress.call(uppy, totalProgress)
+    })
+  }
+
+  return uppy
 }
 
 module.exports = createUppy

+ 11 - 11
website/src/docs/robodog-form.md

@@ -146,14 +146,14 @@ The `transloadit.form()` method returns an Uppy object, so you can listen to eve
 
 | jQuery option | Robodog Event |
 |---------------|--------------------------|
-| `onStart` | `uppy.on('transloadit:assembly-created')` |
-| `onExecuting` | `uppy.on('transloadit:assembly-executing')` |
-| `onFileSelect` | No longer supported, attach a listener to the DOM element instead. |
-| `onProgress` | `uppy.on('upload-progress')`, then call `uppy.getState().totalProgress` |
-| `onUpload` | `uppy.on('transloadit:upload')` |
-| `onResult` | `uppy.on('transloadit:result')` |
-| `onCancel` | `uppy.on('cancel-all')` |
-| `onError` | `uppy.on('error')` |
-| `onSuccess` | `uppy.on('complete')` |
-| `onDisconnect` | Currently unavailable |
-| `onReconnect` | Currently unavailable |
+| `onStart` | `onAssemblyCreated` |
+| `onExecuting` | `onAssemblyExecuting` |
+| `onFileSelect` | `onFileAdded` |
+| `onProgress` | `onProgress` |
+| `onUpload` | `onUpload` |
+| `onResult` | `onResult` |
+| `onCancel` | `onCancel` (or `onFileCancel` for individual files) |
+| `onError` | `onError` |
+| `onSuccess` | `onComplete` |
+| `onDisconnect` | Currently unavailable, use something like [`is-offline`](https://www.npmjs.com/package/is-offline) |
+| `onReconnect` | Currently unavailable, use something like [`is-offline`](https://www.npmjs.com/package/is-offline) |