Files
TheGame/packages/web/lib/hooks/useCopyToClipboard.ts
dan13ram 4d59ac3f1b moved brightId verified tag to contacts (#388)
* moved brightId verified tag to contacts

* empty commit
2021-03-08 20:17:57 +05:30

30 lines
643 B
TypeScript

import copyToClipboard from 'copy-to-clipboard';
import { useCallback,useEffect, useState } from 'react';
const DEFAULT_DELAY = 3000;
export const useCopyToClipboard = (
delay = DEFAULT_DELAY,
): [boolean, (text: string) => void] => {
const [copied, setCopied] = useState(false);
useEffect(() => {
if (!copied) return () => undefined;
const id = setTimeout(() => {
setCopied(false);
}, delay);
return () => {
clearTimeout(id);
};
}, [delay, copied]);
const handleCopy = useCallback((text: string) => {
setCopied(true);
copyToClipboard(text);
}, []);
return [copied, handleCopy];
};