diff --git a/landing/src/app/page.tsx b/landing/src/app/page.tsx index b3349477..bc75a214 100644 --- a/landing/src/app/page.tsx +++ b/landing/src/app/page.tsx @@ -12,6 +12,7 @@ import {Navbar} from "@/components/Navbar"; import {Personalities} from "@/components/Personalities"; import {AppleIcon, LinuxIcon, WindowsIcon} from "@/components/PlatformIcons"; import {SupportedModels} from "@/components/SupportedModels"; +import {TokenSection} from "@/components/TokenSection"; import {TutorialsSection} from "@/components/TutorialsSection"; import {VoiceCreator} from "@/components/VoiceCreator"; import {GITHUB_REPO} from "@/lib/constants"; @@ -130,6 +131,9 @@ export default function Home() { + {/* ── $VOICEBOX token ──────────────────────────────────────── */} + + {/* ── Features ─────────────────────────────────────────────── */} diff --git a/landing/src/components/TokenSection.tsx b/landing/src/components/TokenSection.tsx new file mode 100644 index 00000000..b3ff9db4 --- /dev/null +++ b/landing/src/components/TokenSection.tsx @@ -0,0 +1,105 @@ +"use client"; + +import {ArrowUpRight, Check, Coins, Copy} from "lucide-react"; +import {useState} from "react"; +import { + TOKEN_CONTRACT_ADDRESS, + TOKEN_PUMP_URL, + TOKEN_TICKER, +} from "@/lib/constants"; + +export function TokenSection() { + const [copied, setCopied] = useState(false); + + const handleCopy = async () => { + try { + await navigator.clipboard.writeText(TOKEN_CONTRACT_ADDRESS); + setCopied(true); + setTimeout(() => setCopied(false), 2000); + } catch { + // Clipboard unavailable (e.g. insecure context) — silently no-op. + } + }; + + return ( + + + {/* Subtle accent glow */} + + + + + {/* Header */} + + + + + Official token + + + + {TOKEN_TICKER} on Solana + + + The official {TOKEN_TICKER} token for supporters who want to back + the project and have some fun. Voicebox is and always will be{" "} + free and open source — the token + is entirely optional and not required to use anything here. + + + + {/* Contract address + CTA */} + + + + Contract address + + + + Solana + + + + + {/* Address bar */} + + + {TOKEN_CONTRACT_ADDRESS} + + {copied ? ( + + + Copied + + ) : ( + + + Copy + + )} + + + {/* Buy CTA */} + + Buy on pump.fun + + + + + + + ); +}
+ The official {TOKEN_TICKER} token for supporters who want to back + the project and have some fun. Voicebox is and always will be{" "} + free and open source — the token + is entirely optional and not required to use anything here. +
+ {TOKEN_CONTRACT_ADDRESS} +