mirror of
https://github.com/schlagmichdoch/PairDrop.git
synced 2025-04-20 15:06:15 -04:00
Fix share mode by converting FileList to Array
This commit is contained in:
parent
ec520248b8
commit
351e7d42c9
3 changed files with 17 additions and 11 deletions
|
@ -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…
Add table
Add a link
Reference in a new issue