From ba294a12de116d024588ec982ce2bfe35202de07 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Sun, 23 Feb 2025 09:31:35 +0100 Subject: [PATCH] Use navigator.clipboard.writeText --- assets/javascripts/lib/util.js | 18 ------------------ assets/javascripts/views/content/entry_page.js | 7 +++---- 2 files changed, 3 insertions(+), 22 deletions(-) diff --git a/assets/javascripts/lib/util.js b/assets/javascripts/lib/util.js index c8668d4f..5226262d 100644 --- a/assets/javascripts/lib/util.js +++ b/assets/javascripts/lib/util.js @@ -526,21 +526,3 @@ $.highlight = function (el, options) { el.classList.add(options.className); setTimeout(() => el.classList.remove(options.className), options.delay); }; - -$.copyToClipboard = function (string) { - let result; - const textarea = document.createElement("textarea"); - textarea.style.position = "fixed"; - textarea.style.opacity = 0; - textarea.value = string; - document.body.appendChild(textarea); - try { - textarea.select(); - result = !!document.execCommand("copy"); - } catch (error) { - result = false; - } finally { - document.body.removeChild(textarea); - } - return result; -}; diff --git a/assets/javascripts/views/content/entry_page.js b/assets/javascripts/views/content/entry_page.js index 95920878..280017ae 100644 --- a/assets/javascripts/views/content/entry_page.js +++ b/assets/javascripts/views/content/entry_page.js @@ -217,10 +217,9 @@ app.views.EntryPage = class EntryPage extends app.View { this.load(); } else if (target.classList.contains("_pre-clip")) { $.stopEvent(event); - target.classList.add( - $.copyToClipboard(target.parentNode.textContent) - ? "_pre-clip-success" - : "_pre-clip-error", + navigator.clipboard.writeText(target.parentNode.textContent).then( + () => target.classList.add("_pre-clip-success"), + () => target.classList.add("_pre-clip-error"), ); setTimeout(() => (target.className = "_pre-clip"), 2000); }