From af2a5b39280c023975896587968b396e0974c399 Mon Sep 17 00:00:00 2001 From: tangly1024 Date: Fri, 28 Jul 2023 17:00:02 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=9D=E5=AD=98=E7=94=A8=E6=88=B7=E6=B7=B1?= =?UTF-8?q?=E8=89=B2=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/global.js | 2 +- themes/theme.js | 24 +++++++++++++++++------- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/lib/global.js b/lib/global.js index 9cafd304..04b40cbe 100644 --- a/lib/global.js +++ b/lib/global.js @@ -24,7 +24,7 @@ export function GlobalContextProvider({ children }) { useEffect(() => { initLocale(lang, locale, updateLang, updateLocale) - initDarkMode(isDarkMode, updateDarkMode) + initDarkMode(updateDarkMode) initTheme() }, []) diff --git a/themes/theme.js b/themes/theme.js index 468199d2..a34b2f52 100644 --- a/themes/theme.js +++ b/themes/theme.js @@ -60,16 +60,26 @@ export const getLayoutNameByPath = (path) => { * @param updateDarkMode 更改主题ChangeState函数 * @description 读取cookie中存的用户主题 */ -export const initDarkMode = (isDarkMode, updateDarkMode) => { +export const initDarkMode = (updateDarkMode) => { + console.log('检查深色模式') + // 查看用户设备浏览器是否深色模型 + let newDarkMode = isPreferDark() + + // 查看cookie中是否用户强制设置深色模式 + const cookieDarkMode = loadDarkModeFromCookies() + if (cookieDarkMode) { + newDarkMode = JSON.parse(cookieDarkMode) + } + + // url查询条件中是否深色模式 const queryMode = getQueryVariable('mode') if (queryMode) { - isDarkMode = queryMode === 'dark' - } else if (!isDarkMode) { - isDarkMode = isPreferDark() + newDarkMode = queryMode === 'dark' } - updateDarkMode(isDarkMode) - saveDarkModeToCookies(isDarkMode) - document.getElementsByTagName('html')[0].setAttribute('class', isDarkMode ? 'dark' : 'light') + + updateDarkMode(newDarkMode) + saveDarkModeToCookies(newDarkMode) + document.getElementsByTagName('html')[0].setAttribute('class', newDarkMode ? 'dark' : 'light') } /**