import { useState, useRef, useEffect, useCallback } from 'react'; import { copyToClipboard } from '../utils/copyToClipboard'; export function useCopyToClipboard() { const [isCopied, setIsCopied] = useState(false); const timeoutRef = useRef(null); useEffect(() => { return () => { if (timeoutRef.current) { clearTimeout(timeoutRef.current); } } }, []); const copy = useCallback(async (value: string) => { try { await copyToClipboard(value); setIsCopied(true); if (timeoutRef.current) { clearTimeout(timeoutRef.current); } timeoutRef.current = setTimeout(() => setIsCopied(false), 1000); } catch (error) { console.error('Failed to copy:', error); } }, []); return { isCopied, copy }; }