diff --git a/package.json b/package.json index 09ded99c..e9ea6dbc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "plotlink", - "version": "0.1.38", + "version": "0.1.39", "private": true, "workspaces": [ "packages/*" diff --git a/src/components/airdrop/CampaignHero.tsx b/src/components/airdrop/CampaignHero.tsx index 5395d1a4..d2175380 100644 --- a/src/components/airdrop/CampaignHero.tsx +++ b/src/components/airdrop/CampaignHero.tsx @@ -477,6 +477,57 @@ function TimelineChart({ ); } +/* ─── Stats row sub-component ─── */ + +function StatsRow({ + participants, + currentFdv, + tiers, +}: { + participants: number; + currentFdv: number; + tiers: Tier[]; +}) { + // Find next milestone + const nextTierIdx = tiers.findIndex((t) => currentFdv < t.fdv); + const allReached = nextTierIdx === -1; + const nextTier = allReached ? null : tiers[nextTierIdx]; + const progressPct = allReached + ? 100 + : nextTier + ? Math.min(100, Math.round((currentFdv / nextTier.fdv) * 100)) + : 0; + + const progressLabel = allReached + ? `${tiers[tiers.length - 1].emoji} ${tiers[tiers.length - 1].label} Achieved!` + : `Progress to ${nextTier!.emoji} ${nextTier!.label}`; + + return ( +