Skip to content

Commit d6b974f

Browse files
committed
Add a speaker name above the title
1 parent 95489a8 commit d6b974f

File tree

1 file changed

+29
-9
lines changed

1 file changed

+29
-9
lines changed

src/app/conf/2025/schedule/[id]/page.tsx

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import { eventsColors } from "../../utils"
2020
import { PinIcon } from "../../pixelarticons/pin-icon"
2121
import { CalendarIcon } from "../../pixelarticons/calendar-icon"
2222
import { SpeakerCard } from "../../components/speaker-card"
23+
import { Anchor } from "@/app/conf/_design-system/anchor"
2324

2425
function 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 }) {
144145
function 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

Comments
 (0)