@@ -19,6 +19,7 @@ import { Tag } from "@/app/conf/_design-system/tag"
19
19
import { eventsColors } from "../../utils"
20
20
import { PinIcon } from "../../pixelarticons/pin-icon"
21
21
import { CalendarIcon } from "../../pixelarticons/calendar-icon"
22
+ import { SpeakerCard } from "../../components/speaker-card"
22
23
23
24
function getEventTitle ( event : ScheduleSession , speakers : string [ ] ) : string {
24
25
let { name } = event
@@ -80,14 +81,17 @@ export default function SessionPage({ params }: SessionProps) {
80
81
)
81
82
82
83
return (
83
- < main className = "gql-all-anchors-focusable gql-conf-container gql-conf-section " >
84
- < NavbarPlaceholder className = "top-0 bg-neu-0 before:bg-white/40 dark:bg-pri-darker dark:before:bg-blk/30" />
84
+ < main className = "gql-all-anchors-focusable" >
85
+ < NavbarPlaceholder className = "top-0 bg-neu-0 before:bg-white/40 dark:bg-neu-0 dark:before:bg-blk/30" />
85
86
< div className = "gql-conf-container gql-conf-navbar-strip text-neu-900 before:bg-white/40 before:dark:bg-blk/30" >
86
- < div className = "py-10" >
87
+ < div className = "mx-auto max-w-[1088px] py-10" >
87
88
< section className = "mx-auto min-h-[80vh] flex-col justify-center px-2 sm:px-0 lg:justify-between" >
88
89
< SessionHeader event = { event } eventTitle = { eventTitle } />
89
90
< SessionVideo event = { event } eventTitle = { eventTitle } />
90
- < p > { event . description } </ p >
91
+ < SessionSpeakers event = { event } />
92
+ < p className = "py-8 typography-body-lg lg:py-10" >
93
+ { event . description }
94
+ </ p >
91
95
92
96
< div className = "py-8" >
93
97
{ event . files ?. map ( ( { path } ) => (
@@ -163,57 +167,20 @@ function SessionHeader({
163
167
</ div >
164
168
< SessionTags session = { event } />
165
169
</ div >
166
-
167
- < div className = "mt-8 flex flex-col flex-wrap gap-5 lg:flex-row" >
168
- { event . speakers ! . map ( speaker => (
169
- < div
170
- className = { `flex w-full items-center gap-3 ${ event ?. speakers ?. length || 0 > 1 ? "max-w-[320px]" : "" } ` }
171
- key = { speaker . username }
172
- >
173
- < Avatar
174
- className = "size-[100px] lg:size-[120px]"
175
- avatar = { speaker . avatar }
176
- name = { speaker . name }
177
- />
178
-
179
- < div className = "flex flex-col gap-1.5 lg:gap-1" >
180
- < a
181
- href = { `/conf/2024/speakers/${ speaker . username } ` }
182
- className = "mt-0 typography-body-lg"
183
- >
184
- { speaker . name }
185
- </ a >
186
-
187
- < span className = "typography-body-sm" >
188
- < span > { speaker . company } </ span >
189
- { speaker . company && ", " }
190
- { speaker . position }
191
- </ span >
192
- { speaker . socialurls ?. length ? (
193
- < div className = "mt-0 text-[#333333]" >
194
- < div className = "flex space-x-2" >
195
- { speaker . socialurls . map ( social => (
196
- < a
197
- key = { social . url }
198
- href = { social . url }
199
- target = "_blank"
200
- rel = "noreferrer"
201
- className = "flex items-center text-blk"
202
- >
203
- < SocialMediaIcon
204
- service = {
205
- social . service . toLowerCase ( ) as SocialMediaIconServiceType
206
- }
207
- />
208
- </ a >
209
- ) ) }
210
- </ div >
211
- </ div >
212
- ) : null }
213
- </ div >
214
- </ div >
215
- ) ) }
216
- </ div >
217
170
</ header >
218
171
)
219
172
}
173
+
174
+ function SessionSpeakers ( { event } : { event : ScheduleSession } ) {
175
+ return (
176
+ < div className = "mt-8 flex flex-col flex-wrap gap-5 lg:flex-row" >
177
+ { event . speakers ! . map ( speaker => (
178
+ < SpeakerCard
179
+ key = { speaker . username }
180
+ speaker = { speaker }
181
+ year = "2025"
182
+ />
183
+ ) ) }
184
+ </ div >
185
+ )
186
+ }
0 commit comments