Settings: one click to open, grouped rail, search, consistent controls #319

Closed
opened 2026-10-07 20:43:23 -04:00 by Salastil · 1 comment
Owner
  • The rail gear opens a menu (Accounts/Downloads/Settings) at the mouse position, so Settings is two clicks (ServerRail.tsx:917-950). Discord: one click.
  • Four kinds of boolean control: ToggleSetting is a native 16px checkbox (controls.tsx:46-51), a real .switch only on two Tor switches, .checkbox-row with the box on the left for SASL/TLS (AccountsPanel.tsx:551-564, 637-677, 903-906), a bare checkbox for DCC (SettingsPanel.tsx:764-768) - sometimes on one page (Tor: checkbox above switch).
  • Five select/segmented styles plus plain radios (IRC sign-in, export range).
  • Row layout varies (.setting-row flex-start vs .switch-row center vs .checkbox-row); Settings uses h4 titles, Accounts h3.
  • Four ways settings save; commit-on-blur fields give no feedback.
  • No search.

Fix: gear opens Settings directly, with Accounts and Downloads as categories; grouped rail headings; a search box over setting labels/descriptions; one right-aligned switch for every boolean; one select style (radios → segmented); one row layout; a brief "saved" flash.

Part of the v1.0 UI pass.

- The rail gear opens a menu (Accounts/Downloads/Settings) at the mouse position, so Settings is two clicks (ServerRail.tsx:917-950). Discord: one click. - Four kinds of boolean control: `ToggleSetting` is a native 16px checkbox (controls.tsx:46-51), a real `.switch` only on two Tor switches, `.checkbox-row` with the box on the left for SASL/TLS (AccountsPanel.tsx:551-564, 637-677, 903-906), a bare checkbox for DCC (SettingsPanel.tsx:764-768) - sometimes on one page (Tor: checkbox above switch). - Five select/segmented styles plus plain radios (IRC sign-in, export range). - Row layout varies (`.setting-row` flex-start vs `.switch-row` center vs `.checkbox-row`); Settings uses h4 titles, Accounts h3. - Four ways settings save; commit-on-blur fields give no feedback. - No search. **Fix:** gear opens Settings directly, with Accounts and Downloads as categories; grouped rail headings; a search box over setting labels/descriptions; one right-aligned switch for every boolean; one select style (radios → segmented); one row layout; a brief "saved" flash. _Part of the v1.0 UI pass._
Salastil added this to the v1.0 milestone 2026-10-07 20:43:23 -04:00
Salastil added the feature label 2026-10-07 20:43:23 -04:00
Author
Owner

Finished: 66a0c0f.

Settings is one click away and one place.

  • One click: the rail's gear opens Settings directly (it opened a menu of Accounts / Downloads / Settings beside the pointer). Accounts and Downloads are pages of it now, in the rail under You; the rest are under App, Networks (one per network, as before, only for the ones you have) and About. Other parts of the app that open Accounts or Downloads still do - they land on that page in the same frame. The Downloads busy count stays on the gear.
  • Search: a box at the top of the rail looks through every page at once, showing the pages that have a match and hiding the rows (and sections, and pages) that don't; "Nothing here matches" when there is none, and it can be started from the Accounts or Downloads page.
  • One boolean: every on/off in Settings and Accounts is the same Switch at the right-hand end of its row - the native checkboxes (ToggleSetting, echo cancellation, noise suppression, DCC auto-accept, the proxy choice) and the checkbox-with-its-box-on-the-left rows (SASL, plaintext SASL, reconnect for SASL, TLS, the create-room options) are switches, via Switch / SwitchRow. IRC's sign-in radios are the segmented control. Rows are centred vertically in one layout.
  • Saved: the fields that save when you leave them (strings, the global highlight words) flash a tick beside them.
  • Behaviour checked in the app: one click opens it, groups in the rail, Accounts and Downloads inside it, search from another page, clearing, and no checkboxes left on General.

Left for the Appearance, Notifications and Keybinds pages (#320-#322), which fill the App group. The export dialog's and the dialogs' own tick boxes are options in a dialog rather than settings and are unchanged.

Settings frame - before (top), after (bottom):

shell

The gear - before (left, a menu), after (right, Settings straight away):

gear

Finished: [66a0c0f](https://git.salastil.com/Salastil/moho/commit/66a0c0f20aa0268759ef589ae9d1196063bc3677). Settings is one click away and one place. - **One click:** the rail's gear opens Settings directly (it opened a menu of Accounts / Downloads / Settings beside the pointer). Accounts and Downloads are pages of it now, in the rail under **You**; the rest are under **App**, **Networks** (one per network, as before, only for the ones you have) and About. Other parts of the app that open Accounts or Downloads still do - they land on that page in the same frame. The Downloads busy count stays on the gear. - **Search:** a box at the top of the rail looks through every page at once, showing the pages that have a match and hiding the rows (and sections, and pages) that don't; "Nothing here matches" when there is none, and it can be started from the Accounts or Downloads page. - **One boolean:** every on/off in Settings and Accounts is the same `Switch` at the right-hand end of its row - the native checkboxes (`ToggleSetting`, echo cancellation, noise suppression, DCC auto-accept, the proxy choice) and the checkbox-with-its-box-on-the-left rows (SASL, plaintext SASL, reconnect for SASL, TLS, the create-room options) are switches, via `Switch` / `SwitchRow`. IRC's sign-in radios are the segmented control. Rows are centred vertically in one layout. - **Saved:** the fields that save when you leave them (strings, the global highlight words) flash a tick beside them. - Behaviour checked in the app: one click opens it, groups in the rail, Accounts and Downloads inside it, search from another page, clearing, and no checkboxes left on General. Left for the Appearance, Notifications and Keybinds pages (#320-#322), which fill the App group. The export dialog's and the dialogs' own tick boxes are options in a dialog rather than settings and are unchanged. Settings frame - before (top), after (bottom): ![shell](https://git.salastil.com/attachments/ba9e6322-2675-4d4b-a861-50d1dbbb5940) The gear - before (left, a menu), after (right, Settings straight away): ![gear](https://git.salastil.com/attachments/7db9d8dd-2f75-404f-8bcf-2c09a5ea0d0a)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Salastil/moho#319