world cup times #97
2 changed files with 17 additions and 7 deletions
|
|
@ -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<ScheduleEvent, "eventDate" | "eventStartsAt">): 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<ScheduleEvent, "eventDate" | "eventStartsAt" | "earliestGameTime">): 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
|
|||
<p className="text-xs text-muted-foreground flex items-center gap-1 mt-0.5">
|
||||
<Calendar className="h-3 w-3" />
|
||||
<span>{getDisplayDate(event)}</span>
|
||||
{isMounted && event.eventStartsAt && (
|
||||
<span>· {format(new Date(event.eventStartsAt), "h:mm a")}</span>
|
||||
{isMounted && (event.earliestGameTime ?? event.eventStartsAt) && (
|
||||
<span>· {new Date(event.earliestGameTime ?? (event.eventStartsAt as string)).toLocaleTimeString(undefined, { hour: "numeric", minute: "2-digit" })}</span>
|
||||
)}
|
||||
</p>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
}));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue