LAN_Portal/theme-controls.js
2026-10-16 16:22:59 -04:00

21 lines
823 B
JavaScript
Executable file

// Wires up the appearance buttons and remembers the choice in localStorage (if available).
(function () {
var box = document.getElementById('appearance');
if (!box || !window.portalTheme) return;
var prefs = Object.assign({}, window.portalTheme.current());
box.addEventListener('click', function (e) {
var b = e.target.closest('button');
if (!b) return;
if (b.dataset.reset) prefs = {};
if (b.dataset.mode) prefs.mode = b.dataset.mode;
if (b.dataset.pick) prefs.accent = b.dataset.pick;
window.portalTheme.apply(prefs);
try {
if (b.dataset.reset) localStorage.removeItem(window.portalTheme.key);
else localStorage.setItem(window.portalTheme.key, JSON.stringify(prefs));
} catch (err) {}
});
box.hidden = false; // without JavaScript the control stays hidden
})();