I'm trying to copy the text in the DialogContentText tag. I had a ref in the in the tag, but I couldn't figure how to actually use the ref and copy the text onto the clipboard. What exactly do I put into the handleCopyClick function body to put the text onto the clipboard? TIA
import { React, useRef } from 'react'; import Button from '@material-ui/core/Button'; import Dialog from '@material-ui/core/Dialog'; import DialogActions from '@material-ui/core/DialogActions'; import DialogContent from '@material-ui/core/DialogContent'; import DialogContentText from '@material-ui/core/DialogContentText'; import DialogTitle from '@material-ui/core/DialogTitle'; import { IconButton } from '@material-ui/core'; import { FileCopyOutlined } from '@material-ui/icons'; export const ExportDialog = (props) => { const { code, openExportDialog, setOpenExportDialog } = props const codeText = useRef(null) const handleClose = () => { setOpenExportDialog(false) }; const handleCopyClick = () => { // what do I put here to copy the text onto clipboard // I tried the following and It didn't work // codeText.current.select() // document.execCommand('copy') } return ( <div> <Dialog open={openExportDialog} onClose={handleClose} > <DialogTitle>{'Exported Deck Code'}</DialogTitle> <DialogContent> <DialogContentText ref={codeText}> {`${code}`} </DialogContentText> </DialogContent> <DialogActions> <IconButton onClick={()=>{handleCopyClick()}}> <FileCopyOutlined></FileCopyOutlined> </IconButton> <Button onClick={handleClose} color="primary" autofocus> Close </Button> </DialogActions> </Dialog> </div> ); } 11 Answer
You can use the module "copy-to-clipboard" to copy , its straight forward and you can copy anything.
Pass the data that you want to copy in "text"
<CopyToClipboard text={code}> <IconButton > <FileCopyOutlined></FileCopyOutlined> </IconButton> </CopyToClipboard>