feat(nav): de-dupe the settings entry points (LC-697) #663

Merged
longjacksonle merged 1 commit from feat/LC-697-settings-ia into main 2026-08-09 20:40:21 +02:00

What

Consolidates the redundant settings entry points. Fixes LC-697.

Three overlapping paths led into settings: the avatar menu, the rail settings-gear flyout, and the Settings page's own tabs. The rail flyout re-listed the page's first four tabs plus a "Settings" that duplicated the avatar menu's - so "Settings" appeared in two menus and the flyout was a parallel copy of the page's tabs.

Approved IA (kept quick-jumps, de-duped)

  • Rail gear flyout stays a fast quick-jump menu but de-duplicated: its redundant "Settings" item is renamed "All settings" (still -> /settings) so it no longer duplicates the avatar menu's literal "Settings" and reads clearly as "open the full page" (the path to the tabs not in the flyout: Data & Account, Custom emoji, Saved replies). Each item gets the same icon as its Settings-page tab, so the flyout mirrors the page's tab rail and the iconned avatar menu. The #tab deep-links were already correct and are kept.
  • Avatar menu: fixed a latent bug - "Edit profile" pointed at #settings-sec-profile, which settings.js doesn't recognize (it honors real tab keys) and fell back to the default Profile tab by luck. Corrected to #profile.
  • The real enclave-name dropdown (Enclave settings / Discover) is workspace-scoped and unchanged - the original report mislabeled the rail gear flyout as that dropdown.

How to test

  • Rail gear flyout: Profile / Appearance / Notifications & Activity / Privacy & Security jump to the matching tab; the last item now reads "All settings" and opens the page. Items are iconned, matching the page's tabs.
  • Avatar menu: "Edit profile" lands on the Profile tab; "Settings" opens the page. No second "Settings" label anywhere.
  • Four themes + both densities; menus keyboard-accessible (structure unchanged; reuse lc-menu-item / lc-menu-divider).

Scope

partials/enclave_switcher.html, partials/sidebar_self.html, locales/en+es/partials.ftl. No Rust, no new CSS classes, no route/functionality/hx-swap-oob changes.

Verification

  • cargo check compiles all Askama templates.
  • Full lib suite: 319 passed (incl. i18n en/es parity).

🤖 Generated with Claude Code

https://claude.ai/code/session_011M7CNRsGzgzc48KinZUAQ8

## What Consolidates the redundant settings entry points. Fixes LC-697. Three overlapping paths led into settings: the avatar menu, the rail settings-gear flyout, and the Settings page's own tabs. The rail flyout re-listed the page's first four tabs plus a "Settings" that duplicated the avatar menu's - so "Settings" appeared in two menus and the flyout was a parallel copy of the page's tabs. ## Approved IA (kept quick-jumps, de-duped) - Rail gear flyout stays a fast quick-jump menu but de-duplicated: its redundant "Settings" item is renamed **"All settings"** (still -> `/settings`) so it no longer duplicates the avatar menu's literal "Settings" and reads clearly as "open the full page" (the path to the tabs not in the flyout: Data & Account, Custom emoji, Saved replies). Each item gets the **same icon as its Settings-page tab**, so the flyout mirrors the page's tab rail and the iconned avatar menu. The `#tab` deep-links were already correct and are kept. - Avatar menu: fixed a latent bug - "Edit profile" pointed at `#settings-sec-profile`, which `settings.js` doesn't recognize (it honors real tab keys) and fell back to the default Profile tab by luck. Corrected to `#profile`. - The real enclave-name dropdown (Enclave settings / Discover) is workspace-scoped and unchanged - the original report mislabeled the rail gear flyout as that dropdown. ## How to test - Rail gear flyout: Profile / Appearance / Notifications & Activity / Privacy & Security jump to the matching tab; the last item now reads "All settings" and opens the page. Items are iconned, matching the page's tabs. - Avatar menu: "Edit profile" lands on the Profile tab; "Settings" opens the page. No second "Settings" label anywhere. - Four themes + both densities; menus keyboard-accessible (structure unchanged; reuse `lc-menu-item` / `lc-menu-divider`). ## Scope `partials/enclave_switcher.html`, `partials/sidebar_self.html`, `locales/en+es/partials.ftl`. No Rust, no new CSS classes, no route/functionality/hx-swap-oob changes. ## Verification - `cargo check` compiles all Askama templates. - Full lib suite: 319 passed (incl. i18n en/es parity). 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_011M7CNRsGzgzc48KinZUAQ8
feat(nav): de-dupe the settings entry points (LC-697)
All checks were successful
check-secrets / TruffleHog (push) Successful in 4s
check-secrets / Nosey parker (push) Successful in 7s
check-secrets / Kingfisher (push) Successful in 10s
check-secrets / TruffleHog (pull_request) Successful in 5s
check-secrets / Nosey parker (pull_request) Successful in 8s
check-secrets / Kingfisher (pull_request) Successful in 10s
Check / clippy + fmt + tests (pull_request) Successful in 4m22s
Create release / Create release from merged PR (pull_request) Has been skipped
ca3df28a72
Three overlapping paths led into settings: the avatar menu, the rail settings-gear flyout, and the Settings page's own tabs. The rail flyout re-listed the page's first four tabs PLUS a "Settings" that duplicated the avatar menu's, so "Settings" appeared as an entry in two menus and the flyout was a parallel copy of the page's tabs.

Keep the flyout as a fast quick-jump menu but de-duplicate it (approved IA): rename its redundant "Settings" item to "All settings" (still -> /settings) so it no longer duplicates the avatar menu's literal "Settings" and reads clearly as "open the full page" (the path to the tabs not in the flyout - Data & Account, Custom emoji, Saved replies). Give each flyout item the same icon as its Settings-page tab so the flyout mirrors the page's tab rail and the iconned avatar menu. The #tab deep-links were already correct and are kept.

Also fix a latent bug: the avatar menu's "Edit profile" pointed at #settings-sec-profile, which settings.js does not recognize (it honors real tab keys); it fell back to the default Profile tab by luck. Corrected to #profile.

The real enclave-name dropdown (Enclave settings / Discover) is workspace-scoped and was left unchanged - the original report mislabeled the rail gear flyout as that dropdown.

No Rust, no new CSS classes (reuses lc-menu-item / lc-menu-divider), no route/functionality/hx-swap-oob changes. i18n en/es both updated.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011M7CNRsGzgzc48KinZUAQ8
longjacksonle scheduled this pull request to auto merge when all checks succeed 2026-08-09 20:36:44 +02:00
longjacksonle deleted branch feat/LC-697-settings-ia 2026-08-09 20:40:21 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
psa-systems/lets-chat!663
No description provided.