Spaces:
Sleeping
Sleeping
import { onMounted, onUpdated } from 'vue' | |
import { copyText } from '@/utils/format' | |
export function useCopyCode() { | |
function copyCodeBlock() { | |
const codeBlockWrapper = document.querySelectorAll('.code-block-wrapper') | |
codeBlockWrapper.forEach((wrapper) => { | |
const copyBtn = wrapper.querySelector('.code-block-header__copy') | |
const codeBlock = wrapper.querySelector('.code-block-body') | |
if (copyBtn && codeBlock) { | |
copyBtn.addEventListener('click', () => { | |
if (navigator.clipboard?.writeText) | |
navigator.clipboard.writeText(codeBlock.textContent ?? '') | |
else | |
copyText({ text: codeBlock.textContent ?? '', origin: true }) | |
}) | |
} | |
}) | |
} | |
onMounted(() => copyCodeBlock()) | |
onUpdated(() => copyCodeBlock()) | |
} | |