Merge pull request #340 from suemor233/fix/dark-mode-switch
This commit is contained in:
commit
00d5ca6f61
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue