Skip to content

Give every radio's settings editor the same tabs (#131) - #135

Merged
ww8l merged 2 commits into
mainfrom
issue-131-profile-sections
Oct 10, 2026
Merged

ww8l merged 2 commits into
mainfrom
issue-131-profile-sections

Conversation

@ww8l

@ww8l ww8l commented Oct 10, 2026

Copy link
Copy Markdown
Owner

Closes #131.

Only the radios with an APRS section had tabs; the rest were one long scroll, and the UV-5R and TD-H3 had no sections at all. Every profile editor now draws the same tabs in the same order, showing only the ones a radio has fields for:

General · Display · Sounds · Transmit & Receive · Memory & VFO · Scan · DTMF & Signaling · Keys · Digital · GPS · APRS · Connections

How

  • Each schema section names its tab with a group. A field names its own only where the OEM section mixes subjects (the TH-D75's "Common" holds TX power, scan resume and the backlight); those lead their tab without a heading.
  • OEM section names stay as headings inside a tab. Field order in the generated schemas is unchanged, because several agreement tests zip it.
  • UV-5R, TD-H3 and D890UV schemas are app-authored, so they are re-sectioned outright. The D890UV's 127-field "Other settings" is gone, and its 50 call-melody fields read "Tone N frequency/duration" under one heading per melody.
  • New guard in wiring.rs: a schema must open with a section, and every section or field group must be in SETTINGS_GROUPS (read from src/lib/profiles.ts). Mutation-tested: a misspelt group fails it.
  • The side nav, page title, Dashboard tile and in-app hints say Radio Profiles instead of "Radios".
  • CONTRIBUTING.md and the new-radio skill tell the next radio to set group.

Verified

  • npm run ci passes locally (pre-push hook).
  • All 1,504 fields across the 11 radios land on exactly one tab, checked against the real schemas in the browser with IPC stubbed.
  • Looked at in the dev app by Tim.

Not verified / no hardware needed

  • No write path changes: settings are stored by key, not position, so no radio time is needed.

🤖 Generated with Claude Code

ww8l and others added 2 commits October 10, 2026 09:13
Only the radios with an APRS section were split into tabs; the rest were one
long scroll, and the UV-5R and TD-H3 had no sections at all. Every profile
editor now draws the same tabs in the same order — General, Display, Sounds,
Transmit & Receive, Memory & VFO, Scan, DTMF & Signaling, Keys, Digital, GPS,
APRS, Connections — showing only the ones a radio has fields for.

- Each schema section names its tab with a `group`. A field names its own
  only where the OEM section mixes subjects (the TH-D75's "Common" holds TX
  power, scan resume and the backlight); those lead their tab unheaded.
- The OEM section names stay as headings inside a tab. Field order in the
  generated schemas is untouched — several agreement tests zip it.
- UV-5R, TD-H3 and D890UV are app-authored and are re-sectioned outright;
  the D890UV's 127-field "Other settings" is gone, and its 50 call-melody
  fields read "Tone N frequency/duration" under one heading per melody.
- wiring.rs refuses a schema that opens without a section, or a section or
  field whose group is not in SETTINGS_GROUPS (read from profiles.ts).
- The side nav, page title, Dashboard tile and in-app hints say
  "Radio Profiles" instead of "Radios".

All 1,504 fields across the 11 radios land on exactly one tab, checked
against the real schemas in the browser with IPC stubbed. No write path
changes: settings are keyed by name, not position.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- A heading that only repeats the tab's name is dropped for the tab's first
  section alone; a later one would read as part of the heading above it.
- Fields borrowed from another tab's section now follow the tab's own
  sections, under their OEM heading whenever the tab draws headings. The
  ID-5100's "Data Speed" no longer floats above the Bluetooth heading.
- Same setting, same tab: the D890UV boot screen moves to Display, QSO log
  is Digital on all three D-STAR radios, the ID-52's weather channels move
  to General beside the D890UV's NOAA channel, and time zone is GPS on all
  four radios that have one.
- The untabbed layout is gone; a schema with no fields shows the existing
  "no configurable settings" message.
- SettingField.group is typed as a SETTINGS_GROUPS member, so tsc refuses a
  misspelt tab.

All 1,504 fields still land on exactly one tab, none twice.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ww8l
ww8l merged commit f2708c9 into main Oct 10, 2026
3 checks passed
@ww8l
ww8l deleted the issue-131-profile-sections branch October 10, 2026 16:20
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.

UI Consistency

1 participant