diff --git a/src/app/conf/2025/schedule/_components/schedule-list.tsx b/src/app/conf/2025/schedule/_components/schedule-list.tsx index a19e15b86c..82727dc80e 100644 --- a/src/app/conf/2025/schedule/_components/schedule-list.tsx +++ b/src/app/conf/2025/schedule/_components/schedule-list.tsx @@ -223,6 +223,12 @@ export function ScheduleList({ blockEnd.getTime() === nextBlockStart?.getTime() && !isBreak + const endTimesDiffer = sessions.some( + session => + new Date(session.event_end).getTime() !== + blockEnd.getTime(), + ) + return (
- {formatBlockTime(sessionDate, blockEnd)} + {formatBlockTime( + sessionDate, + endTimesDiffer ? undefined : blockEnd, + )}
@@ -242,6 +251,7 @@ export function ScheduleList({ year={year} eventsColors={eventsColors} blockEnd={blockEnd} + durationVisible={endTimesDiffer} /> ))}
diff --git a/src/app/conf/2025/schedule/_components/schedule-session-card.tsx b/src/app/conf/2025/schedule/_components/schedule-session-card.tsx index 3df8cc3654..8e0872b1ac 100644 --- a/src/app/conf/2025/schedule/_components/schedule-session-card.tsx +++ b/src/app/conf/2025/schedule/_components/schedule-session-card.tsx @@ -19,6 +19,7 @@ import ClockIcon from "@/app/conf/_design-system/pixelarticons/clock.svg?svgr" import { getEventTitle } from "../../utils" import { CalendarIcon } from "@/app/conf/_design-system/pixelarticons/calendar-icon" +import { formatBlockTime } from "./format-block-time" function isString(x: unknown): x is string { return Object.prototype.toString.call(x) === "[object String]" @@ -29,11 +30,13 @@ export function ScheduleSessionCard({ year, eventsColors, blockEnd, + durationVisible, }: { session: ScheduleSession year: `202${number}` eventsColors: Record blockEnd: Date + durationVisible: boolean }) { let eventType = session.event_type @@ -139,17 +142,7 @@ export function ScheduleSessionCard({ {session.venue} )} - {blockTimeFraction < 1 && ( - - - {Math.round( - (new Date(session.event_end).getTime() - - new Date(session.event_start).getTime()) / - (1000 * 60), - )}{" "} - min - - )} + {durationVisible && } 1000 * 60 * 60 * 3 + ? formatBlockTime(session.event_start, new Date(session.event_end)) + : `${Math.round(durationMs / (1000 * 60))} min` + + return ( + + + {formattedTime} + + ) +} + function AddToCalendarLink({ eventTitle, session,