mirror of
https://github.com/linsa-io/linsa.git
synced 2026-02-25 03:45:02 +01:00
26 lines
626 B
TypeScript
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
|