summaryrefslogtreecommitdiff
path: root/static/js/copyCodeToClipboard.js
diff options
context:
space:
mode:
Diffstat (limited to 'static/js/copyCodeToClipboard.js')
-rw-r--r--static/js/copyCodeToClipboard.js47
1 files changed, 0 insertions, 47 deletions
diff --git a/static/js/copyCodeToClipboard.js b/static/js/copyCodeToClipboard.js
deleted file mode 100644
index 805eb59..0000000
--- a/static/js/copyCodeToClipboard.js
+++ /dev/null
@@ -1,47 +0,0 @@
-const copiedText = document.getElementById('copy-success').textContent;
-const initCopyText = document.getElementById('copy-init').textContent;
-
-const changeIcon = (copyDiv, className) => {
- copyDiv.classList.add(className);
- copyDiv.setAttribute('aria-label', copiedText);
- setTimeout(() => {
- copyDiv.classList.remove(className);
- copyDiv.setAttribute('aria-label', initCopyText);
- }, 2500);
-};
-
-const addCopyEventListenerToDiv = (copyDiv, block) => {
- copyDiv.addEventListener('click', () => copyCodeAndChangeIcon(copyDiv, block));
-};
-
-const copyCodeAndChangeIcon = async (copyDiv, block) => {
- const code = block.querySelector('table')
- ? getTableCode(block)
- : getNonTableCode(block);
- try {
- await navigator.clipboard.writeText(code);
- changeIcon(copyDiv, 'checked');
- } catch (error) {
- changeIcon(copyDiv, 'error');
- }
-};
-
-const getNonTableCode = (block) => {
- return [...block.querySelectorAll('code')].map((code) => code.textContent).join('');
-};
-
-const getTableCode = (block) => {
- return [...block.querySelectorAll('tr')]
- .map((row) => row.querySelector('td:last-child')?.innerText ?? '')
- .join('');
-};
-
-document.querySelectorAll('pre:not(.mermaid)').forEach((block) => {
- const copyDiv = document.createElement('div');
- copyDiv.setAttribute('role', 'button');
- copyDiv.setAttribute('aria-label', initCopyText);
- copyDiv.setAttribute('title', initCopyText);
- copyDiv.className = 'copy-code';
- block.prepend(copyDiv);
- addCopyEventListenerToDiv(copyDiv, block);
-});