优化:默认主题模式选择跟随系统时,无法保存当前浏览器选择的问题

This commit is contained in:
mjsoftware 2024-03-12 11:57:34 +08:00
parent 909a14ffcc
commit acc9ddcbbd

View File

@ -127,15 +127,23 @@
/** 配置主题模式 */
DreamConfig["default_theme"] = '[(${theme.config.basic_style.default_theme})]';
(function(){
let isNight = DreamConfig.default_theme === 'system'? matchMedia('(prefers-color-scheme: dark)').matches : localStorage.getItem('night') || DreamConfig.default_theme === 'night';
const hasNightInLocal = () => localStorage.getItem('night') !== null;
const getNightInConfig = () => {
if (DreamConfig.default_theme === 'night') {
return true;
}
if (DreamConfig.default_theme === 'system') {
return matchMedia('(prefers-color-scheme: dark)').matches;
}
return false;
}
let isNight = hasNightInLocal() ? localStorage.getItem('night') : getNightInConfig();
if (isNight.toString() === 'true') {
localStorage.setItem('night', 'true');
document.documentElement.classList.add('night');
// 组件配色方案
document.documentElement.classList.add('color-scheme-dark');
} else {
localStorage.setItem('night', 'false');
// 组件配色方案
document.documentElement.classList.add('color-scheme-light');
}
})();