Add projections to full standings; clean up change indicators #103

Merged
chrisp merged 1 commit from feature/standings-projections into main 2026-06-21 19:04:35 +00:00
Owner

Summary

Surfaces projected final points on the full standings page and restructures the rank/point change indicators so columns align cleanly on desktop and mobile.

Changes

  • StatHelpers — stacked label / value / delta columns with a per-row reservable delta line; merged the rank/point indicators into a single DeltaBadge; StatDivider height is now parameterizable.
  • StandingsPreview — opt-in showProjected column (projected points only), gated on participants remaining; the delta line is reserved only when a row actually moved (no stray "—" placeholders on unchanged rows). Projected is styled muted/regular-weight so Points stays the primary number.
  • Full standings page — passes projected data and showProjected (hidden once the season is complete, since projected == actual then).
  • League home — now fetches via getSevenDayStandingsChange, so the preview shows the same 7-day rank/point changes as the full standings page (previously point change never rendered there).
  • LeagueRow — top-aligns stats and restores h-8 dividers so the shared-component changes don't alter the league-list rows.

Testing

  • npm run typecheck — clean
  • npm run test:run (StandingsPreview suite) — 13/13 pass, incl. new projection cases
  • Lint clean on all changed files
  • Added a WithProjections Storybook variant

Note: LeagueRow (league list / dashboard) isn't covered by unit tests — worth a visual check.

🤖 Generated with Claude Code

## Summary Surfaces **projected final points** on the full standings page and restructures the rank/point change indicators so columns align cleanly on desktop and mobile. ## Changes - **`StatHelpers`** — stacked `label / value / delta` columns with a per-row reservable delta line; merged the rank/point indicators into a single `DeltaBadge`; `StatDivider` height is now parameterizable. - **`StandingsPreview`** — opt-in `showProjected` column (projected points only), gated on participants remaining; the delta line is reserved only when a row actually moved (no stray "—" placeholders on unchanged rows). Projected is styled muted/regular-weight so Points stays the primary number. - **Full standings page** — passes projected data and `showProjected` (hidden once the season is complete, since projected == actual then). - **League home** — now fetches via `getSevenDayStandingsChange`, so the preview shows the same 7-day rank/point changes as the full standings page (previously point change never rendered there). - **`LeagueRow`** — top-aligns stats and restores `h-8` dividers so the shared-component changes don't alter the league-list rows. ## Testing - `npm run typecheck` — clean - `npm run test:run` (StandingsPreview suite) — 13/13 pass, incl. new projection cases - Lint clean on all changed files - Added a `WithProjections` Storybook variant Note: `LeagueRow` (league list / dashboard) isn't covered by unit tests — worth a visual check. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
chrisp added 1 commit 2026-06-21 18:56:30 +00:00
Add projections to full standings; clean up change indicators
All checks were successful
🚀 Deploy / 🧪 Test (pull_request) Successful in 3m23s
🚀 Deploy / 🧪 Test (push) Successful in 3m9s
🚀 Deploy / ʦ🔍 Typecheck & Lint (push) Successful in 1m20s
🚀 Deploy / 🐳 Build (push) Successful in 1m9s
🚀 Deploy / ʦ🔍 Typecheck & Lint (pull_request) Successful in 1m23s
🚀 Deploy / 🐳 Build (pull_request) Has been skipped
🚀 Deploy / 🚀 Deploy (pull_request) Has been skipped
🚀 Deploy / 🚀 Deploy (push) Successful in 12s
b960d39be3
Surface projected final points on the full standings page and restructure
the rank/point change indicators so columns align cleanly on desktop and
mobile.

- StatHelpers: stacked label/value/delta columns with a per-row reservable
  delta line; merge rank/point indicators into a single DeltaBadge;
  parameterize StatDivider height.
- StandingsPreview: opt-in `showProjected` column (projected points only),
  gated on participants remaining; reserve the delta line only when a row
  actually moved (no stray em-dashes).
- Full standings page: pass projected data + showProjected (hidden when the
  season is complete).
- League home: fetch via getSevenDayStandingsChange so the preview shows the
  same 7-day rank/point changes as the full standings page.
- LeagueRow: top-align stats and restore h-8 dividers so the shared-component
  changes don't alter the league list rows.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
chrisp merged commit b960d39be3 into main 2026-06-21 19:04:35 +00:00
chrisp deleted branch feature/standings-projections 2026-06-21 19:04:35 +00:00
Sign in to join this conversation.
No description provided.