Skip to content

Commit

Permalink
Merge pull request #372 from schlagmichdoch/fix-share-mode
Browse files Browse the repository at this point in the history
Fix share-mode and enable pasting for Firefox users
  • Loading branch information
schlagmichdoch authored Feb 13, 2025
2 parents 94096aa + efc360e commit 8826893
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 17 deletions.
2 changes: 1 addition & 1 deletion public/scripts/network.js
Original file line number Diff line number Diff line change
Expand Up @@ -1082,7 +1082,7 @@ class PeersManager {
}

async _onFilesSelected(message) {
let files = await mime.addMissingMimeTypesToFiles(message.files);
let files = mime.addMissingMimeTypesToFiles(message.files);
await this.peers[message.to].requestFileTransfer(files);
}

Expand Down
18 changes: 11 additions & 7 deletions public/scripts/ui.js
Original file line number Diff line number Diff line change
Expand Up @@ -179,10 +179,13 @@ class PeersUI {

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;
const text = e.dataTransfer.getData("text");
let files = e.dataTransfer.files;
let text = e.dataTransfer.getData("text");

// convert FileList to Array
files = [...files];

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

e.preventDefault()
const files = e.clipboardData.files;
const text = e.clipboardData.getData("Text");
let files = e.clipboardData.files;
let text = e.clipboardData.getData("Text");

// convert FileList to Array
files = [...files];

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

files = await mime.addMissingMimeTypesToFiles(files);

if (files[0].type.split('/')[0] === 'image') {
try {
let imageUrl = await getThumbnailAsDataUrl(files[0], 80, null, 0.9);
Expand Down
10 changes: 5 additions & 5 deletions public/scripts/util.js
Original file line number Diff line number Diff line change
Expand Up @@ -396,20 +396,20 @@ const mime = (() => {
}

return {
async guessMimeByFilename(filename) {
guessMimeByFilename(filename) {
const split = filename.split('.');
if (split.length === 1) {
// Filename does not include suffix
return "";
return false;
}
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
for (let i = 0; i < files.length; i++) {
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;
Expand Down
4 changes: 0 additions & 4 deletions public/styles/styles-main.css
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,6 @@ body {
overflow-x: hidden;
overscroll-behavior: none;
overflow-y: hidden;
/* Only allow selection on message and pair key */
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
transition: color 300ms;
}

Expand Down

0 comments on commit 8826893

Please sign in to comment.