brackt/app/components
Chris Parsons 0ba6a2a408 Add auto-start draft at scheduled time (#437)
Commissioners can now opt in to having a draft start automatically at
its scheduled draftDateTime rather than requiring a manual "Start Draft"
click. The 1-second timer loop checks for eligible seasons each tick and
calls the new shared startDraft() service, which is also used by the
existing commissioner HTTP route.

- Add autoStartDraft boolean to seasons table (migration 0108)
- Extract core start logic into app/services/draft-autostart.ts so both
  the API route and the timer can call it without AsyncLocalStorage
- Add checkAndAutoStartDrafts() to the timer tick; disables autoStartDraft
  and stops retrying if no draft order is set at fire time
- Guard against null draftDateTime in both the timer query (isNotNull)
  and server actions (autoStartDraft forced false when datetime is null)
- Add "Auto-start at scheduled time" checkbox to league creation wizard
  (step 3) and league settings, gated on date+time being set
- Show countdown + "Start Now" button in draft room when auto-start is
  scheduled; reuses the existing nowForPauseCheck 1-second ticker
- Show orange warning banner on league homepage to commissioners when
  auto-start is within 1 hour and no draft order has been configured

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-16 23:31:51 -07:00
..
__tests__ Add electric flash + fade animation for draft picks, fixes #381 (#407) 2026-05-10 23:17:29 -07:00
draft Add auto-start draft at scheduled time (#437) 2026-05-16 23:31:51 -07:00
league Add auto-start draft at scheduled time (#437) 2026-05-16 23:31:51 -07:00
marketing Add Storybook stories for new components from staged changes (#321) 2026-04-23 22:09:25 -07:00
scoring Fix standings table bugs and polish across all three scoring patterns (#415) 2026-05-12 10:39:25 -07:00
sport-season Fix standings table bugs and polish across all three scoring patterns (#415) 2026-05-12 10:39:25 -07:00
sports Add Cloudinary sports icon uploads (#393) 2026-05-07 16:07:34 -07:00
standings Add Storybook stories for new components from staged changes (#321) 2026-04-23 22:09:25 -07:00
ui Formalize simulator system with manifest, input-policy, runner, and admin UI (#409) 2026-05-11 21:09:53 -07:00
user/settings Add opt-in Discord pings to standings notifications (#429) 2026-05-15 10:06:54 -07:00
AutodraftSettings.tsx Add overnight pause for draft timers (#335) 2026-04-26 22:31:52 -07:00
BatchResultEntry.tsx Canonical tournament layer: 2026-05-01 21:04:48 -07:00
DraftGrid.tsx Fix mobile spacing for draft board and dashboard layout (#13, #329) (#404) 2026-05-10 19:51:34 -07:00
DraftSidebar.tsx New design (#309) 2026-04-23 13:14:55 -07:00
navbar.tsx Add Cloudinary-backed avatar system (#385) 2026-05-06 14:47:37 -07:00
NavigationProgress.tsx Add NProgress navigation progress bar (#139) 2026-03-11 22:02:48 -07:00
NotificationSettings.tsx New design (#309) 2026-04-23 13:14:55 -07:00
ParticipantSelector.tsx feat: Add ParticipantSelector component for improved participant selection in brackets 2025-11-08 21:36:29 -08:00
SportIcon.tsx Add Cloudinary sports icon uploads (#393) 2026-05-07 16:07:34 -07:00
StandingsTable.tsx Show tied ranks with T prefix across standings and Discord (#239) 2026-03-27 20:45:15 -07:00
TeamAvatar.stories.tsx Add Cloudinary-backed avatar system (#385) 2026-05-06 14:47:37 -07:00
TeamAvatar.tsx Add Cloudinary-backed avatar system (#385) 2026-05-06 14:47:37 -07:00
UserMenu.tsx Refactor user profile to comprehensive settings page (#403) 2026-05-10 17:26:14 -07:00