From 5d41e3df775aa29aacb633f8d27b40fbb3425d07 Mon Sep 17 00:00:00 2001 From: suemor Date: Fri, 14 Apr 2023 20:08:38 +0800 Subject: [PATCH] fix: dark mode cannot switch correctly --- src/hooks/useDarkMode.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/hooks/useDarkMode.ts b/src/hooks/useDarkMode.ts index 0b26d8b5..4638ac98 100644 --- a/src/hooks/useDarkMode.ts +++ b/src/hooks/useDarkMode.ts @@ -18,7 +18,7 @@ interface DarkModeConfig { classNameDark?: string // A className to set "dark mode". Default = "dark-mode". classNameLight?: string // A className to set "light mode". Default = "light-mode". element?: HTMLElement | undefined | null // The element to apply the className. Default = `document.body` - storageKey?: string // Specify the `localStorage` key. Default = "darkMode". Sewt to `null` to disable persistent storage. + storageKey?: string // Specify the `localStorage` key. Default = "darkMode". set to `undefined` to disable persistent storage. } const useDarkMode = ( @@ -37,11 +37,11 @@ const useDarkMode = ( useEffect(() => { const presentedDarkMode = storageKey ? isServerSide() - ? null - : getStorage(storageKey) || null - : null + ? undefined + : getStorage(storageKey) + : undefined - if (presentedDarkMode !== null) { + if (presentedDarkMode !== undefined) { if (presentedDarkMode === "true") { setDarkMode(true) } else if (presentedDarkMode === "false") { @@ -55,14 +55,14 @@ const useDarkMode = ( useEffect(() => { const handler = (e: MediaQueryListEvent) => { const storageValue = getStorage(storageKey || "darkMode") - if (storageValue === null) { + if (storageValue === undefined) { setDarkMode(e.matches) } } const focusHandler = () => { const storageValue = getStorage(storageKey || "darkMode") - if (storageValue === null) { + if (storageValue === undefined) { setDarkMode(window.matchMedia("(prefers-color-scheme: dark)").matches) } }