import { Box, Text, Tooltip } from 'components/primitives' import { FC, ReactNode, useState } from 'react' import { CSS } from '@stitches/react' import { useCopyToClipboard } from 'usehooks-ts' type Props = { children: ReactNode text: string css?: CSS } const CopyText: FC = ({ children, text, css }) => { const [value, copy] = useCopyToClipboard() const [isCopied, setIsCopied] = useState(false) const [open, setOpen] = useState(false) const handleCopy = () => { copy(text) setIsCopied(true) setTimeout(() => setIsCopied(false), 1000) } return ( {isCopied ? 'Copied!' : 'Copy'} } > { e.preventDefault() handleCopy() }} onMouseEnter={() => setOpen(true)} onMouseLeave={() => setOpen(false)} onTouchStart={() => { handleCopy() setOpen(true) setTimeout(() => setOpen(false), 1000) }} css={{ width: '100%', cursor: 'pointer', height: 'min-content', ...css, }} > {children} ) } export default CopyText