Skip to content

Commit 8826893

Browse files
Merge pull request #372 from schlagmichdoch/fix-share-mode
Fix share-mode and enable pasting for Firefox users
2 parents 94096aa + efc360e commit 8826893

File tree

4 files changed

+17
-17
lines changed

4 files changed

+17
-17
lines changed

public/scripts/network.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1082,7 +1082,7 @@ class PeersManager {
10821082
}
10831083

10841084
async _onFilesSelected(message) {
1085-
let files = await mime.addMissingMimeTypesToFiles(message.files);
1085+
let files = mime.addMissingMimeTypesToFiles(message.files);
10861086
await this.peers[message.to].requestFileTransfer(files);
10871087
}
10881088

public/scripts/ui.js

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -179,10 +179,13 @@ class PeersUI {
179179

180180
this._onDragEnd();
181181

182-
if ($$('x-peer') || !$$('x-peer').contains(e.target)) return; // dropped on peer
182+
if ($$('x-peer') && $$('x-peer').contains(e.target)) return; // dropped on peer
183183

184-
const files = e.dataTransfer.files;
185-
const text = e.dataTransfer.getData("text");
184+
let files = e.dataTransfer.files;
185+
let text = e.dataTransfer.getData("text");
186+
187+
// convert FileList to Array
188+
files = [...files];
186189

187190
if (files.length > 0) {
188191
Events.fire('activate-share-mode', {
@@ -215,8 +218,11 @@ class PeersUI {
215218
if (this.shareMode.active || Dialog.anyDialogShown()) return;
216219

217220
e.preventDefault()
218-
const files = e.clipboardData.files;
219-
const text = e.clipboardData.getData("Text");
221+
let files = e.clipboardData.files;
222+
let text = e.clipboardData.getData("Text");
223+
224+
// convert FileList to Array
225+
files = [...files];
220226

221227
if (files.length > 0) {
222228
Events.fire('activate-share-mode', {files: files});
@@ -278,8 +284,6 @@ class PeersUI {
278284
descriptorInstructions = Localization.getTranslation("instructions.activate-share-mode-shared-file");
279285
}
280286

281-
files = await mime.addMissingMimeTypesToFiles(files);
282-
283287
if (files[0].type.split('/')[0] === 'image') {
284288
try {
285289
let imageUrl = await getThumbnailAsDataUrl(files[0], 80, null, 0.9);

public/scripts/util.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -396,20 +396,20 @@ const mime = (() => {
396396
}
397397

398398
return {
399-
async guessMimeByFilename(filename) {
399+
guessMimeByFilename(filename) {
400400
const split = filename.split('.');
401401
if (split.length === 1) {
402402
// Filename does not include suffix
403-
return "";
403+
return false;
404404
}
405405
const suffix = split[split.length - 1].toLowerCase();
406-
return suffixToMimeMap[suffix] || "";
406+
return suffixToMimeMap[suffix];
407407
},
408-
async addMissingMimeTypesToFiles(files) {
408+
addMissingMimeTypesToFiles(files) {
409409
// if filetype is empty guess via suffix otherwise leave unchanged
410410
for (let i = 0; i < files.length; i++) {
411411
if (!files[i].type) {
412-
files[i] = new File([files[i]], files[i].name, {type: await mime.guessMimeByFilename(files[i].name) || ""});
412+
files[i] = new File([files[i]], files[i].name, {type: mime.guessMimeByFilename(files[i].name) || ""});
413413
}
414414
}
415415
return files;

public/styles/styles-main.css

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,6 @@ body {
1111
overflow-x: hidden;
1212
overscroll-behavior: none;
1313
overflow-y: hidden;
14-
/* Only allow selection on message and pair key */
15-
-webkit-user-select: none;
16-
-moz-user-select: none;
17-
user-select: none;
1814
transition: color 300ms;
1915
}
2016

0 commit comments

Comments
 (0)