fix(theme): Theme aus den wirksamen statt den rohen Einstellungen anwenden

initCalendar baute mit mergeEffective() korrekt die wirksamen Einstellungen
zusammen, benutzte danach aber die rohe Server-Antwort zum Anwenden:

  applyTheme(settings) statt applyTheme(state.settings)

Fuer jede Einstellung, deren Sync-Flag aus ist, ist der wirksame Wert laut
effectiveValue() der browser-lokale — der wurde damit stillschweigend
ignoriert. Die Einstellungstabelle zeigte also einen Wert an, waehrend die
Oberflaeche einen anderen benutzte.

Derselbe Fehler bei setLang: die Zeile mit dem wirksamen Wert wurde wenige
Zeilen spaeter vom rohen Server-Wert ueberschrieben. Die doppelte Zuweisung
faellt weg, die richtige bleibt.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Scarriffle
2026-10-01 11:34:55 +02:00
co-authored by Claude Opus 5
parent 6b7317b4e0
commit aaecfc435d
3 changed files with 7 additions and 5 deletions
+5 -3
View File
@@ -153,9 +153,11 @@ export async function initCalendar() {
// initial fetchAndRender) so a reload reopens settings instead of stripping it.
uiSettingsOpen = urlState.settings === true;
setLang(settings.language || 'de');
applyTheme(settings);
applyFavicon(settings.primary_color);
// state.settings, not the raw server response: for any key whose sync flag
// is off the effective value is this browser's local one, and using the raw
// value here silently ignored it (and clobbered the setLang above).
applyTheme(state.settings);
applyFavicon(state.settings.primary_color);
updateViewButtons();
renderCalendarList();
renderMiniCal();