Skip to content

fix(settings): give the Layout tab its own title instead of Appearance's - #846

Open
lucletoffe wants to merge 1 commit into
bulwarkmail:mainfrom
lucletoffe:fix/layout-tab-own-title
Open

fix(settings): give the Layout tab its own title instead of Appearance's#846
lucletoffe wants to merge 1 commit into
bulwarkmail:mainfrom
lucletoffe:fix/layout-tab-own-title

Conversation

@lucletoffe

Copy link
Copy Markdown

What

Settings → Layout renders the header Appearance / Customize the look and feel of your webmail — byte for byte what Settings → Appearance renders. LayoutSettings reads every string from the settings.appearance namespace, including the section title, so once you are on the page there is nothing telling the two tabs apart.

Why it matters

Real case that prompted this: looking for Unified Mailbox → All mail (to make search span every folder). You open Appearance, the page says "Appearance", you find theme / font size / density / avatar toggles, and you conclude the setting does not exist. It is one tab below, under an identical heading.

The sidebar highlight is the only cue, and it is easy to miss on a wide screen where the two tabs sit next to each other under the same APPEARANCE group.

Fix

Only the section header moves to a new settings.layout namespace:

-    <SettingsSection title={t('title')} description={t('description')}>
+    <SettingsSection title={tLayout('title')} description={tLayout('description')}>

Deliberately minimal:

  • every item on the page keeps its settings.appearance key, so no existing translation in any of the 30+ locales is invalidated;
  • only en/common.json gains the two new strings — locales without settings.layout fall back to English via mergeMessages, so nothing renders a raw key like settings.layout.title.

Checks

  • npx tsc --noEmit — clean
  • npx eslint components/settings/layout-settings.tsx — clean
  • npx vitest run on the neighbouring settings/store suites — 12 passed

Settings → Layout renders the header "Appearance / Customize the look and
feel of your webmail" — byte for byte what Settings → Appearance renders.
`LayoutSettings` reads every string from the `settings.appearance` namespace,
including the section title, so the two tabs are indistinguishable once open.

Concretely: a user looking for "Unified Mailbox / All mail" lands on
Appearance, reads a page titled "Appearance", finds theme, density and
avatar toggles, and concludes the setting does not exist — while it sits one
tab below under an identical heading.

Only the section header moves to a new `settings.layout` namespace; the items
keep their `settings.appearance` keys, so no existing translation is
invalidated. Locales without `settings.layout` fall back to English through
`mergeMessages`, so nothing renders a raw key.
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