From c548049655f21d76a58c29b95ae9535e2a3ac4f0 Mon Sep 17 00:00:00 2001 From: Houwray Date: Sat, 25 Apr 2026 15:19:48 +1200 Subject: [PATCH] Add multi-page routing with navbar navigation --- src/app/pages/about/page.tsx | 9 ++++++ src/app/pages/claim-id/page.tsx | 49 +++++++++++++++++++++++++++++++++ src/app/pages/events/page.tsx | 9 ++++++ src/app/pages/partners/page.tsx | 9 ++++++ src/components/navbar.tsx | 37 +++++++++++++------------ 5 files changed, 95 insertions(+), 18 deletions(-) create mode 100644 src/app/pages/about/page.tsx create mode 100644 src/app/pages/claim-id/page.tsx create mode 100644 src/app/pages/events/page.tsx create mode 100644 src/app/pages/partners/page.tsx diff --git a/src/app/pages/about/page.tsx b/src/app/pages/about/page.tsx new file mode 100644 index 0000000..e23c46c --- /dev/null +++ b/src/app/pages/about/page.tsx @@ -0,0 +1,9 @@ +import { About } from "@/components/about"; + +export default function AboutPage() { + return ( +
+ +
+ ); +} \ No newline at end of file diff --git a/src/app/pages/claim-id/page.tsx b/src/app/pages/claim-id/page.tsx new file mode 100644 index 0000000..7b68fed --- /dev/null +++ b/src/app/pages/claim-id/page.tsx @@ -0,0 +1,49 @@ +import { EnsClaim } from "@/components/ens-claim"; +import { CheckCircle, Wallet, Globe } from "lucide-react"; + +const features = [ + { + icon: CheckCircle, + title: "Verified Member", + description: "Show your club affiliation prominently on social media and leaderboards.", + }, + { + icon: Wallet, + title: "Easy Transfers", + description: "Send and receive crypto easily without copying 42-character hex strings.", + }, + { + icon: Globe, + title: "Web3 Native", + description: "Log into dApps seamlessly using your new human-readable ENS subname.", + }, +]; + +export default function ClaimIdPage() { + return ( +
+
+

+ Get your .web3uoa.eth identity +

+

+ Ditch the long standard wallet addresses. Claim your personalised, readable Web3 + identity, exclusive to University of Auckland Web3 Club members. +

+
+ {features.map((feature) => { + const Icon = feature.icon; + return ( +
+ +

{feature.title}

+

{feature.description}

+
+ ); + })} +
+ +
+
+ ); +} \ No newline at end of file diff --git a/src/app/pages/events/page.tsx b/src/app/pages/events/page.tsx new file mode 100644 index 0000000..fbced64 --- /dev/null +++ b/src/app/pages/events/page.tsx @@ -0,0 +1,9 @@ +import { Events } from "@/components/events"; + +export default function EventsPage() { + return ( +
+ +
+ ); +} \ No newline at end of file diff --git a/src/app/pages/partners/page.tsx b/src/app/pages/partners/page.tsx new file mode 100644 index 0000000..4a9f9dd --- /dev/null +++ b/src/app/pages/partners/page.tsx @@ -0,0 +1,9 @@ +import { Sponsors } from "@/components/sponsors"; + +export default function SponsorsPage() { + return ( +
+ +
+ ); +} \ No newline at end of file diff --git a/src/components/navbar.tsx b/src/components/navbar.tsx index 7db2c27..3563f5d 100644 --- a/src/components/navbar.tsx +++ b/src/components/navbar.tsx @@ -4,12 +4,13 @@ import { Button } from "@/components/ui/button"; import { Menu, X } from "lucide-react"; import { useAccount } from "wagmi"; import { isAllowedAdminAddress } from "@/lib/admin-auth"; +import Link from "next/link"; const navLinks = [ - { label: "About", href: "#about" }, - { label: "Events", href: "#events" }, - { label: "Partners", href: "#partners" }, - { label: "Claim your Web3 ID!", href: "#identity", isCTA: true }, + { label: "About", href: "/pages/about" }, + { label: "Events", href: "/pages/events" }, + { label: "Partners", href: "/pages/partners" }, + { label: "Claim your Web3 ID!", href: "/pages/claim-id", isCTA: true }, ]; export function Navbar() { @@ -27,46 +28,46 @@ export function Navbar() {