import { toast } from '@redwoodjs/web/toast' function fallbackCopyTextToClipboard(text: string) { const textArea = document.createElement('textarea') textArea.value = text // Avoid scrolling to bottom textArea.style.top = '0' textArea.style.left = '0' textArea.style.position = 'fixed' document.body.appendChild(textArea) textArea.focus() textArea.select() try { const successful = document.execCommand('copy') const msg = successful ? 'successful' : 'unsuccessful' console.log('Fallback: Copying text command was ' + msg) } catch (err) { console.error('Fallback: Oops, unable to copy', err) } document.body.removeChild(textArea) } const clipboardSuccessToast = (text: string) => toast.success(() => (

link added to clipboard.

)) const makeClipboardCopier = (success: Function) => (text: string) => { if (!navigator.clipboard) { fallbackCopyTextToClipboard(text) success(text) return } navigator.clipboard.writeText(text).then( function () { console.log('Async: Copying to clipboard was successful!') success(text) }, function (err) { console.error('Async: Could not copy text: ', err) } ) } export const copyTextToClipboard = makeClipboardCopier(clipboardSuccessToast)