refactor(settings): split the settings page into per-section facades (#1274)

settings.component.ts had grown to 819 lines — past the CLAUDE.md target (<300)
and hard maximum, passing lint only because it sat in the max-lines baseline.

The behaviour moves into facades the template binds to directly, following the
precedent already in this folder: new app-update (218), form (197), epg (123),
embedded-mpv (74) and remote-control (37) facades, with playlist-reset extended
to 143 and settings-options to 200. The component is now a 259-line coordinator
holding capability flags, section nav, players() and the cross-facade flows.
settings.component.ts is removed from the max-lines baseline.

No behaviour change. One ordering detail: applyChangedSettings now applies
language/theme before kicking off the EPG re-fetch; changeTheme only touches DOM
theme sync and translate.use does not touch the form, so the two are
independent.
This commit is contained in:
4gray authored and GitHub committed 2026-07-26 22:57:16 +02:00
1 parent 08b868d6c1
commit f9ea3070ee
12 files changed
+931 -751

No files matched your search

+4 -2
View File
@@ -222,8 +222,10 @@ Implemented UI behavior:
## Settings UI and discoverability
- Files:
- `apps/web/src/app/settings/settings.component.ts`
- `apps/web/src/app/settings/settings.component.html`
- `apps/web/src/app/settings/settings-remote-control-section.component.ts`
(+ `.html`) — the section rendered by `settings.component.html`
- `apps/web/src/app/settings/settings-remote-control.facade.ts` — LAN
address lookup and QR-code visibility state
- Features:
- Toggle `remoteControl`
- Configure `remoteControlPort`