Skip to content

Commit f1c8b74

Browse files
committed
Display clock icon and duration for lightning talks
1 parent df1aa07 commit f1c8b74

File tree

3 files changed

+34
-4
lines changed

3 files changed

+34
-4
lines changed

src/app/conf/2025/schedule/_components/schedule-list.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,9 @@ export function ScheduleList({
214214
?.toLowerCase()
215215
.includes("break")
216216
const hasDashedBorder =
217-
blockEnd && blockEnd === nextBlockStart && !isBreak
217+
blockEnd &&
218+
blockEnd.getTime() === nextBlockStart?.getTime() &&
219+
!isBreak
218220

219221
return (
220222
<div
@@ -234,6 +236,7 @@ export function ScheduleList({
234236
session={session}
235237
year={year}
236238
eventsColors={eventsColors}
239+
blockEnd={blockEnd}
237240
/>
238241
))}
239242
</div>

src/app/conf/2025/schedule/_components/schedule-session-card.tsx

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { Anchor } from "@/app/conf/_design-system/anchor"
77
import { Tag } from "@/app/conf/_design-system/tag"
88

99
import { PinIcon } from "@/app/conf/_design-system/pixelarticons/pin-icon"
10+
import ClockIcon from "@/app/conf/_design-system/pixelarticons/clock.svg?svgr"
1011

1112
import { getEventTitle } from "../../utils"
1213
import { CalendarIcon } from "@/app/conf/_design-system/pixelarticons/calendar-icon"
@@ -19,10 +20,12 @@ export function ScheduleSessionCard({
1920
session,
2021
year,
2122
eventsColors,
23+
blockEnd,
2224
}: {
2325
session: ScheduleSession
2426
year: `202${number}`
2527
eventsColors: Record<string, string>
28+
blockEnd: Date
2629
}) {
2730
let eventType = session.event_type
2831

@@ -43,6 +46,19 @@ export function ScheduleSessionCard({
4346

4447
const eventColor = eventsColors[session.event_type]
4548

49+
let blockTimeFraction = 1
50+
if (blockEnd.getTime() !== new Date(session.event_end).getTime()) {
51+
blockTimeFraction =
52+
(new Date(session.event_end).getTime() -
53+
new Date(session.event_start).getTime()) /
54+
(blockEnd.getTime() - new Date(session.event_start).getTime())
55+
56+
console.log({
57+
eventTitle,
58+
blockTimeFraction,
59+
})
60+
}
61+
4662
return session.event_type === "Breaks" ? (
4763
<div className="flex size-full items-center bg-neu-0 px-4 py-2 font-normal">
4864
{eventTitle}
@@ -86,15 +102,27 @@ export function ScheduleSessionCard({
86102
))}
87103
</span>
88104
)}
89-
<span className="mt-4 flex items-center justify-between gap-2 xl:mt-6">
105+
<span className="mt-4 flex items-center gap-2 xl:mt-6">
90106
<span className="typography-body-xs flex items-center gap-0.5">
91107
<PinIcon className="size-4 text-pri-base" />
92108
{session.venue}
93109
</span>
110+
{blockTimeFraction < 1 && (
111+
<span className="typography-body-xs flex items-center gap-0.5">
112+
<ClockIcon className="size-4 text-pri-base" />
113+
{Math.round(
114+
(new Date(session.event_end).getTime() -
115+
new Date(session.event_start).getTime()) /
116+
(1000 * 60),
117+
)}{" "}
118+
min
119+
</span>
120+
)}
94121
<AddToCalendarLink
95122
eventTitle={eventTitle}
96123
session={session}
97124
speakers={session.speakers || []}
125+
className="ml-auto"
98126
/>
99127
</span>
100128
</span>

src/app/conf/_design-system/pixelarticons/clock.svg

Lines changed: 1 addition & 2 deletions
Loading

0 commit comments

Comments
 (0)