Files
CapacityReport/frontend/src/composables/clipboard.ts
T

24 lines
619 B
TypeScript

export async function writeClipboardText(text: string): Promise<void> {
if (navigator.clipboard?.writeText) {
await navigator.clipboard.writeText(text);
return;
}
const textarea = document.createElement('textarea');
textarea.value = text;
textarea.setAttribute('readonly', 'true');
textarea.style.position = 'fixed';
textarea.style.top = '-1000px';
textarea.style.opacity = '0';
document.body.appendChild(textarea);
textarea.select();
try {
if (!document.execCommand('copy')) {
throw new Error('copy failed');
}
} finally {
document.body.removeChild(textarea);
}
}