mirror of
https://github.com/schlagmichdoch/PairDrop.git
synced 2025-04-21 15:26:17 -04:00
Paste image content from the clipboard
This allows someone to take a screen capture and send it to a peer without having to save it as a file. This only works if only one peer is connected as I wasn't sure what the UI flow should be if there are multiple peers. If nothing else, maybe this can be used to implement the full flow for multiple peers. =]
This commit is contained in:
parent
662a2e48de
commit
5efd9a3bba
1 changed files with 20 additions and 2 deletions
|
@ -11,7 +11,8 @@ class PeersUI {
|
||||||
Events.on('peer-joined', e => this._onPeerJoined(e.detail));
|
Events.on('peer-joined', e => this._onPeerJoined(e.detail));
|
||||||
Events.on('peer-left', e => this._onPeerLeft(e.detail));
|
Events.on('peer-left', e => this._onPeerLeft(e.detail));
|
||||||
Events.on('peers', e => this._onPeers(e.detail));
|
Events.on('peers', e => this._onPeers(e.detail));
|
||||||
Events.on('file-progress', e => this._onFileProgress(e.detail));
|
Events.on('file-progress', e => this._onFileProgress(e.detail));
|
||||||
|
window.addEventListener('paste', e => this._onPaste(e));
|
||||||
}
|
}
|
||||||
|
|
||||||
_onPeerJoined(peer) {
|
_onPeerJoined(peer) {
|
||||||
|
@ -40,6 +41,23 @@ class PeersUI {
|
||||||
|
|
||||||
_clearPeers() {
|
_clearPeers() {
|
||||||
const $peers = $$('x-peers').innerHTML = '';
|
const $peers = $$('x-peers').innerHTML = '';
|
||||||
|
}
|
||||||
|
|
||||||
|
_onPaste(e) {
|
||||||
|
const files = e.clipboardData.items
|
||||||
|
.filter(i => i.type.indexOf('image') > -1)
|
||||||
|
.map(i => i.getAsFile());
|
||||||
|
|
||||||
|
// send the pasted image content to the only peer if there is one
|
||||||
|
// otherwise, select the peer somehow by notifying the client that
|
||||||
|
// "image data has been pasted, click the client to which to send it"
|
||||||
|
// not implemented
|
||||||
|
if (files.length > 0 && $$('x-peer').length === 1) {
|
||||||
|
Events.fire('files-selected', {
|
||||||
|
files: files,
|
||||||
|
to: $$('x-peer').id
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -613,4 +631,4 @@ document.body.onclick = e => { // safari hack to fix audio
|
||||||
document.body.onclick = null;
|
document.body.onclick = null;
|
||||||
if (!(/.*Version.*Safari.*/.test(navigator.userAgent))) return;
|
if (!(/.*Version.*Safari.*/.test(navigator.userAgent))) return;
|
||||||
blop.play();
|
blop.play();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue