diff --git a/app/src/plugins/tm@_utils/server-links.utils.ts b/app/src/plugins/tm@_utils/server-links.utils.ts index c45b814..614c0a0 100644 --- a/app/src/plugins/tm@_utils/server-links.utils.ts +++ b/app/src/plugins/tm@_utils/server-links.utils.ts @@ -1,7 +1,13 @@ import { useToast } from 'vue-toast-notification'; const toast = useToast(); -window.toast = toast +declare global { + interface Window { + toast: typeof toast; + } +} + +window.toast = toast; export function detectOS() { const platform = window.navigator.platform @@ -18,7 +24,7 @@ export function detectOS() { export function prepareHTMLDescription(description) { if (!description) return description - + const os = detectOS() // make an array from the description of strings from between

and

tags @@ -57,10 +63,24 @@ export function prepareHTMLDescription(description) { function getCopyFunction(text) { return ` - navigator.clipboard.writeText('${text}').then(() => { + if (navigator.clipboard && navigator.clipboard.writeText) { + navigator.clipboard.writeText('${text}').then(() => { + window.toast.success('Link copied to clipboard!') + }).catch(err => { + window.toast.error('Failed to copy link to clipboard!') + }); + } else { + const input = document.createElement('input'); + input.style.position = 'fixed'; + input.style.opacity = 0; + input.style.pointerEvents = 'none'; + input.value = '\\\\${text}'; + document.body.appendChild(input); + input.select(); + input.focus(); + document.execCommand('copy'); + document.body.removeChild(input); window.toast.success('Link copied to clipboard!') - }).catch(err => { - window.toast.error('Failed to copy link to clipboard!') - }); + } ` } \ No newline at end of file