@sky-mavis/tanto-widget
Version:
Tanto Widget
26 lines (22 loc) • 617 B
JavaScript
;
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;