ice.fo.utils
Version:
33 lines (26 loc) • 722 B
JavaScript
export function copyTextToClipboard (text) {
return new Promise((resolve, reject) => {
if (!navigator.clipboard) {
try {
fallbackCopyTextToClipboard(text)
resolve()
} catch (error) {
reject(error)
}
}
navigator.clipboard.writeText(text).then(resolve, reject)
})
}
function fallbackCopyTextToClipboard (text) {
const textArea = document.createElement('textarea')
textArea.value = text
// Avoid scrolling to bottom
textArea.style.top = '0'
textArea.style.left = '0'
textArea.style.position = 'fixed'
document.body.appendChild(textArea)
textArea.focus()
textArea.select()
document.execCommand('copy')
document.body.removeChild(textArea)
}