Fix share mode by converting FileList to Array
This commit is contained in:
		
							parent
							
								
									ec520248b8
								
							
						
					
					
						commit
						351e7d42c9
					
				|  | @ -1082,7 +1082,7 @@ class PeersManager { | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     async _onFilesSelected(message) { |     async _onFilesSelected(message) { | ||||||
|         let files = await mime.addMissingMimeTypesToFiles(message.files); |         let files = mime.addMissingMimeTypesToFiles(message.files); | ||||||
|         await this.peers[message.to].requestFileTransfer(files); |         await this.peers[message.to].requestFileTransfer(files); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -179,10 +179,13 @@ class PeersUI { | ||||||
| 
 | 
 | ||||||
|         this._onDragEnd(); |         this._onDragEnd(); | ||||||
| 
 | 
 | ||||||
|         if ($$('x-peer') || !$$('x-peer').contains(e.target)) return; // dropped on peer
 |         if ($$('x-peer') && $$('x-peer').contains(e.target)) return; // dropped on peer
 | ||||||
| 
 | 
 | ||||||
|         const files = e.dataTransfer.files; |         let files = e.dataTransfer.files; | ||||||
|         const text = e.dataTransfer.getData("text"); |         let text = e.dataTransfer.getData("text"); | ||||||
|  | 
 | ||||||
|  |         // convert FileList to Array
 | ||||||
|  |         files = [...files]; | ||||||
| 
 | 
 | ||||||
|         if (files.length > 0) { |         if (files.length > 0) { | ||||||
|             Events.fire('activate-share-mode', { |             Events.fire('activate-share-mode', { | ||||||
|  | @ -215,8 +218,11 @@ class PeersUI { | ||||||
|         if (this.shareMode.active || Dialog.anyDialogShown()) return; |         if (this.shareMode.active || Dialog.anyDialogShown()) return; | ||||||
| 
 | 
 | ||||||
|         e.preventDefault() |         e.preventDefault() | ||||||
|         const files = e.clipboardData.files; |         let files = e.clipboardData.files; | ||||||
|         const text = e.clipboardData.getData("Text"); |         let text = e.clipboardData.getData("Text"); | ||||||
|  | 
 | ||||||
|  |         // convert FileList to Array
 | ||||||
|  |         files = [...files]; | ||||||
| 
 | 
 | ||||||
|         if (files.length > 0) { |         if (files.length > 0) { | ||||||
|             Events.fire('activate-share-mode', {files: files}); |             Events.fire('activate-share-mode', {files: files}); | ||||||
|  |  | ||||||
|  | @ -396,20 +396,20 @@ const mime = (() => { | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     return { |     return { | ||||||
|         async guessMimeByFilename(filename) { |         guessMimeByFilename(filename) { | ||||||
|             const split = filename.split('.'); |             const split = filename.split('.'); | ||||||
|             if (split.length === 1) { |             if (split.length === 1) { | ||||||
|                 // Filename does not include suffix
 |                 // Filename does not include suffix
 | ||||||
|                 return ""; |                 return false; | ||||||
|             } |             } | ||||||
|             const suffix = split[split.length - 1].toLowerCase(); |             const suffix = split[split.length - 1].toLowerCase(); | ||||||
|             return suffixToMimeMap[suffix] || ""; |             return suffixToMimeMap[suffix]; | ||||||
|         }, |         }, | ||||||
|         async addMissingMimeTypesToFiles(files) { |         addMissingMimeTypesToFiles(files) { | ||||||
|             // if filetype is empty guess via suffix otherwise leave unchanged
 |             // if filetype is empty guess via suffix otherwise leave unchanged
 | ||||||
|             for (let i = 0; i < files.length; i++) { |             for (let i = 0; i < files.length; i++) { | ||||||
|                 if (!files[i].type) { |                 if (!files[i].type) { | ||||||
|                     files[i] = new File([files[i]], files[i].name, {type: await mime.guessMimeByFilename(files[i].name) || ""}); |                     files[i] = new File([files[i]], files[i].name, {type: mime.guessMimeByFilename(files[i].name) || ""}); | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|             return files; |             return files; | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 schlagmichdoch
						schlagmichdoch