|
@@ -6,17 +6,23 @@ export function trimTopic(topic: string) {
|
|
|
}
|
|
|
|
|
|
export async function copyToClipboard(text: string) {
|
|
|
- try {
|
|
|
- await navigator.clipboard.writeText(text);
|
|
|
- } catch (error) {
|
|
|
- const textarea = document.createElement("textarea");
|
|
|
- textarea.value = text;
|
|
|
- document.body.appendChild(textarea);
|
|
|
- textarea.select();
|
|
|
- document.execCommand("copy");
|
|
|
- document.body.removeChild(textarea);
|
|
|
- } finally {
|
|
|
- showToast(Locale.Copy.Success);
|
|
|
+ if (navigator.clipboard) {
|
|
|
+ navigator.clipboard.writeText(text).catch(err => {
|
|
|
+ console.error('Failed to copy: ', err);
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ const textArea = document.createElement('textarea');
|
|
|
+ textArea.value = text;
|
|
|
+ document.body.appendChild(textArea);
|
|
|
+ textArea.focus();
|
|
|
+ textArea.select();
|
|
|
+ try {
|
|
|
+ document.execCommand('copy');
|
|
|
+ console.log('Text copied to clipboard');
|
|
|
+ } catch (err) {
|
|
|
+ console.error('Failed to copy: ', err);
|
|
|
+ }
|
|
|
+ document.body.removeChild(textArea);
|
|
|
}
|
|
|
}
|
|
|
|