import { createFileRoute, Link } from '@tanstack/react-router' import { Clock, Calendar, MapPin, ChevronRight } from 'lucide-react' import { useState } from 'react' import { allTalks, allSpeakers } from 'content-collections' import RemyAssistant from '#/components/RemyAssistant' export const Route = createFileRoute('/schedule/')({ component: SchedulePage, }) // Helper to get speaker data by name function getSpeakerByName(name: string) { return allSpeakers.find( (s) => s.name.toLowerCase() === name.toLowerCase() ) } // Define the conference schedule with time slots const scheduleData = [ { day: 1, date: 'March 15, 2026', dayName: 'Day One', theme: 'French Foundations', sessions: [ { time: '9:00 AM', talkSlug: 'french-macaron-mastery' }, { time: '11:30 AM', talkSlug: 'croissant-lamination-secrets' }, { time: '3:00 PM', talkSlug: 'the-science-of-sugar' }, ], }, { day: 2, date: 'March 16, 2026', dayName: 'Day Two', theme: 'Global Traditions', sessions: [ { time: '9:00 AM', talkSlug: 'sourdough-from-starter-to-masterpiece' }, { time: '11:30 AM', talkSlug: 'umami-in-pastry-east-meets-west' }, { time: '2:30 PM', talkSlug: 'savory-breads-of-the-mediterranean' }, ], }, { day: 3, date: 'March 17, 2026', dayName: 'Day Three', theme: 'Artisan Mastery', sessions: [ { time: '9:00 AM', talkSlug: 'the-art-of-the-perfect-tart' }, { time: '11:00 AM', talkSlug: 'neapolitan-pizza-tradition-meets-innovation' }, ], }, ] function SchedulePage() { const [selectedDay, setSelectedDay] = useState(1) const currentDayData = scheduleData.find((d) => d.day === selectedDay)! return ( <>
{/* Hero section */}
March 15-17, 2026 Paris, France

Conference Schedule

Three days of masterclasses, demonstrations, and culinary inspiration from the world's finest pastry artisans.

{/* Day selector tabs */}
{scheduleData.map((day) => ( ))}
{/* Day theme header */}

{currentDayData.dayName}: {currentDayData.theme}

{currentDayData.date}

{/* Schedule timeline */}
{/* Timeline line */}
{/* Sessions */}
{currentDayData.sessions.map((session, index) => { const talk = allTalks.find((t) => t.slug === session.talkSlug) if (!talk) return null const speaker = getSpeakerByName(talk.speaker) return (
{/* Time marker */}
{/* Timeline dot */}
{session.time}
{/* Session card */}
{/* Background image with overlay */}
{talk.title}
{/* Content */}
{/* Speaker image */} {speaker && (
{speaker.name}
)} {/* Talk info */}
{/* Topics */}
{talk.topics.slice(0, 3).map((topic) => ( {topic} ))}
{/* Title */}

{talk.title}

{/* Speaker & Duration */}
{talk.speaker}
{talk.duration}
{/* Speaker title if available */} {speaker && (

{speaker.title} at {speaker.restaurant}

)}
{/* Arrow indicator */}
) })}
{/* Bottom CTA */}

Don't Miss a Single Session

Each masterclass offers hands-on learning from the world's finest pastry artisans.

Browse All Sessions Meet the Speakers
) }