Back To Snippets

useCopy

Copy to Clipboard React Hook.

use-copy.ts

use-copy.ts

import * as React from "react"; export function useCopy(text: string, copyTimeout = 3000) { const [isCopied, setIsCopied] = React.useState(false); const timeout = React.useRef<ReturnType<typeof setTimeout> | null>(null); const copyText = () => { if (timeout.current) { clearTimeout(timeout.current); } navigator.clipboard.writeText(text); setIsCopied(true); timeout.current = setTimeout(() => { setIsCopied(false); }, copyTimeout); }; return { isCopied, copyText }; }