From f86dfade389f1840a9418960ca4178d06d2c516d Mon Sep 17 00:00:00 2001 From: Chris Parsons Date: Sat, 18 Oct 2025 23:33:13 -0700 Subject: [PATCH] feat: add draft completion banner and event handler for draft completion state --- app/routes/leagues/$leagueId.draft.$seasonId.tsx | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/app/routes/leagues/$leagueId.draft.$seasonId.tsx b/app/routes/leagues/$leagueId.draft.$seasonId.tsx index 3e55764..af86748 100644 --- a/app/routes/leagues/$leagueId.draft.$seasonId.tsx +++ b/app/routes/leagues/$leagueId.draft.$seasonId.tsx @@ -182,6 +182,7 @@ export default function DraftRoom() { const [sportFilter, setSportFilter] = useState("all"); const [queue, setQueue] = useState(userQueue); const [isPaused, setIsPaused] = useState(season.draftPaused || false); + const [isDraftComplete, setIsDraftComplete] = useState(season.status === "active"); const [teamTimers, setTeamTimers] = useState>(() => { // Initialize with timers from loader data const timersMap: Record = {}; @@ -220,16 +221,22 @@ export default function DraftRoom() { setIsPaused(false); }; + const handleDraftCompleted = () => { + setIsDraftComplete(true); + }; + on("pick-made", handlePickMade); on("timer-update", handleTimerUpdate); on("draft-paused", handleDraftPaused); on("draft-resumed", handleDraftResumed); + on("draft-completed", handleDraftCompleted); return () => { off("pick-made", handlePickMade); off("timer-update", handleTimerUpdate); off("draft-paused", handleDraftPaused); off("draft-resumed", handleDraftResumed); + off("draft-completed", handleDraftCompleted); }; }, [on, off, currentPick]); @@ -507,6 +514,13 @@ export default function DraftRoom() { return (
+ {/* Draft Completion Banner */} + {isDraftComplete && ( +
+ 🎉 Draft Complete! The season is now active. +
+ )} + {/* Standalone Header - No Main Nav */}