UNPKG

@sky-mavis/tanto-widget

Version:
26 lines (22 loc) 617 B
'use strict'; var react = require('react'); function useClipboard(value, duration) { const [copied, setCopied] = react.useState(false); const handleCopy = react.useCallback(async () => { if (copied || !value) return; try { await navigator.clipboard.writeText(value.trim()); setCopied(true); } catch {} }, [value, copied]); react.useEffect(() => { if (!copied) return; const timer = setTimeout(() => setCopied(false), duration); return () => clearTimeout(timer); }, [copied, duration]); return { copied, handleCopy }; } exports.useClipboard = useClipboard;