From 65b76042967afe1c7d092b08e0a3cf571d3dedef Mon Sep 17 00:00:00 2001
From: Blake Gearin <blakegearin@pm.me>
Date: Sun, 10 Apr 2022 08:42:45 +0000
Subject: [PATCH] Add temporary check mark icon on copy to clipboard
---
assets/js/code.js | 30 ++++++++++++++++++------------
1 files changed, 18 insertions(+), 12 deletions(-)
diff --git a/assets/js/code.js b/assets/js/code.js
index fdb10f3..6a66f89 100644
--- a/assets/js/code.js
+++ b/assets/js/code.js
@@ -1,6 +1,6 @@
const codeActionButtons = [
{
- icon: 'copy',
+ icon: 'copy',
id: 'copy',
title: 'Copy Code',
show: true
@@ -9,7 +9,7 @@
icon: 'order',
id: 'lines',
title: 'Toggle Line Numbers',
- show: true
+ show: true
},
{
icon: 'carly',
@@ -21,7 +21,7 @@
icon: 'expand',
id: 'expand',
title: 'Toggle code block expand',
- show: false
+ show: false
}
];
@@ -175,7 +175,13 @@
}
function copyCode(codeElement) {
- lineNumbers = elems('.ln', codeElement);
+ const codeElementClone = codeElement.cloneNode(true);
+ const copyBtn = codeElement.parentNode.parentNode.querySelector(`.${copyId}`);
+ const originalTitle = copyBtn.title;
+ loadSvg('check', copyBtn);
+ copyBtn.title = 'Code Copied';
+
+ lineNumbers = elems('.ln', codeElementClone);
// remove line numbers before copying
if(lineNumbers.length) {
lineNumbers.forEach(function(line){
@@ -183,9 +189,13 @@
});
}
- const codeToCopy = codeElement.textContent;
// copy code
- copyToClipboard(codeToCopy);
+ copyToClipboard(codeElementClone.textContent);
+
+ setTimeout(function() {
+ copyBtn.title = originalTitle;
+ loadSvg('copy', copyBtn);
+ }, 2250);
}
function disableCodeLineNumbers(block){
@@ -213,7 +223,7 @@
const wrapIcon = elem(`.${wrapId}`, panel);
codeBlockFits(block) ? false : deleteClass(wrapIcon, panelHide);
- // append buttons
+ // append buttons
highlightWrapper.appendChild(panel);
});
@@ -264,11 +274,7 @@
}
}
- if(isCopyIcon) {
- // clone code element
- const codeElementClone = codeElement.cloneNode(true);
- copyCode(codeElementClone);
- }
+ if(isCopyIcon) copyCode(codeElement);
}
});
--
Gitblit v1.10.0