mirror of
https://github.com/transloadit/uppy.git
synced 2026-07-31 14:00:43 +00:00
83 lines
1.6 KiB
JavaScript
83 lines
1.6 KiB
JavaScript
/**
|
|
* 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()
|
|
})
|
|
}
|
|
}
|