import React, { useRef, useCallback, forwardRef, type FC, type PropsWithRef, type PropsWithChildren } from 'react'; import { CopyIcon, CheckIcon } from '@chakra-ui/icons'; import CopyToClipboard, { type Props } from 'react-copy-to-clipboard'; import { Button, useBoolean, type ButtonProps } from '@chakra-ui/react'; export interface ICopyProps extends Omit, ButtonProps {} const Copy: FC>> = forwardRef( ({ children, text, options, ...buttonProps }, ref) => { const timer = useRef(); const [isCopied, { toggle }] = useBoolean(); const handleCopy = useCallback(() => { clearTimeout(timer.current); toggle(); timer.current = setTimeout(toggle, 2000); }, []); return ( ); } ); export default Copy;