pleroma/packages/pl-fe/src/utils/copy.ts
marcin mikołajczak 4d5690d0c1 Switch to workspace
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-08-28 13:01:08 +02:00

31 lines
616 B
TypeScript

const copy = (text: string, onSuccess?: () => void) => {
if (navigator.clipboard) {
navigator.clipboard.writeText(text);
if (onSuccess) {
onSuccess();
}
} else {
const textarea = document.createElement('textarea');
textarea.textContent = text;
textarea.style.position = 'fixed';
document.body.appendChild(textarea);
try {
textarea.select();
document.execCommand('copy');
} catch {
// Do nothing
} finally {
document.body.removeChild(textarea);
if (onSuccess) {
onSuccess();
}
}
}
};
export { copy as default };