From bd7b3c6d28d23004bd2181b112a3c55922e6c220 Mon Sep 17 00:00:00 2001 From: schlagmichdoch Date: Wed, 13 Sep 2023 17:50:46 +0200 Subject: [PATCH] show warning to user if navigator.clipboard.writeText fails --- public/lang/en.json | 1 + public/scripts/ui.js | 11 ++++++++--- public_included_ws_fallback/lang/en.json | 1 + public_included_ws_fallback/scripts/ui.js | 11 ++++++++--- 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/public/lang/en.json b/public/lang/en.json index de26740..75a4d60 100644 --- a/public/lang/en.json +++ b/public/lang/en.json @@ -100,6 +100,7 @@ "pairing-key-invalidated": "Key {{key}} invalidated.", "pairing-cleared": "All Devices unpaired.", "copied-to-clipboard": "Copied to clipboard", + "copied-to-clipboard-error": "Copying not possible. Copy manually.", "text-content-incorrect": "Text content is incorrect.", "file-content-incorrect": "File content is incorrect.", "clipboard-content-incorrect": "Clipboard content is incorrect.", diff --git a/public/scripts/ui.js b/public/scripts/ui.js index 69cc23a..4cebb96 100644 --- a/public/scripts/ui.js +++ b/public/scripts/ui.js @@ -1497,9 +1497,14 @@ class ReceiveTextDialog extends Dialog { async _onCopy() { const sanitizedText = this.$text.innerText.replace(/\u00A0/gm, ' '); - await navigator.clipboard.writeText(sanitizedText); - Events.fire('notify-user', Localization.getTranslation("notifications.copied-to-clipboard")); - this.hide(); + navigator.clipboard.writeText(sanitizedText) + .then(_ => { + Events.fire('notify-user', Localization.getTranslation("notifications.copied-to-clipboard")); + this.hide(); + }) + .catch(_ => { + Events.fire('notify-user', Localization.getTranslation("notifications.copied-to-clipboard-error")); + }); } hide() { diff --git a/public_included_ws_fallback/lang/en.json b/public_included_ws_fallback/lang/en.json index 4c88dae..a607219 100644 --- a/public_included_ws_fallback/lang/en.json +++ b/public_included_ws_fallback/lang/en.json @@ -97,6 +97,7 @@ "pairing-key-invalidated": "Key {{key}} invalidated.", "pairing-cleared": "All Devices unpaired.", "copied-to-clipboard": "Copied to clipboard", + "copied-to-clipboard-error": "Copying not possible. Copy manually.", "text-content-incorrect": "Text content is incorrect.", "file-content-incorrect": "File content is incorrect.", "clipboard-content-incorrect": "Clipboard content is incorrect.", diff --git a/public_included_ws_fallback/scripts/ui.js b/public_included_ws_fallback/scripts/ui.js index c5eb462..460f30f 100644 --- a/public_included_ws_fallback/scripts/ui.js +++ b/public_included_ws_fallback/scripts/ui.js @@ -1498,9 +1498,14 @@ class ReceiveTextDialog extends Dialog { async _onCopy() { const sanitizedText = this.$text.innerText.replace(/\u00A0/gm, ' '); - await navigator.clipboard.writeText(sanitizedText); - Events.fire('notify-user', Localization.getTranslation("notifications.copied-to-clipboard")); - this.hide(); + navigator.clipboard.writeText(sanitizedText) + .then(_ => { + Events.fire('notify-user', Localization.getTranslation("notifications.copied-to-clipboard")); + this.hide(); + }) + .catch(_ => { + Events.fire('notify-user', Localization.getTranslation("notifications.copied-to-clipboard-error")); + }); } hide() {