diff --git a/src/components/CopyBtn/index.jsx b/src/components/CopyBtn/index.jsx index dd076ffd..b401367c 100644 --- a/src/components/CopyBtn/index.jsx +++ b/src/components/CopyBtn/index.jsx @@ -31,10 +31,6 @@ type CopyBtnProps = { } const CopyBtn = ({ content, increaseZindex = false }: CopyBtnProps) => { - if (!navigator.clipboard) { - return null - } - const [clicked, setClicked] = useState(false) const classes = useStyles() const customClasses = increaseZindex ? { popper: classes.inreasedPopperZindex } : {} diff --git a/src/utils/clipboard.js b/src/utils/clipboard.js index d8ad191f..7322f54c 100644 --- a/src/utils/clipboard.js +++ b/src/utils/clipboard.js @@ -1,13 +1,17 @@ // @flow -export const copyToClipboard = (text: string) => { - if (!navigator.clipboard) { - return - } +export const copyToClipboard = (text: string): void => { + const range = document.createRange() + range.selectNodeContents(document.body) + document.getSelection().addRange(range) - try { - navigator.clipboard.writeText(text) - } catch (err) { - console.error(err.message) + function listener(e: ClipboardEvent) { + e.clipboardData.setData('text/plain', text) + e.preventDefault() } + document.addEventListener('copy', listener) + document.execCommand('copy') + document.removeEventListener('copy', listener) + + document.getSelection().removeAllRanges() }