From 3ad788b5ae3a34ae1375097c371b58e629d3490c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matuzal=C3=A9m=20Teles?= Date: Wed, 6 Jul 2022 10:55:39 -0500 Subject: [PATCH] fix(clayui.com): fix clipboard error in examples --- .../components/CodeClipboard/CodeClipboard.js | 83 ++++++++++--------- 1 file changed, 44 insertions(+), 39 deletions(-) diff --git a/clayui.com/src/components/CodeClipboard/CodeClipboard.js b/clayui.com/src/components/CodeClipboard/CodeClipboard.js index 6a0303d0a4..16db76d747 100644 --- a/clayui.com/src/components/CodeClipboard/CodeClipboard.js +++ b/clayui.com/src/components/CodeClipboard/CodeClipboard.js @@ -8,51 +8,56 @@ import {useEffect} from 'react'; export default (props) => { useEffect(() => { - const clayClipboard = new Clipboard('.tab-pane .btn-copy', { - text: (delegateTarget) => { - const buttonContent = delegateTarget.innerHTML; - const gatsbyHighlightContainer = - delegateTarget.closest('.gatsby-highlight') || - delegateTarget.closest('.code-container'); - const jspTab = gatsbyHighlightContainer.querySelector( - '[aria-labelledby="tab-JSP"]' - ); - const reactTab = gatsbyHighlightContainer.querySelector( - '[aria-labelledby="tab-React"]' - ); - - delegateTarget.innerHTML = delegateTarget.innerHTML.replace( - /paste/g, - 'check' - ); - - delegateTarget.setAttribute('title', 'Copied'); - - gatsbyHighlightContainer - .querySelector('.copied-alert') - .classList.remove('d-none'); - - setTimeout(() => { - delegateTarget.setAttribute('title', 'Copy'); - - delegateTarget.innerHTML = buttonContent; + const clayClipboard = new Clipboard( + '.gatsby-highlight .btn-copy, .code-container .btn[title=Copy]', + { + text: (delegateTarget) => { + const buttonContent = delegateTarget.innerHTML; + const gatsbyHighlightContainer = + delegateTarget.closest('.gatsby-highlight') || + delegateTarget.closest('.code-container'); + const jspTab = gatsbyHighlightContainer.querySelector( + '[aria-labelledby="tab-JSP"]' + ); + const reactTab = gatsbyHighlightContainer.querySelector( + '[aria-labelledby="tab-React"]' + ); + + delegateTarget.innerHTML = delegateTarget.innerHTML.replace( + /paste/g, + 'check' + ); + + delegateTarget.setAttribute('title', 'Copied'); gatsbyHighlightContainer .querySelector('.copied-alert') - .classList.add('d-none'); - }, 2000); + .classList.remove('d-none'); + + setTimeout(() => { + delegateTarget.setAttribute('title', 'Copy'); + + delegateTarget.innerHTML = buttonContent; + + gatsbyHighlightContainer + .querySelector('.copied-alert') + .classList.add('d-none'); + }, 2000); - let codeContent = - gatsbyHighlightContainer.querySelector('pre code') || - (reactTab.classList.contains('active') ? reactTab : jspTab); + let codeContent = + gatsbyHighlightContainer.querySelector('pre code') || + (reactTab.classList.contains('active') + ? reactTab + : jspTab); - if (codeContent) { - codeContent = codeContent.innerText; - } + if (codeContent) { + codeContent = codeContent.innerText; + } - return codeContent; - }, - }); + return codeContent; + }, + } + ); return () => { clayClipboard.destroy();