forked from 1b-agent/opencadstudio-upstream
26 lines
970 B
JavaScript
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;
|
|
}
|
|
}
|