From 499d2f3a47c8f342f523a219edccb31db54696c0 Mon Sep 17 00:00:00 2001 From: jyswee Date: Thu, 23 Jul 2026 22:11:01 +0000 Subject: [PATCH] Seed: event template (15 files) --- src/pages/Speakers.tsx | 74 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 src/pages/Speakers.tsx diff --git a/src/pages/Speakers.tsx b/src/pages/Speakers.tsx new file mode 100644 index 0000000..3b1d490 --- /dev/null +++ b/src/pages/Speakers.tsx @@ -0,0 +1,74 @@ +import { useState } from "react"; +import { Link } from "react-router-dom"; +import { Badge } from "@/components/ui/badge"; +import { Button } from "@/components/ui/button"; +import { Card, CardContent } from "@/components/ui/card"; +import { Input } from "@/components/ui/input"; +import { Search, Twitter, Linkedin, Github } from "lucide-react"; +import Header from "@/components/Header"; +import Footer from "@/components/Footer"; + +const speakers = [ + { id: "speaker-1", initials: "SK", name: "Sarah Kim", role: "VP Engineering", company: "Vercel", tags: ["React", "Performance", "SSR"], gradient: "from-indigo-500 to-cyan-500" }, + { id: "speaker-2", initials: "AM", name: "Alex Morgan", role: "CTO", company: "Supabase", tags: ["TypeScript", "APIs", "Open Source"], gradient: "from-purple-500 to-pink-500" }, + { id: "speaker-3", initials: "RJ", name: "Raj Joshi", role: "Staff Engineer", company: "Google", tags: ["Backend", "GraphQL", "AI"], gradient: "from-cyan-500 to-emerald-500" }, + { id: "speaker-4", initials: "LP", name: "Lisa Park", role: "Design Lead", company: "Figma", tags: ["Design Systems", "Figma", "UX"], gradient: "from-amber-500 to-red-500" }, + { id: "speaker-5", initials: "TW", name: "Tom Walsh", role: "Creator", company: "Bun", tags: ["Runtimes", "Tooling", "Bun"], gradient: "from-pink-500 to-violet-500" }, + { id: "speaker-6", initials: "DN", name: "Diana Nguyen", role: "SRE Lead", company: "Netflix", tags: ["DevOps", "SRE", "Kubernetes"], gradient: "from-emerald-500 to-indigo-500" }, + { id: "speaker-7", initials: "JC", name: "James Chen", role: "Principal Eng", company: "Cloudflare", tags: ["WebAssembly", "Rust", "Edge"], gradient: "from-rose-500 to-amber-500" }, + { id: "speaker-8", initials: "MH", name: "Maya Hassan", role: "A11y Lead", company: "Mozilla", tags: ["Accessibility", "CSS", "HTML"], gradient: "from-violet-500 to-cyan-500" }, + { id: "speaker-9", initials: "KL", name: "Kevin Lee", role: "Security Eng", company: "Auth0", tags: ["Security", "Auth", "Crypto"], gradient: "from-indigo-500 to-pink-500" }, +]; + +export default function SpeakersPage() { + const [search, setSearch] = useState(""); + const filtered = speakers.filter((s) => s.name.toLowerCase().includes(search.toLowerCase()) || s.tags.some((t) => t.toLowerCase().includes(search.toLowerCase()))); + + return ( +
+
+ +
+

Speakers

+

Meet the brilliant minds shaping the future of technology.

+
+ + setSearch(e.target.value)} className="pl-10 bg-slate-900 border-slate-700 text-white placeholder:text-slate-500" /> +
+
+ +
+
+ {filtered.map((sp) => ( + + +
+ {sp.initials} +
+
{sp.name}
+
{sp.role}, {sp.company}
+ 2 talks +
+ {sp.tags.map((tag) => ( + {tag} + ))} +
+
+ {[Twitter, Linkedin, Github].map((Icon, i) => ( + + ))} +
+ +
+
+ ))} +
+ {filtered.length === 0 &&

No speakers found matching your search.

} +
+ +
+ ); +} \ No newline at end of file