Procházet zdrojové kódy

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

Call `removeFile` on each file when doing `cancelAll`
Artur Paikin před 6 roky
rodič
revize
04f3f723eb

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

@@ -505,8 +505,6 @@ class Uppy {
     if (removedFile.preview && isObjectURL(removedFile.preview)) {
     if (removedFile.preview && isObjectURL(removedFile.preview)) {
       URL.revokeObjectURL(removedFile.preview)
       URL.revokeObjectURL(removedFile.preview)
     }
     }
-
-    this.log(`Removed file: ${fileID}`)
   }
   }
 
 
   pauseResume (fileID) {
   pauseResume (fileID) {
@@ -588,16 +586,12 @@ class Uppy {
   cancelAll () {
   cancelAll () {
     this.emit('cancel-all')
     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({
     this.setState({
-      files: {},
       totalProgress: 0,
       totalProgress: 0,
       error: null
       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 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(core.getState().currentUploads[id]).toBeDefined()
+    expect(Object.keys(core.getState().files).length).toEqual(2)
 
 
     core.cancelAll()
     core.cancelAll()
 
 
     expect(core.getState().currentUploads[id]).toBeUndefined()
     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', () => {
   it('should close, reset and uninstall when the close method is called', () => {