stato intermedio

This commit is contained in:
fabio
2026-03-01 14:36:26 +01:00
parent e0ef48f6fd
commit b852f656d4
25 changed files with 4230 additions and 390 deletions

View File

@@ -2,6 +2,13 @@
var STORAGE_KEY = "theme";
var root = document.documentElement;
var mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
var isAuthenticated = window.__TC_IS_AUTHENTICATED === true || window.__TC_IS_AUTHENTICATED === "true";
var serverTheme = normalizeTheme(window.__TC_SERVER_THEME);
function normalizeTheme(theme) {
if (!theme) return "";
return String(theme).trim().toLowerCase();
}
function getStoredTheme() {
var value = null;
@@ -33,6 +40,16 @@
}
}
function persistThemePreference(theme) {
if (!isAuthenticated) return;
fetch("/preferences/theme", {
method: "POST",
headers: { "Content-Type": "application/json" },
credentials: "same-origin",
body: JSON.stringify({ theme: theme }),
}).catch(function () {});
}
function updateToggleState(theme) {
var button = document.getElementById("themeToggle");
if (!button) return;
@@ -43,6 +60,11 @@
}
function applyInitialTheme() {
if (isAuthenticated && (serverTheme === "dark" || serverTheme === "light")) {
setStoredTheme(serverTheme);
applyTheme(serverTheme);
return;
}
var stored = getStoredTheme();
applyTheme(stored || getPreferredTheme());
}
@@ -51,6 +73,7 @@
var next = currentTheme() === "dark" ? "light" : "dark";
applyTheme(next);
setStoredTheme(next);
persistThemePreference(next);
updateToggleState(next);
};