export default function() { Array.from(document.querySelectorAll('[data-copy-button=true]')).forEach(e => { const copyButton = document.createElement('button'); copyButton.classList.add('copy-button'); copyButton.title = "Click to copy"; copyButton.addEventListener('click', () => { const addTemporaryClass = (className, time) => { copyButton.classList.add(className); setTimeout(() => { if (copyButton.classList.contains(className)) { copyButton.classList.remove(className); } }, time); } if (!navigator || !navigator.clipboard) { console.warn("Clipboard not accessible"); addTemporaryClass('copy-failed', 2000); } const content = e.innerText.trim(); navigator.clipboard.writeText(content).then(() => { addTemporaryClass('copy-successful', 2000); }); }); e.classList.add('contains-copy-button'); e.insertBefore(copyButton, e.firstChild); }); }