Files
linsa-linsa-io/web/app/hooks/use-theme.ts
2024-10-07 12:44:17 +03:00

26 lines
626 B
TypeScript

import * as React from "react"
export const useTheme = () => {
const [isDarkMode, setIsDarkMode] = React.useState(false)
React.useEffect(() => {
const darkModeMediaQuery = window.matchMedia("(prefers-color-scheme: dark)")
setIsDarkMode(darkModeMediaQuery.matches)
const handleChange = (e: MediaQueryListEvent) => {
const newDarkMode = e.matches
setIsDarkMode(newDarkMode)
}
darkModeMediaQuery.addEventListener("change", handleChange)
return () => {
darkModeMediaQuery.removeEventListener("change", handleChange)
}
}, [])
return isDarkMode
}
export default useTheme