"use client"; import { useState } from "react"; /** * Copies the user's referral link to the clipboard. Mirrors AtomCMS's * copyCode() helper on the /me page, but resolves the link to an absolute URL * (the server only knows a relative path, so we prepend the current origin). */ export default function CopyReferralButton({ value }: { value: string }) { const [copied, setCopied] = useState(false); async function copy() { const absolute = typeof window !== "undefined" && value.startsWith("/") ? `${window.location.origin}${value}` : value; try { await navigator.clipboard.writeText(absolute); } catch { // Older browsers / insecure contexts: fall back to a hidden textarea. const ta = document.createElement("textarea"); ta.value = absolute; ta.style.position = "fixed"; ta.style.opacity = "0"; document.body.appendChild(ta); ta.select(); try { document.execCommand("copy"); } catch { /* give up silently */ } document.body.removeChild(ta); } setCopied(true); setTimeout(() => setCopied(false), 2000); } return ( ); }