From 61c6b343016d170d1776dfeda4cd17105965d709 Mon Sep 17 00:00:00 2001 From: Vasanth T Date: Tue, 6 Oct 2026 10:48:37 +0530 Subject: [PATCH] ui: token page hero, trade panel and details A hero that wears the token's card cover, the trade panel with price impact, proof facts, the about card, and the loading frame the market row morphs into. --- app/src/app/t/[chain]/[token]/loading.tsx | 9 +- app/src/app/t/[chain]/[token]/page.tsx | 159 ++++++++++++++---- app/src/components/launchpad/CollectPanel.tsx | 16 +- app/src/components/launchpad/CopyChip.tsx | 46 +++-- app/src/components/launchpad/HoldersPanel.tsx | 31 ++-- .../components/launchpad/LaunchReceipt.tsx | 33 ++-- .../launchpad/PendingTokenHeader.tsx | 50 ++++-- app/src/components/launchpad/TokenAbout.tsx | 56 ++++++ app/src/components/launchpad/TokenDetails.tsx | 5 +- app/src/components/launchpad/TokenProof.tsx | 77 +++++++++ app/src/components/launchpad/TokenTrades.tsx | 29 +++- app/src/components/launchpad/TradePanel.tsx | 148 ++++++++++------ .../launchpad/market-cap-sites.test.ts | 10 +- .../components/launchpad/token-page.test.ts | 55 ++++++ app/src/lib/launchpad/price-impact.test.ts | 68 ++++++++ app/src/lib/launchpad/price-impact.ts | 45 +++++ app/src/lib/launchpad/proof.test.ts | 66 ++++++++ app/src/lib/launchpad/proof.ts | 72 ++++++++ app/src/lib/launchpad/tintServer.ts | 36 ++++ 19 files changed, 841 insertions(+), 170 deletions(-) create mode 100644 app/src/components/launchpad/TokenAbout.tsx create mode 100644 app/src/components/launchpad/TokenProof.tsx create mode 100644 app/src/components/launchpad/token-page.test.ts create mode 100644 app/src/lib/launchpad/price-impact.test.ts create mode 100644 app/src/lib/launchpad/price-impact.ts create mode 100644 app/src/lib/launchpad/proof.test.ts create mode 100644 app/src/lib/launchpad/proof.ts create mode 100644 app/src/lib/launchpad/tintServer.ts diff --git a/app/src/app/t/[chain]/[token]/loading.tsx b/app/src/app/t/[chain]/[token]/loading.tsx index c395ea8a..7f112e21 100644 --- a/app/src/app/t/[chain]/[token]/loading.tsx +++ b/app/src/app/t/[chain]/[token]/loading.tsx @@ -1,15 +1,14 @@ import { Sk } from "@/components/Skeleton"; import PendingTokenHeader from "@/components/launchpad/PendingTokenHeader"; -/* Same frame as page.tsx (main padding, breadcrumb row, header): the token header that the market-row +/* Same frame as page.tsx (main padding, the hero with its cover): the token header that the market-row morph lands on must sit exactly where the real one renders, or the second hop would jump. */ export default function Loading() { - return
-
+ return
-
+
-
+
{Array.from({ length: 4 }, (_, i) =>
)}