UNPKG

@uppy/utils

Version:

Shared utility functions for Uppy Core and plugins maintained by the Uppy team.

84 lines (71 loc) 1.67 kB
/** * Create a wrapper around an event emitter with a `remove` method to remove * all events that were added using the wrapped emitter. */ export default class EventManager { #uppy #events = [] constructor (uppy) { this.#uppy = uppy } on (event, fn) { this.#events.push([event, fn]) return this.#uppy.on(event, fn) } remove () { for (const [event, fn] of this.#events.splice(0)) { this.#uppy.off(event, fn) } } onFilePause (fileID, cb) { this.on('upload-pause', (targetFileID, isPaused) => { if (fileID === targetFileID) { cb(isPaused) } }) } onFileRemove (fileID, cb) { this.on('file-removed', (file) => { if (fileID === file.id) cb(file.id) }) } onPause (fileID, cb) { this.on('upload-pause', (targetFileID, isPaused) => { if (fileID === targetFileID) { // const isPaused = this.#uppy.pauseResume(fileID) cb(isPaused) } }) } onRetry (fileID, cb) { this.on('upload-retry', (targetFileID) => { if (fileID === targetFileID) { cb() } }) } onRetryAll (fileID, cb) { this.on('retry-all', () => { if (!this.#uppy.getFile(fileID)) return cb() }) } onPauseAll (fileID, cb) { this.on('pause-all', () => { if (!this.#uppy.getFile(fileID)) return cb() }) } onCancelAll (fileID, eventHandler) { this.on('cancel-all', (...args) => { if (!this.#uppy.getFile(fileID)) return eventHandler(...args) }) } onResumeAll (fileID, cb) { this.on('resume-all', () => { if (!this.#uppy.getFile(fileID)) return cb() }) } }