// hooks/useCopyToClipboard.js

import { useState, useEffect } from "react";

function useCopyToClipboard() {
  const [isCopied, setIsCopied] = useState(false);

  useEffect(() => {
    if (isCopied) {
      setTimeout(() => {
        setIsCopied(false);
      }, 2500);
    }
  }, [isCopied]);

  async function copyToClipboard(text) {
    if (!navigator.clipboard) {
      // Clipboard API not supported
      try {
        // Fallback for older browsers (like Firefox before v49)
        const input = document.createElement("input");
        document.body.appendChild(input);
        input.setAttribute("value", window.location.href);
        input.select();
        document.execCommand("copy");
        document.body.removeChild(input);
        setIsCopied(true);
      } catch (err) {
        console.error("Failed to copy text: ", err);
        setIsCopied(false);
      }
    } else {
      try {
        await navigator.clipboard.writeText(window.location.href);
        setIsCopied(true);
      } catch (err) {
        console.error("Failed to copy text: ", err);
        setIsCopied(false);
      }
    }
  }

  return [isCopied, copyToClipboard];
}

export default useCopyToClipboard;