From 4bb0ba402456b73dbb59bb14260f1d3a40cfff4b Mon Sep 17 00:00:00 2001 From: Robert Kaussow Date: Sun, 12 Jun 2022 15:50:27 +0200 Subject: [PATCH] fix: fix exception while creating the code copy button (#260) --- src/js/copycode.js | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/src/js/copycode.js b/src/js/copycode.js index 4e05a0e..da55c56 100644 --- a/src/js/copycode.js +++ b/src/js/copycode.js @@ -1,23 +1,26 @@ export function createCopyButton(highlightDiv) { const button = document.createElement("span") - let selector = "pre > code" + let codeSelector = "pre > code" if (highlightDiv.querySelector(".lntable")) { - selector = ".lntable .lntd:last-child pre > code" + codeSelector = ".lntable .lntd:last-child pre > code" } - const codeToCopy = highlightDiv.querySelector(selector).innerText.trim() + const codeContainer = highlightDiv.querySelector(codeSelector) + if (codeContainer !== null) { + const codeContent = codeContainer.innerText.trim() - button.classList.add("flex", "align-center", "justify-center", "clip", "gblog-post__codecopy") - button.type = "button" - button.innerHTML = - '' + - '' - button.setAttribute("data-clipboard-text", codeToCopy) - button.setAttribute("data-copy-feedback", "Copied!") - button.setAttribute("role", "button") - button.setAttribute("aria-label", "Copy") + button.classList.add("flex", "align-center", "justify-center", "clip", "gblog-post__codecopy") + button.type = "button" + button.innerHTML = + '' + + '' + button.setAttribute("data-clipboard-text", codeContent) + button.setAttribute("data-copy-feedback", "Copied!") + button.setAttribute("role", "button") + button.setAttribute("aria-label", "Copy") - highlightDiv.classList.add("gblog-post__codecontainer") - highlightDiv.insertBefore(button, highlightDiv.firstChild) + highlightDiv.classList.add("gblog-post__codecontainer") + highlightDiv.insertBefore(button, highlightDiv.firstChild) + } }