@@ -20,6 +20,7 @@ import { eventsColors } from "../../utils"
2020import { PinIcon } from "../../pixelarticons/pin-icon"
2121import { CalendarIcon } from "../../pixelarticons/calendar-icon"
2222import { SpeakerCard } from "../../components/speaker-card"
23+ import { Anchor } from "@/app/conf/_design-system/anchor"
2324
2425function getEventTitle ( event : ScheduleSession , speakers : string [ ] ) : string {
2526 let { name } = event
@@ -86,10 +87,10 @@ export default function SessionPage({ params }: SessionProps) {
8687 < div className = "gql-conf-container gql-conf-navbar-strip text-neu-900 before:bg-white/40 before:dark:bg-blk/30" >
8788 < div className = "mx-auto max-w-[1088px] py-10" >
8889 < section className = "mx-auto min-h-[80vh] flex-col justify-center px-2 sm:px-0 lg:justify-between" >
89- < SessionHeader event = { event } eventTitle = { eventTitle } />
90+ < SessionHeader event = { event } eventTitle = { eventTitle } year = "2025" />
9091 < SessionVideo event = { event } eventTitle = { eventTitle } />
9192 < SessionSpeakers event = { event } />
92- < p className = "py-8 typography-body-lg lg:py-10" >
93+ < p className = "typography-body-lg py-8 lg:py-10" >
9394 { event . description }
9495 </ p >
9596
@@ -144,16 +145,39 @@ function SessionTags({ session }: { session: ScheduleSession }) {
144145function SessionHeader ( {
145146 event,
146147 eventTitle,
148+ year,
147149} : {
148150 event : ScheduleSession
149151 eventTitle : string | null
152+ year : number | `${number } `
150153} ) {
154+ const speakers = event . speakers || [ ]
155+
151156 return (
152157 < header >
153158 < BackLink year = "2025" kind = "schedule" />
154- < h1 className = "my-6 typography-h2" > { eventTitle } </ h1 >
159+ < p
160+ className = { clsx (
161+ "mt-8 text-neu-700" ,
162+ speakers . length >= 4 ? "typography-body-lg" : "typography-h3" ,
163+ ) }
164+ >
165+ { speakers . map ( ( s , i ) => (
166+ < >
167+ < Anchor
168+ key = { s . username }
169+ href = { `/conf/${ year } /speakers/${ s . username } ` }
170+ className = "decoration-neu-500 hover:underline dark:decoration-neu-100"
171+ >
172+ { s . name }
173+ </ Anchor >
174+ { i !== speakers . length - 1 && < span > , </ span > }
175+ </ >
176+ ) ) }
177+ </ p >
178+ < h1 className = "typography-h2 mb-6 mt-3" > { eventTitle } </ h1 >
155179 < div className = "flex flex-wrap items-center justify-between gap-2" >
156- < div className = "flex flex-col gap-4 typography-body-md md:flex-row md:gap-6" >
180+ < div className = "typography-body-md flex flex-col gap-4 md:flex-row md:gap-6" >
157181 < div className = "flex items-center gap-2" >
158182 < CalendarIcon className = "size-5 text-sec-darker dark:text-sec-light/90 sm:size-6" />
159183 < time dateTime = "2025-09-08" > September 08</ time >
@@ -175,11 +199,7 @@ function SessionSpeakers({ event }: { event: ScheduleSession }) {
175199 return (
176200 < div className = "mt-8 flex flex-col flex-wrap gap-5 lg:flex-row" >
177201 { event . speakers ! . map ( speaker => (
178- < SpeakerCard
179- key = { speaker . username }
180- speaker = { speaker }
181- year = "2025"
182- />
202+ < SpeakerCard key = { speaker . username } speaker = { speaker } year = "2025" />
183203 ) ) }
184204 </ div >
185205 )
0 commit comments