'use client'; import { ForwardRefExoticComponent, RefAttributes, useState } from 'react'; import { LucideProps, Copy as CopyIcon, Check as CheckIcon } from 'lucide-react'; import ToolTip from '@/components/ToolTip'; type CopyButtonProps = { title?: string; copy: string; Icon?: ForwardRefExoticComponent & RefAttributes>; tooltip?: string | string[]; className?: string; size?: number; }; export default function CopyButton({ title, copy, Icon = CopyIcon, tooltip = ['Copy', 'Copied'], className, size = 16, }: CopyButtonProps) { const [copied, setCopied] = useState(false); const handleCopy = async () => { try { await navigator.clipboard.writeText(copy); setCopied(true); setTimeout(() => setCopied(false), 2000); } catch (err) { console.error('Failed to copy!', err); } }; const ttContent = ( {Array.isArray(tooltip) && tooltip.length > 1 ? (copied ? tooltip[1] : tooltip[0]) : tooltip} ); return ( ); }