Redesign airdrop hero — Growing Pool with burn bar (#1011)#1014
Redesign airdrop hero — Growing Pool with burn bar (#1011)#1014realproject7 merged 3 commits intomainfrom
Conversation
#1011) Replace the complex SVG chart/StatsRow/tier-name approach with a bold "5% OF ALL PLOT — LOCKED" headline, a live burn bar showing the current burn/distribute split, and flat milestone rows showing FDV targets with unlock percentages and pool values. Delete unused MilestoneTrack component. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
realproject7
left a comment
There was a problem hiding this comment.
RE2 Review — PR #1014
Overall: Clean rewrite that hits all the acceptance criteria. The 188-line replacement for ~960 lines of SVG + chart code is a big readability win. Ship-blocking issues: 0. Suggestions below.
Nit: CMC_RANKS hardcoded to prod FDV values
CMC_RANKS maps prod milestone mcap values (1M, 10M, 50M, 100M), but test config uses different values (7K, 10K, 35K, 50K). Result: cmcRank will always be null in test mode — CMC rank annotations are invisible during development.
Not a production bug since prod values match, but it makes the feature untestable locally. Consider either:
- Keying
CMC_RANKSoff milestone index rather than exact FDV value, or - Accepting this as a known dev-only limitation and documenting it with a brief inline note
Minor observations (non-blocking)
-
Headline casing — Wireframe spec shows "GROW THE MARKET. OR WATCH IT BURN." in all-caps, but implementation uses sentence case ("Grow the market. Or watch it burn."). Intentional? Both work visually, but the all-caps version matches the "ticking bomb" energy the issue describes.
-
Lock-up link text — Changed from "View lock-up proof on Mint Club" to "Verified on Mint Club". The wireframe says "Verified on Basescan" — this may be a stale wireframe reference since the actual link points to Mint Club, so current text seems correct.
-
useDailyPricesremoval — Issue says to remove the daily-prices API dependency from the hero. The API route itself (/api/airdrop/daily-prices) still exists (used elsewhere?). Just confirming this was intentional scope — the PR correctly removes only the client-side hook.
Checklist vs. acceptance criteria
- Bold headline communicating stakes
- Burn bar showing current burn/distribute split
- "What happens as PLOT grows" — 4 rows with FDV, unlock%, PLOT amount, pool value, burn%, CMC rank
- No tier names (no Bronze/Silver/Gold/Diamond)
- Responsive without separate mobile view
- All values from config (test/prod)
- Countdown + lock-up link preserved
- SVG chart + StatsRow + MilestoneTrack removed
LGTM with the above noted. No blocking issues.
project7-interns
left a comment
There was a problem hiding this comment.
Verdict: REQUEST CHANGES
Summary
The hero rewrite is broadly aligned with the Growing Pool concept, but one acceptance-criteria field is not preserved under the config-driven test/prod milestone setup.
Findings
- [medium] CMC rank labels are keyed to the production FDV numbers, so they disappear whenever the configured milestones differ, including the current test config.
- File:
src/components/airdrop/CampaignHero.tsx:44 - File:
src/components/airdrop/CampaignHero.tsx:109 - File:
src/components/airdrop/CampaignHero.tsx:309 - Suggestion: Make CMC rank metadata config-aware or tier-key-based rather than exact-FDV-based, so each of the four rows always includes the required CMC rank while still respecting test/prod milestone values.
- File:
Decision
Requesting changes because issue #1011 explicitly requires each row to include FDV, unlock %, PLOT amount, pool value, burn %, and CMC rank, and also requires config-driven test/prod behavior. With NEXT_PUBLIC_AIRDROP_MODE=test, the configured milestone FDVs are 7K/10K/35K/50K, none of which match the hard-coded CMC_RANKS keys, so the rows render without CMC ranks.
CMC_RANKS keyed by tier index instead of exact FDV value so ranks render in both test and prod configs. Headline subtitle now uses uppercase tracking per wireframe spec. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
realproject7
left a comment
There was a problem hiding this comment.
RE2 Re-review — LGTM ✓
Both issues addressed cleanly:
- CMC_RANKS — now an index-based array instead of FDV-keyed record. Ranks render correctly in both test and prod configs. ✓
- Headline casing — subtitle uses
uppercase tracking-wide font-bold, matching wireframe spec. ✓
No new issues introduced. Ship it.
project7-interns
left a comment
There was a problem hiding this comment.
Verdict: APPROVE
Summary
The re-review fix addresses the config-driven CMC rank issue: ranks are now tier-index-based, so the four milestone rows keep CMC labels when test/prod FDV values differ. The hero matches the Growing Pool direction, preserves countdown and lock-up proof, removes the chart/StatsRow/MilestoneTrack surface, and keeps milestone values driven by /api/airdrop/status.
Findings
- No blocking findings.
Decision
Approved. Note: GitHub checks currently show Vercel skipped/canceled by ignored build step rather than a real build result, so this approval is based on diff review and acceptance criteria rather than passing CI.
Summary
CampaignHero.tsxwith bold "5% OF ALL PLOT — LOCKED" headline and burn-or-distribute narrativeMilestoneTrack.tsx(zero imports across codebase)useDailyPricesdependency (no more daily-prices API calls)What stays
/api/airdrop/status(config-driven test/prod)Closes #1011
Test plan
MilestoneTrackremoval causes no breakage🤖 Generated with Claude Code