Browse Source

Merge pull request #1058 from transloadit/chore/cancelAll-removeFile

Call `removeFile` on each file when doing `cancelAll`
Artur Paikin 6 years ago
parent
commit
04f3f723eb
2 changed files with 23 additions and 11 deletions
  1. 3 9
      packages/@uppy/core/src/index.js
  2. 20 2
      packages/@uppy/core/src/index.test.js

+ 3 - 9
packages/@uppy/core/src/index.js

@@ -505,8 +505,6 @@ class Uppy {
     if (removedFile.preview && isObjectURL(removedFile.preview)) {
       URL.revokeObjectURL(removedFile.preview)
     }
-
-    this.log(`Removed file: ${fileID}`)
   }
 
   pauseResume (fileID) {
@@ -588,16 +586,12 @@ class Uppy {
   cancelAll () {
     this.emit('cancel-all')
 
-    // TODO Or should we just call removeFile on all files?
-    const { currentUploads } = this.getState()
-    const uploadIDs = Object.keys(currentUploads)
-
-    uploadIDs.forEach((id) => {
-      this._removeUpload(id)
+    const files = Object.keys(this.getState().files)
+    files.forEach((fileID) => {
+      this.removeFile(fileID)
     })
 
     this.setState({
-      files: {},
       totalProgress: 0,
       error: null
     })

+ 20 - 2
packages/@uppy/core/src/index.test.js

@@ -240,15 +240,33 @@ describe('src/Core', () => {
     })
   })
 
-  it('should clear all uploads on cancelAll()', () => {
+  it('should clear all uploads and files on cancelAll()', () => {
     const core = new Core()
-    const id = core._createUpload([ 'a', 'b' ])
+
+    core.addFile({
+      source: 'jest',
+      name: 'foo1.jpg',
+      type: 'image/jpeg',
+      data: new File([sampleImage], { type: 'image/jpeg' })
+    })
+
+    core.addFile({
+      source: 'jest',
+      name: 'foo2.jpg',
+      type: 'image/jpeg',
+      data: new File([sampleImage], { type: 'image/jpeg' })
+    })
+
+    const fileIDs = Object.keys(core.getState().files)
+    const id = core._createUpload(fileIDs)
 
     expect(core.getState().currentUploads[id]).toBeDefined()
+    expect(Object.keys(core.getState().files).length).toEqual(2)
 
     core.cancelAll()
 
     expect(core.getState().currentUploads[id]).toBeUndefined()
+    expect(Object.keys(core.getState().files).length).toEqual(0)
   })
 
   it('should close, reset and uninstall when the close method is called', () => {