diff --git a/package-lock.json b/package-lock.json index eebbca7..cd975b4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "plotlink", - "version": "1.38.0", + "version": "1.39.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "plotlink", - "version": "1.38.0", + "version": "1.39.0", "workspaces": [ "packages/*" ], diff --git a/package.json b/package.json index af6351e..f6ecd8c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "plotlink", - "version": "1.38.0", + "version": "1.39.0", "private": true, "workspaces": [ "packages/*" diff --git a/src/components/airdrop/ReferralCTA.tsx b/src/components/airdrop/ReferralCTA.tsx index 965e8a7..d90ab9e 100644 --- a/src/components/airdrop/ReferralCTA.tsx +++ b/src/components/airdrop/ReferralCTA.tsx @@ -1,10 +1,82 @@ "use client"; +import { useEffect, useState } from "react"; +import { useAccount } from "wagmi"; + export function ReferralCTA() { + const { address, isConnected } = useAccount(); + const [fetchState, setFetchState] = useState<{ code: string | null; addr: string | null }>({ code: null, addr: null }); + const [copied, setCopied] = useState(false); + + useEffect(() => { + if (!isConnected || !address) return; + + let cancelled = false; + fetch(`/api/airdrop/referral-code?address=${address.toLowerCase()}`) + .then(r => r.ok ? r.json() : null) + .then(d => { if (!cancelled) setFetchState({ code: d?.code ?? null, addr: address.toLowerCase() }); }) + .catch(() => { if (!cancelled) setFetchState({ code: null, addr: address.toLowerCase() }); }); + return () => { cancelled = true; }; + }, [isConnected, address]); + + const code = fetchState.addr === address?.toLowerCase() ? fetchState.code : null; + + if (!code) { + return ( +
Your referral link will appear once activation is complete.
+Share your referral link to boost your multiplier.
++ Each qualified referral adds +0.2 to your multiplier (up to 3.0×). +