import { createFileRoute } from '@tanstack/react-router' import { marked } from 'marked' import { MapPin, Award, ArrowLeft } from 'lucide-react' import { Link } from '@tanstack/react-router' import { allSpeakers, allTalks } from 'content-collections' import RemyAssistant from '#/components/RemyAssistant' import TalkCard from '#/components/TalkCard' export const Route = createFileRoute('/speakers/$slug')({ loader: async ({ params }) => { const speaker = allSpeakers.find((s) => s.slug === params.slug) if (!speaker) { throw new Error('Speaker not found') } const speakerTalks = allTalks.filter((t) => t.speaker === speaker.name) return { speaker, speakerTalks } }, component: SpeakerDetailPage, }) function SpeakerDetailPage() { const { speaker, speakerTalks } = Route.useLoaderData() return (
{/* Back navigation */}
All Speakers
{/* Hero section */}
{/* Photo */}
{speaker.name}
{/* Info */}
{/* Specialty tag */} {speaker.specialty}

{speaker.name}

{speaker.title}

{speaker.restaurant}, {speaker.location}
{/* Awards */} {speaker.awards && speaker.awards.length > 0 && (

Awards & Recognition

{speaker.awards.map((award) => ( {award} ))}
)}
{/* Bio section */}
{/* Speaker's talks */} {speakerTalks.length > 0 && (

Sessions by {speaker.name}

{speakerTalks.map((talk) => ( ))}
)}
) }