chore: improve compatibility for upgraded packages

This commit is contained in:
josc146
2023-03-19 12:03:04 +08:00
parent e38139bfe7
commit b7634f723e
4 changed files with 31 additions and 8 deletions
+19
View File
@@ -0,0 +1,19 @@
import { useEffect, useState } from 'react'
export function useWindowTheme() {
const [theme, setTheme] = useState(
window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches
? 'dark'
: 'light',
)
useEffect(() => {
if (!window.matchMedia) return
const listener = (e) => {
setTheme(e.matches ? 'dark' : 'light')
}
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', listener)
return () =>
window.matchMedia('(prefers-color-scheme: dark)').removeEventListener('change', listener)
}, [])
return theme
}