GRV-Summit-Site/app/program/page.tsx
“kirukib” 3693495dd0
Some checks are pending
Deploy to Cloudflare Workers (OpenNext) / deploy (push) Waiting to run
Add site-wide topography patterns and refine section styling.
Use mainwhite.svg on white sections with curvy green transitions into flat green bands, improve text and button contrast, and deploy via OpenNext on Cloudflare Workers.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-20 20:34:36 +03:00

83 lines
2.9 KiB
TypeScript

import type { Metadata } from "next";
import Image from "next/image";
import Link from "next/link";
import { pageSeo } from "@/content/page-seo";
import { createPageMetadata } from "@/lib/seo";
import { programDays } from "@/content/program";
import { pillars } from "@/content/tracks";
import { PageRiftHeader } from "@/components/layout/PageRiftHeader";
import { Section } from "@/components/layout/Section";
import { TopoProseSurface } from "@/components/layout/TopoProseSurface";
import { Button } from "@/components/ui/button";
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card";
export const metadata: Metadata = createPageMetadata(pageSeo.program);
export default function ProgramPage() {
return (
<>
<PageRiftHeader
variant="program"
eyebrow="Program"
title={<h1 className="text-4xl font-bold md:text-5xl">Event program</h1>}
description={
<p>
Two days of workshops, panels, exhibition, and the Great Rift Valley Pitch Competition at
Skylight Hotel, Addis Ababa.
</p>
}
/>
<Section>
<div className="grid gap-8 md:grid-cols-2">
{programDays.map((day) => (
<Card key={day.id} className="overflow-hidden">
<div className="relative h-48">
<Image
src={day.image || "/branding/booth-mockup.png"}
alt={day.title}
fill
className="object-cover"
/>
</div>
<CardHeader>
<p className="text-xs font-semibold uppercase text-[#ffb300]">{day.date}</p>
<CardTitle>{day.title}</CardTitle>
<CardDescription>{day.description}</CardDescription>
</CardHeader>
<CardContent>
<ul className="space-y-2 text-sm text-muted-foreground">
{day.highlights.map((h) => (
<li key={h}>· {h}</li>
))}
</ul>
</CardContent>
</Card>
))}
</div>
</Section>
<Section variant="muted">
<TopoProseSurface className="inline-block">
<h2 className="text-2xl font-bold">Innovation pillars</h2>
</TopoProseSurface>
<div className="mt-6 grid gap-4 md:grid-cols-3">
{pillars.map((p) => (
<Card key={p.id}>
<CardHeader>
<CardTitle>{p.title}</CardTitle>
</CardHeader>
<CardContent>
<p className="text-sm text-muted-foreground">{p.description}</p>
</CardContent>
</Card>
))}
</div>
<Button className="mt-10 rounded-full bg-[#ffb300] text-[#0f0404]" asChild>
<Link href="/pitch-competition">Pitch competition details</Link>
</Button>
</Section>
</>
);
}