From a1f53917d44e2ea438999a547e4388e8dc4735a7 Mon Sep 17 00:00:00 2001 From: Veeno Date: Mon, 2 Dec 2024 01:31:44 +0100 Subject: [PATCH 1/2] feat: add possibility to copy token address --- public/script.js | 43 +++++++++++++++++++++++++++++++++++++------ 1 file changed, 37 insertions(+), 6 deletions(-) diff --git a/public/script.js b/public/script.js index 59acd18..276d8ae 100644 --- a/public/script.js +++ b/public/script.js @@ -44,7 +44,7 @@ function generateTokensHTML(tokens, elementId) { (token, index) => `
+ } shadow-xl space-y-4 m-4" style="width: 490px;">
${index + 1}
@@ -69,9 +69,19 @@ function generateTokensHTML(tokens, elementId) {
- - ${generateAddress1LinkHTML(token)} - ${generateAddress2LinkHTML(token)} +
+ ${generateAddress1LinkHTML(token)} + +
+
+ ${generateAddress2LinkHTML(token)} + +
+ ` @@ -79,6 +89,27 @@ function generateTokensHTML(tokens, elementId) { .join(''); } +if (typeof navigator !== 'undefined' && navigator?.clipboard) { + document.body.addEventListener('click', function (e) { + if (e.target.closest('.copy-btn')) { + const button = e.target.closest('.copy-btn'); + const address = button.getAttribute('data-address'); + if (address) { + navigator.clipboard + .writeText(address) + .then(() => { + alert(`Copied: ${address}`); + }) + .catch((err) => { + console.error('Failed to copy text: ', err); + }); + } + } + }); +} else { + console.error('Clipboard API is not supported in this environment.'); +} + function generateAddress1LinkHTML(token) { let layer = ''; @@ -95,7 +126,7 @@ function generateAddress1LinkHTML(token) { } return `

- ${layer} + ${layer} ${token.address}

`; } @@ -126,7 +157,7 @@ function generateAddress2LinkHTML(token) { const href = baseURL + token.extension.rootAddress; return `

- ${layer} + ${layer} ${token.extension.rootAddress}

`; } From dba7a3a9d40f4199dd7bbc5a0601d60379a24133 Mon Sep 17 00:00:00 2001 From: Veeno Date: Mon, 2 Dec 2024 01:32:56 +0100 Subject: [PATCH 2/2] fix: remove log --- public/script.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/public/script.js b/public/script.js index 276d8ae..25ce67f 100644 --- a/public/script.js +++ b/public/script.js @@ -106,8 +106,6 @@ if (typeof navigator !== 'undefined' && navigator?.clipboard) { } } }); -} else { - console.error('Clipboard API is not supported in this environment.'); } function generateAddress1LinkHTML(token) {