feat(engine): You hub — Profile/Stats/Achievements/Replays in one tabbed modal #163

Closed
funman300 wants to merge 2 commits from feat/you-hub into feat/settings-tabs
Owner

Phase E of docs/ui-redesign-2026-07.md. Stacked on #160 (feat/settings-tabs) — merge that first, then retarget this to master (or merge as-is after #160 lands).

What

  • New you_hub_plugin owns one tabbed modal (Profile · Stats · Awards · Replays) using the shared spawn_tab_chip widget extracted from Settings into ui_modal.
  • Each tab body is extracted from its original plugin (spawn_profile_body, spawn_stats_body, spawn_achievements_body, spawn_replays_body) with every marker component unchanged, so per-row update/scroll/selector systems keep working.
  • The replay selector gets its own Replays tab; Watch/Copy buttons move into the tab body.
  • Toggle*RequestEvents + P/S/A accelerators open the hub on the right tab, switch tabs in place, or toggle closed on a same-tab request; Esc/Done/scrim-click close.
  • Legacy ProfileScreen/StatsScreen/AchievementsScreen markers ride the hub scrim for the active tab, so external queries and tests keep their meaning.
  • Standalone toggle/close systems and per-screen Done buttons removed.

Verification

  • 916/916 engine tests green, clippy --all-targets -D warnings clean, fmt (re-verified during review on 2026-07-08).
  • Review notes: extraction is faithful; §14 modal conventions respected (single-scrim guard, Z_MODAL_PANEL, ScrimDismissible). Two cosmetic nits: hub open system no longer orders .after(GameMutation) like the old stats toggle (worst case a one-frame-stale snapshot at open), and the single Done button drops the old P/S/A accelerator hints.
  • Still needs a Fold 7 both-postures look (chip wrap + gesture bar).

🤖 Generated with Claude Code

Phase E of `docs/ui-redesign-2026-07.md`. **Stacked on #160 (feat/settings-tabs)** — merge that first, then retarget this to master (or merge as-is after #160 lands). ## What - New `you_hub_plugin` owns one tabbed modal (Profile · Stats · Awards · Replays) using the shared `spawn_tab_chip` widget extracted from Settings into `ui_modal`. - Each tab body is extracted from its original plugin (`spawn_profile_body`, `spawn_stats_body`, `spawn_achievements_body`, `spawn_replays_body`) with every marker component unchanged, so per-row update/scroll/selector systems keep working. - The replay selector gets its own Replays tab; Watch/Copy buttons move into the tab body. - `Toggle*RequestEvent`s + P/S/A accelerators open the hub on the right tab, switch tabs in place, or toggle closed on a same-tab request; Esc/Done/scrim-click close. - Legacy `ProfileScreen`/`StatsScreen`/`AchievementsScreen` markers ride the hub scrim for the active tab, so external queries and tests keep their meaning. - Standalone toggle/close systems and per-screen Done buttons removed. ## Verification - 916/916 engine tests green, clippy `--all-targets -D warnings` clean, fmt (re-verified during review on 2026-07-08). - Review notes: extraction is faithful; §14 modal conventions respected (single-scrim guard, `Z_MODAL_PANEL`, `ScrimDismissible`). Two cosmetic nits: hub open system no longer orders `.after(GameMutation)` like the old stats toggle (worst case a one-frame-stale snapshot at open), and the single Done button drops the old P/S/A accelerator hints. - Still needs a Fold 7 both-postures look (chip wrap + gesture bar). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
funman300 added 2 commits 2026-07-09 03:25:17 +00:00
Settings' tab_chip becomes a thin wrapper; the You hub (Phase E) will
reuse the same widget so tabbed modals stay visually identical.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Phase E of docs/ui-redesign-2026-07.md. New you_hub_plugin owns the
modal shell (header, shared tab chips, single Done); each tab's content
is a body builder extracted from its original plugin with every marker
component unchanged, so per-row update/scroll/selector systems keep
working. The replay selector gets its own Replays tab (Watch/Copy
buttons move into the tab body).

- Toggle*RequestEvents + P/S/A accelerators open the hub on the right
  tab, switch tabs in place, or toggle closed on a same-tab request;
  Esc/Done/scrim-click close
- Legacy ProfileScreen/StatsScreen/AchievementsScreen markers ride the
  hub scrim for the active tab — external queries and tests keep their
  meaning
- Standalone toggle/close systems and per-screen Done buttons removed
  (ProfileCloseButton, StatsCloseButton, AchievementsCloseButton)
- Tests: 2 new hub lifecycle tests; profile/stats/achievements modal
  tests adapted (fixtures add YouHubPlugin; selector tests target the
  Replays tab). Engine suite 916 green, clippy -D warnings, fmt.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Author
Owner

Duplicate of #161 (same head branch, opened earlier), which merged feat/you-hub into master after #160. Closing without merge; nothing here is lost.

Duplicate of #161 (same head branch, opened earlier), which merged feat/you-hub into master after #160. Closing without merge; nothing here is lost.
funman300 closed this pull request 2026-07-09 05:02:43 +00:00
Test / test (pull_request) Failing after 8m41s

Pull request closed

Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: funman300/Ferrous-Solitaire#163