Files
moodist/src/hooks/use-copy.ts
2024-01-03 00:03:58 +03:30

20 lines
413 B
TypeScript

import { useState, useCallback } from 'react';
export function useCopy(timeout = 1500) {
const [copying, setCopying] = useState(false);
const copy = useCallback(
(content: string) => {
if (copying) return;
navigator.clipboard.writeText(content);
setCopying(true);
setTimeout(() => setCopying(false), timeout);
},
[copying, timeout],
);
return { copy, copying };
}