优化黑暗模式和白天模式
This commit is contained in:
@@ -183,6 +183,17 @@
|
||||
|
||||
// Auth & Theme listeners
|
||||
dom.themeToggle.addEventListener('change', toggleTheme);
|
||||
|
||||
// System Theme Listener (Real-time)
|
||||
const systemThemeMedia = window.matchMedia('(prefers-color-scheme: light)');
|
||||
if (systemThemeMedia.addEventListener) {
|
||||
systemThemeMedia.addEventListener('change', () => {
|
||||
const savedTheme = localStorage.getItem('theme') || (window.SITE_SETTINGS && window.SITE_SETTINGS.default_theme) || 'dark';
|
||||
if (savedTheme === 'auto') {
|
||||
applyTheme('auto');
|
||||
}
|
||||
});
|
||||
}
|
||||
dom.btnLogin.addEventListener('click', openLoginModal);
|
||||
dom.closeLoginModal.addEventListener('click', closeLoginModal);
|
||||
dom.loginForm.addEventListener('submit', handleLogin);
|
||||
@@ -1705,6 +1716,16 @@
|
||||
networkChart.draw();
|
||||
}
|
||||
}
|
||||
|
||||
// Default Theme
|
||||
if (settings.default_theme) {
|
||||
if (dom.defaultThemeInput) dom.defaultThemeInput.value = settings.default_theme;
|
||||
// If setting is 'auto', we also sync immediately
|
||||
const savedTheme = localStorage.getItem('theme');
|
||||
if (!savedTheme || savedTheme === 'auto') {
|
||||
applyTheme(settings.default_theme);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async function saveSiteSettings() {
|
||||
@@ -1723,6 +1744,11 @@
|
||||
p95_type: dom.p95TypeSelect.value
|
||||
};
|
||||
|
||||
// If user sets default to auto, we should clear their manual override or set it to auto
|
||||
if (settings.default_theme === 'auto') {
|
||||
localStorage.setItem('theme', 'auto');
|
||||
}
|
||||
|
||||
dom.btnSaveSiteSettings.disabled = true;
|
||||
dom.btnSaveSiteSettings.textContent = '保存中...';
|
||||
|
||||
|
||||
Reference in New Issue
Block a user