Files
TheGame/packages/web/lib/hooks/useCopyToClipboard.ts
dan13ram 8517a26048 Upgrade dependencies (#486)
* upgraded storybook dependencies

* upgraded web dependencies

* updated timezone selector

* upgrade chakra in metamaps

* upgraded react-dnd in metamaps

* upgraded framer-motion

* fixed types in metamaps

* upgraded eslint

* upgraded lerna, husky and graphql

* upgraded node version

* removed metamaps package

* fixed all eslint issues

* ran yarn format to prettier format all files

* updated lint-staged & husky scripts

* add executable perms to pre-push scripts

* updated yarn.lock

* fixed eslint and moved chakra icons to ds

* fixed emotion errors

* removed extra useContext

* update yarn.lock

* upgraded more packages

* removed unnecessary .huskyrc.json

* lint fix
2021-05-01 12:46:48 +05:30

30 lines
644 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];
};