brackt/app/components/league
Claude 0a17b9154a
Address code review: single source of truth for presets, useEffect guard, tests
- Extract CHESS_CLOCK_PRESETS (pure data) into draft-timer.ts as the
  canonical source of truth; DraftSpeedPicker.tsx now spreads those
  values into CHESS_PRESETS rather than duplicating the numbers
- getInitialDraftSpeed moved to draft-timer.ts and rewritten to use
  CHESS_CLOCK_PRESETS.find() — no more hardcoded bankSec/incrSec values
  in three separate places
- parseDraftSpeed switch replaced with CHESS_CLOCK_PRESETS.find() and
  an explicit fallback comment; eliminates the silent default-handles-
  "standard" fragility called out in review
- useEffect that re-marks settings dirty now guards against non-settings
  errors (draft-order, commissioner actions) which carry a `section`
  field — previously any error actionData would spuriously set
  hasUnsavedSettingsChanges=true
- Add parseDraftSpeed and getInitialDraftSpeed test suites to
  draft-timer.test.ts, including parametrised preset coverage via
  it.each(CHESS_CLOCK_PRESETS)

https://claude.ai/code/session_01DgHNkvJXGizx41CE2tkVS1
2026-05-15 20:43:58 +00:00
..
__tests__ Improve draft info panel formatting (#428) 2026-05-14 23:42:04 -07:00
settings Use sport icons in league views (#394) 2026-05-07 23:06:49 -07:00
CommissionersPanel.stories.tsx Migrate auth from Clerk to BetterAuth (#354) 2026-04-29 10:03:50 -07:00
CommissionersPanel.tsx Migrate auth from Clerk to BetterAuth (#354) 2026-04-29 10:03:50 -07:00
CreateLeagueCard.stories.tsx New design (#309) 2026-04-23 13:14:55 -07:00
CreateLeagueCard.tsx New design (#309) 2026-04-23 13:14:55 -07:00
DraftInfoCard.stories.tsx New design (#309) 2026-04-23 13:14:55 -07:00
DraftInfoCard.tsx Improve draft info panel formatting (#428) 2026-05-14 23:42:04 -07:00
DraftSpeedPicker.stories.tsx Extract reusable league wizard components; wire settings page (#350) 2026-04-28 22:24:13 -07:00
DraftSpeedPicker.tsx Address code review: single source of truth for presets, useEffect guard, tests 2026-05-15 20:43:58 +00:00
LeagueAvatar.stories.tsx Add Storybook stories for new components from staged changes (#321) 2026-04-23 22:09:25 -07:00
LeagueAvatar.tsx Add Storybook stories for new components from staged changes (#321) 2026-04-23 22:09:25 -07:00
LeagueRow.stories.tsx New design (#309) 2026-04-23 13:14:55 -07:00
LeagueRow.tsx Show commish-only leagues in a separate dashboard section, fixes #336 (#412) 2026-05-11 23:57:04 -07:00
MyLeaguesCard.stories.tsx New design (#309) 2026-04-23 13:14:55 -07:00
MyLeaguesCard.tsx Show commish-only leagues in a separate dashboard section, fixes #336 (#412) 2026-05-11 23:57:04 -07:00
OvernightPauseSettings.stories.tsx Extract reusable league wizard components; wire settings page (#350) 2026-04-28 22:24:13 -07:00
OvernightPauseSettings.tsx Extract reusable league wizard components; wire settings page (#350) 2026-04-28 22:24:13 -07:00
ReviewSection.stories.tsx Extract reusable league wizard components; wire settings page (#350) 2026-04-28 22:24:13 -07:00
ReviewSection.tsx Extract reusable league wizard components; wire settings page (#350) 2026-04-28 22:24:13 -07:00
ScoringPresetPicker.stories.tsx Extract reusable league wizard components; wire settings page (#350) 2026-04-28 22:24:13 -07:00
ScoringPresetPicker.tsx Extract reusable league wizard components; wire settings page (#350) 2026-04-28 22:24:13 -07:00
SportIcon.stories.tsx Extract reusable league wizard components; wire settings page (#350) 2026-04-28 22:24:13 -07:00
SportIcon.tsx Extract reusable league wizard components; wire settings page (#350) 2026-04-28 22:24:13 -07:00
SportsSeasonsSummary.stories.tsx New design (#309) 2026-04-23 13:14:55 -07:00
SportsSeasonsSummary.tsx Use sport icons in league views (#394) 2026-05-07 23:06:49 -07:00
StandingsPreview.stories.tsx New design (#309) 2026-04-23 13:14:55 -07:00
StandingsPreview.tsx Fix avatar display bugs in navbar, standings, and draft views (#387) 2026-05-06 17:03:34 -07:00
StatHelpers.tsx Add opencode oxlint plugin and UI refinements (#323) 2026-04-24 11:11:20 -07:00
StepperInput.stories.tsx Extract reusable league wizard components; wire settings page (#350) 2026-04-28 22:24:13 -07:00
StepperInput.tsx Extract reusable league wizard components; wire settings page (#350) 2026-04-28 22:24:13 -07:00
TeamsPanel.stories.tsx New design (#309) 2026-04-23 13:14:55 -07:00
TeamsPanel.tsx Add Storybook stories for new components from staged changes (#321) 2026-04-23 22:09:25 -07:00
TimerModeSelector.stories.tsx Extract reusable league wizard components; wire settings page (#350) 2026-04-28 22:24:13 -07:00
TimerModeSelector.tsx Extract reusable league wizard components; wire settings page (#350) 2026-04-28 22:24:13 -07:00
TimezonePromptBanner.tsx Add overnight pause for draft timers (#335) 2026-04-26 22:31:52 -07:00
TimezoneSelect.tsx Add overnight pause for draft timers (#335) 2026-04-26 22:31:52 -07:00
WizardAuthForm.stories.tsx Extract reusable league wizard components; wire settings page (#350) 2026-04-28 22:24:13 -07:00
WizardAuthForm.tsx Extract reusable league wizard components; wire settings page (#350) 2026-04-28 22:24:13 -07:00
WizardStepper.stories.tsx Extract reusable league wizard components; wire settings page (#350) 2026-04-28 22:24:13 -07:00
WizardStepper.tsx Extract reusable league wizard components; wire settings page (#350) 2026-04-28 22:24:13 -07:00