diff --git a/app/components/sport-season/EventSchedule.tsx b/app/components/sport-season/EventSchedule.tsx index 64f4cd8..3b21e99 100644 --- a/app/components/sport-season/EventSchedule.tsx +++ b/app/components/sport-season/EventSchedule.tsx @@ -10,6 +10,7 @@ interface ScheduleEvent { name: string; eventDate: string | null; eventStartsAt?: Date | string | null; + earliestGameTime?: string | null; eventType: string; isComplete: boolean; completedAt?: Date | string | null; @@ -52,10 +53,13 @@ function getEventTypeLabel(eventType: string): string { export function EventSchedule({ upcomingEvents, recentEvents, leagueId, sportsSeasonId }: EventScheduleProps) { const isMounted = useHasMounted(); - function getDisplayDate(event: Pick): string { - if (isMounted && event.eventStartsAt) { - const d = new Date(event.eventStartsAt as string); - if (!isNaN(d.getTime())) return format(d, "MMM d, yyyy"); + function getDisplayDate(event: Pick): string { + if (isMounted) { + const ts = event.earliestGameTime ?? (event.eventStartsAt as string | null | undefined); + if (ts) { + const d = new Date(ts); + if (!isNaN(d.getTime())) return format(d, "MMM d, yyyy"); + } } return formatEventDate(event.eventDate); } @@ -109,8 +113,8 @@ export function EventSchedule({ upcomingEvents, recentEvents, leagueId, sportsSe

{getDisplayDate(event)} - {isMounted && event.eventStartsAt && ( - · {format(new Date(event.eventStartsAt), "h:mm a")} + {isMounted && (event.earliestGameTime ?? event.eventStartsAt) && ( + · {new Date(event.earliestGameTime ?? (event.eventStartsAt as string)).toLocaleTimeString(undefined, { hour: "numeric", minute: "2-digit" })} )}

diff --git a/app/models/scoring-event.ts b/app/models/scoring-event.ts index 354fc76..d1abd32 100644 --- a/app/models/scoring-event.ts +++ b/app/models/scoring-event.ts @@ -353,7 +353,13 @@ export async function getUpcomingScoringEvents( return candidates.length > 0 ? Math.min(...candidates) : Infinity; }; - return events.toSorted((a, b) => getEffectiveMs(a) - getEffectiveMs(b)).slice(0, limit); + return events + .toSorted((a, b) => getEffectiveMs(a) - getEffectiveMs(b)) + .slice(0, limit) + .map((e) => ({ + ...e, + earliestGameTime: earliestGameById.get(e.id)?.toISOString() ?? null, + })); } /**