Skip to content

Host Settings section nav in the contextual bottom island (0288) - #433

Merged
crs48 merged 2 commits into
mainfrom
claude/settings-tabs-in-context-island
Jul 9, 2026
Merged

Host Settings section nav in the contextual bottom island (0288)#433
crs48 merged 2 commits into
mainfrom
claude/settings-tabs-in-context-island

Conversation

@crs48

@crs48 crs48 commented Jul 9, 2026

Copy link
Copy Markdown
Owner

Moves the Settings section tabs into the lower-left contextual island when Settings is open — the master-detail pattern the rest of the workbench uses.

What changed

  • settings-sections.tsx (new) — the section list (id/label/icon) + type + asSettingsSection validator, extracted so the sidebar can import it without pulling in every settings panel.
  • /settings route — the active section now rides in the URL (?section=…, validated via validateSearch) instead of local state; the page renders just the section content (full-width), its old left <nav> removed.
  • SettingsSectionsNav (new) — the section list, rendered in the bottom island when /settings is open; selecting a section navigates /settings?section=…, and the content follows in the main area.
  • BottomIsland is now route-aware: on /settings it shows the Settings nav (gear header); otherwise the active surface, as before.

Bonus: the active section is now deep-linkable (/settings?section=network).

Verified live (worktree preview, desktop)

Opening /settings shows the section nav in the bottom island (Profile active) with the Profile content in the main area; clicking Appearance updates the URL to /settings?section=appearance, highlights it, and swaps the content. Full typecheck (94/94), lint clean, 198 workbench tests pass, no console errors.

Part of exploration 0288 (contextual bottom island per surface).

🤖 Generated with Claude Code

…(0288)

The Settings page kept its own left nav. Lift the active section to a URL
search param (/settings?section=…, validated), extract the section list to a
shared settings-sections module, and render that nav in the workbench's bottom
island whenever /settings is open — the section content fills the main area,
matching the list-left/content-right pattern of every other surface.

Signed-off-by: xNet Test <test@xnet.dev>
@crs48
crs48 temporarily deployed to pr-433 July 9, 2026 11:45 — with GitHub Actions Inactive
@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

🖼️ UI changes in this PR

Screens

✏️ Settings _(SSIM 0.847)_
before after diff
before after diff

Auto-captured by CI · run. Informational — not a blocking check.

github-actions Bot added a commit that referenced this pull request Jul 9, 2026
@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Preview removed for PR #433.

github-actions Bot added a commit that referenced this pull request Jul 9, 2026
A non-route metadata module under routes/ tripped the electron-parity check
(every routes/ file needs a desktop decision) and would make TanStack Router
generate a bogus route. Moved to lib/settings-sections.ts.

Signed-off-by: xNet Test <test@xnet.dev>
@crs48
crs48 temporarily deployed to pr-433 July 9, 2026 11:57 — with GitHub Actions Inactive
github-actions Bot added a commit that referenced this pull request Jul 9, 2026
@crs48
crs48 merged commit d82a07a into main Jul 9, 2026
15 checks passed
@crs48
crs48 deleted the claude/settings-tabs-in-context-island branch July 9, 2026 12:11
github-actions Bot added a commit that referenced this pull request Jul 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant