16 lines
538 B
TypeScript
16 lines
538 B
TypeScript
/** Copy text to clipboard with execCommand fallback for older browsers. */
|
|
export function copyToClipboard(text: string, onSuccess: () => void): void {
|
|
if (navigator.clipboard?.writeText) {
|
|
navigator.clipboard.writeText(text).then(onSuccess);
|
|
} else {
|
|
const ta = document.createElement('textarea');
|
|
ta.value = text;
|
|
ta.style.position = 'fixed';
|
|
ta.style.opacity = '0';
|
|
document.body.appendChild(ta);
|
|
ta.select();
|
|
document.execCommand('copy');
|
|
document.body.removeChild(ta);
|
|
onSuccess();
|
|
}
|
|
}
|