use-copy-to-clipboard.ts411 BView on GitHub
import { useState } from 'react';

export function useCopyToClipboard(resetDelay = 2000) {
  const [copiedValue, setCopiedValue] = useState<string | null>(null);

  const copyToClipboard = (value: string, id: string) => {
    navigator.clipboard.writeText(value);
    setCopiedValue(id);

    setTimeout(() => {
      setCopiedValue(null);
    }, resetDelay);
  };

  return { copiedValue, copyToClipboard };
}