diff --git a/packages/files-ui/src/Components/Modules/FileBrowsers/LinkSharing/SharingLink.tsx b/packages/files-ui/src/Components/Modules/FileBrowsers/LinkSharing/SharingLink.tsx index 10b526fffb..1057f65dc5 100644 --- a/packages/files-ui/src/Components/Modules/FileBrowsers/LinkSharing/SharingLink.tsx +++ b/packages/files-ui/src/Components/Modules/FileBrowsers/LinkSharing/SharingLink.tsx @@ -159,13 +159,42 @@ const SharingLink = ({ nonce, bucketEncryptionKey, refreshNonces }: Props) => { const debouncedSwitchCopied = debounce(() => setCopied(false), 3000) + const onCopyInfo = useCallback(() => { - navigator.clipboard.writeText(link) - .then(() => { - setCopied(true) - debouncedSwitchCopied() - }) - .catch(console.error) + // navigator.clipboard.writeText(link) + // .then(() => { + // setCopied(true) + // debouncedSwitchCopied() + // }) + // .catch(console.error) + + //Create a textbox field where we can insert text to. + const copyFrom = document.createElement("textarea") + + //Set the text content to be the text you wished to copy. + copyFrom.textContent = link + + //Append the textbox field into the body as a child. + //"execCommand()" only works when there exists selected text, and the text is inside + //document.body (meaning the text is part of a valid rendered HTML element). + document.body.appendChild(copyFrom) + + //Select all the text! + copyFrom.select() + + //Execute command + document.execCommand("copy") + + //(Optional) De-select the text using blur(). + copyFrom.blur() + + //Remove the textbox field from the document.body, so no other JavaScript nor + //other elements can get access to this. + document.body.removeChild(copyFrom) + + setCopied(true) + debouncedSwitchCopied() + }, [debouncedSwitchCopied, link]) const onDeleteNonce = useCallback(() => {