snapdrop

A Progressive Web App for local file sharing
git clone http://git.hanabi.in/repos/snapdrop.git
Log | Files | Refs | README | LICENSE

commit 13243093ae33cbe704ddb23e914af5a8f374d0ad
parent 59ec78c5200120133857bf999d75abd0211720f6
Author: RobinLinus <robinlinus@users.noreply.github.com>
Date:   Wed, 13 Mar 2019 01:48:53 +0100

Add basic ShareTarget handler

Diffstat:
Mclient/manifest.json | 12++++++++++--
Mclient/scripts/ui.js | 21+++++++++++++++++++++
Mclient/service-worker.js | 2+-
3 files changed, 32 insertions(+), 3 deletions(-)

diff --git a/client/manifest.json b/client/manifest.json @@ -18,12 +18,20 @@ "sizes": "192x192", "type": "image/png" },{ - "src": "images/logo_transparent_white_512x512.png", + "src": "images/logo_transparent_512x512.png", "sizes": "512x512", "type": "image/png" }], "background_color": "#3367d6", "start_url": "/", "display": "minimal-ui", - "theme_color": "#3367d6" + "theme_color": "#3367d6", + "share_target": { + "action": "/share-target/", + "params": { + "title": "title", + "text": "text", + "url": "url" + } + } } \ No newline at end of file diff --git a/client/scripts/ui.js b/client/scripts/ui.js @@ -276,10 +276,17 @@ class SendTextDialog extends Dialog { _onRecipient(recipient) { this._recipient = recipient; + this._handleShareTargetText(); this.show(); this.$text.setSelectionRange(0, this.$text.value.length) } + _handleShareTargetText(){ + if(!window.shareTargetText) return; + this.$text.value = window.shareTargetText; + window.shareTargetText = ''; + } + _send(e) { e.preventDefault(); Events.fire('send-text', { @@ -439,6 +446,20 @@ class NetworkStatusUI { } } +class WebShareTargetUI { + constructor() { + const parsedUrl = new URL(window.location); + const title = parsedUrl.searchParams.get('title'); + const text = parsedUrl.searchParams.get('text'); + const url = parsedUrl.searchParams.get('url'); + + let shareTargetText = title ? title : ''; + shareTargetText += text ? shareTargetText ? ' ' + text : text : ''; + shareTargetText += url ? shareTargetText ? ' ' + url : url : ''; + window.shareTargetText = shareTargetText; + console.log('Shared Target Text:', '"' + shareTargetText + '"'); + } +} class Snapdrop { diff --git a/client/service-worker.js b/client/service-worker.js @@ -1,4 +1,4 @@ -var CACHE_NAME = 'snapdrop-cache-v1.02'; +var CACHE_NAME = 'snapdrop-cache-v1.03'; var urlsToCache = [ '/', '/styles.css',