Files
OneCAD-Draft/web/clipboard.js
T

26 lines
970 B
JavaScript

export async function copyHistory(text, fallbackLabel, closeLabel) {
try {
await navigator.clipboard.writeText(text);
return true;
} catch {
const dialog = document.createElement('dialog');
const label = document.createElement('p');
label.textContent = fallbackLabel;
const field = document.createElement('textarea');
field.value = text;
field.readOnly = true;
field.setAttribute('aria-label', fallbackLabel);
field.style.cssText = 'width:70vw;height:50vh;display:block';
const close = document.createElement('button');
close.textContent = closeLabel;
close.onclick = () => dialog.close();
dialog.append(label, field, close);
dialog.addEventListener('close', () => dialog.remove(), { once: true });
document.body.append(dialog);
dialog.showModal();
field.focus();
field.select();
return false;
}
}