Spaces:
Running
Running
import { useState, useCallback } from 'react'; | |
export function useCopy(timeout = 2000) { | |
const [copied, setCopied] = useState(false); | |
const copy = useCallback( | |
async (text: string) => { | |
if (!navigator.clipboard) { | |
console.error('Clipboard API not available'); | |
return false; | |
} | |
try { | |
await navigator.clipboard.writeText(text); | |
setCopied(true); | |
setTimeout(() => { | |
setCopied(false); | |
}, timeout); | |
return true; | |
} catch (error) { | |
console.error('Failed to copy text:', error); | |
return false; | |
} | |
}, | |
[timeout] | |
); | |
return { copied, copy }; | |
} |