From b8d51e9798bb9a6d3f03065ad8e80cc62cba3249 Mon Sep 17 00:00:00 2001 From: Chris Parsons Date: Sun, 15 Mar 2026 12:24:26 -0700 Subject: [PATCH] Fix same-day events incorrectly showing Upcoming instead of Results Pending String date comparison (eventDate < today) is strictly less-than, so events on the current day always showed Upcoming regardless of time. When eventStartsAt is available, use timestamp comparison (new Date(eventStartsAt) < new Date()) for accurate past/future determination. Fixed in three locations: admin events list (getStatusBadge call site), admin event detail isPast check, and EventSchedule upcoming badge. Co-Authored-By: Claude Sonnet 4.6 --- app/components/sport-season/EventSchedule.tsx | 15 ++++++++++----- .../admin.sports-seasons.$id.events.$eventId.tsx | 6 +++--- app/routes/admin.sports-seasons.$id.events.tsx | 9 +++++---- 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/app/components/sport-season/EventSchedule.tsx b/app/components/sport-season/EventSchedule.tsx index 8961ba9..3af6972 100644 --- a/app/components/sport-season/EventSchedule.tsx +++ b/app/components/sport-season/EventSchedule.tsx @@ -107,11 +107,16 @@ export function EventSchedule({ upcomingEvents, recentEvents }: EventSchedulePro

{event.eventType === "schedule_event" ? ( - !event.isComplete && event.eventDate && event.eventDate < new Date().toISOString().split("T")[0] && ( - - Results Pending - - ) + !event.isComplete && (() => { + const isPast = event.eventStartsAt + ? new Date(event.eventStartsAt) < new Date() + : event.eventDate != null && event.eventDate < new Date().toISOString().split("T")[0]; + return isPast && ( + + Results Pending + + ); + })() ) : ( {getEventTypeLabel(event.eventType)} diff --git a/app/routes/admin.sports-seasons.$id.events.$eventId.tsx b/app/routes/admin.sports-seasons.$id.events.$eventId.tsx index 02f60d8..36031eb 100644 --- a/app/routes/admin.sports-seasons.$id.events.$eventId.tsx +++ b/app/routes/admin.sports-seasons.$id.events.$eventId.tsx @@ -118,9 +118,9 @@ export default function EventResults({ // Non-scoring events have a simple view — edit name/date and toggle updated status if (event.eventType === "schedule_event") { - const today = new Date().toISOString().split("T")[0]; - const eventDateStr = event.eventDate ? String(event.eventDate).slice(0, 10) : null; - const isPast = eventDateStr != null && eventDateStr < today; + const isPast = event.eventStartsAt + ? new Date(event.eventStartsAt) < new Date() + : event.eventDate != null && String(event.eventDate).slice(0, 10) < new Date().toISOString().split("T")[0]; return (
diff --git a/app/routes/admin.sports-seasons.$id.events.tsx b/app/routes/admin.sports-seasons.$id.events.tsx index 406c52a..6dc75df 100644 --- a/app/routes/admin.sports-seasons.$id.events.tsx +++ b/app/routes/admin.sports-seasons.$id.events.tsx @@ -60,7 +60,7 @@ export default function SportsSeasonEvents({ ? "schedule_event" : "playoff_game"; - const getStatusBadge = (isComplete: boolean, eventType: string, eventDate?: string | null) => { + const getStatusBadge = (isComplete: boolean, eventType: string, eventDate?: string | null, eventStartsAt?: Date | string | null) => { if (isComplete) { return ( @@ -69,8 +69,9 @@ export default function SportsSeasonEvents({ ); } if (eventType === "schedule_event") { - const today = new Date().toISOString().split("T")[0]; - const isPast = eventDate && eventDate < today; + const isPast = eventStartsAt + ? new Date(eventStartsAt) < new Date() + : eventDate != null && eventDate < new Date().toISOString().split("T")[0]; return isPast ? ( Results Pending ) : ( @@ -276,7 +277,7 @@ export default function SportsSeasonEvents({ >

{event.name}

- {getStatusBadge(event.isComplete, event.eventType, event.eventDate)} + {getStatusBadge(event.isComplete, event.eventType, event.eventDate, event.eventStartsAt)}