|
1 | | -// Amsterdam is TBC — redirect to /day until confirmed |
2 | | -import { redirect } from "next/navigation" |
| 1 | +import { Metadata } from "next" |
| 2 | + |
| 3 | +import { Button } from "@/app/conf/_design-system/button" |
| 4 | +import { Hero, HeroDateAndLocation } from "../components/hero" |
| 5 | +import { AboutSection } from "../components/about-section" |
| 6 | +import { WhyAttendSection } from "../components/why-attend-section" |
| 7 | +import { |
| 8 | + BecomeASpeakerSection, |
| 9 | + CfpButton, |
| 10 | +} from "../components/become-a-speaker" |
| 11 | +import { EventPartnersSection } from "../components/event-partners" |
| 12 | +import { CtaCardSection } from "../components/cta-card-section" |
| 13 | +import { MarqueeRows } from "@/app/conf/2026/components/marquee-rows" |
| 14 | +import { PastSpeakersSection } from "../components/past-speakers" |
| 15 | +import { NavbarPlaceholder } from "../components/navbar" |
| 16 | +import { GallerySection } from "../../gallery-section" |
| 17 | + |
| 18 | +const MARQUEE_ITEMS = [ |
| 19 | + ["AMSTERDAM", "JUNE 2026", "GRAPHQL DAY", "FOST", "COMMUNITY", "APIs"], |
| 20 | + [ |
| 21 | + "OPEN SOURCE", |
| 22 | + "WORKSHOPS", |
| 23 | + "FEDERATION", |
| 24 | + "DEVELOPER EXPERIENCE", |
| 25 | + "GRAPHQL DAY", |
| 26 | + "AMSTERDAM", |
| 27 | + ], |
| 28 | +] |
| 29 | + |
| 30 | +export const metadata: Metadata = { |
| 31 | + title: "GraphQL Day @ FOST AMSTERDAM — June 9-10", |
| 32 | +} |
3 | 33 |
|
4 | 34 | export default function AmsterdamPage() { |
5 | | - redirect("/day") |
| 35 | + return ( |
| 36 | + <> |
| 37 | + <NavbarPlaceholder className="top-0 bg-neu-100 before:bg-white/30 dark:bg-neu-50/50 dark:before:bg-blk/40" /> |
| 38 | + <main className="gql-all-anchors-focusable"> |
| 39 | + <Hero subtitle="@ FOST Amsterdam" colorScheme="neutral"> |
| 40 | + <HeroDateAndLocation |
| 41 | + date="Jun 9-10, 2026" |
| 42 | + dateTime="2026-06-09" |
| 43 | + location="Amsterdam, The Netherlands" |
| 44 | + /> |
| 45 | + <div className="flex flex-wrap items-center gap-x-4 gap-y-2 max-sm:*:flex-1"> |
| 46 | + <Button disabled className="whitespace-nowrap opacity-55 md:w-fit"> |
| 47 | + Tickets coming soon |
| 48 | + </Button> |
| 49 | + <CfpButton className="whitespace-nowrap md:w-fit" /> |
| 50 | + </div> |
| 51 | + </Hero> |
| 52 | + <AboutSection /> |
| 53 | + <MarqueeRows |
| 54 | + variant="primary" |
| 55 | + className="z-10 bg-neu-0 py-4 max-sm:pb-1 sm:py-6 md:space-y-2 md:py-12" |
| 56 | + items={MARQUEE_ITEMS} |
| 57 | + /> |
| 58 | + <div className="gql-container gql-conf-navbar-strip text-neu-900 before:bg-white/40 before:dark:bg-blk/30"> |
| 59 | + <WhyAttendSection /> |
| 60 | + <BecomeASpeakerSection /> |
| 61 | + <PastSpeakersSection /> |
| 62 | + <EventPartnersSection /> |
| 63 | + <GallerySection moving /> |
| 64 | + <CtaCardSection |
| 65 | + title="Stay tuned" |
| 66 | + description="Join us for a day of GraphQL talks, networking, and hands-on learning at FOST Amsterdam." |
| 67 | + > |
| 68 | + <Button |
| 69 | + disabled |
| 70 | + variant="primary" |
| 71 | + className="whitespace-nowrap opacity-55" |
| 72 | + > |
| 73 | + Tickets coming soon |
| 74 | + </Button> |
| 75 | + </CtaCardSection> |
| 76 | + <MarqueeRows |
| 77 | + variant="secondary" |
| 78 | + className="my-8 xl:mb-16 xl:mt-10" |
| 79 | + items={MARQUEE_ITEMS} |
| 80 | + /> |
| 81 | + </div> |
| 82 | + </main> |
| 83 | + </> |
| 84 | + ) |
6 | 85 | } |
0 commit comments