mirror of
https://github.com/MetaFam/TheGame.git
synced 2026-01-14 17:08:00 -05:00
* 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
30 lines
644 B
TypeScript
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];
|
|
};
|