"use client"; import * as React from "react"; import { Button } from "./button"; import { CheckIcon, CopyIcon } from "@radix-ui/react-icons"; import { useClipboard } from "@/lib/hooks"; const CopyButton = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef & { valueToCopy: string; } >(({ className, valueToCopy, ...props }, ref) => { const copyToClipboard = useClipboard(valueToCopy); const [showSuccessIcon, setShowSuccessIcon] = React.useState(false); const handleCopy = () => { copyToClipboard(); setShowSuccessIcon(true); }; React.useEffect(() => { let timeout: ReturnType | null = null; if (showSuccessIcon) { timeout = setTimeout(() => { setShowSuccessIcon(false); }, 5000); } return () => { if (timeout) { clearTimeout(timeout); } }; }, [showSuccessIcon]); return ( <> ); }); export { CopyButton };