mirror of
https://github.com/misode/misode.github.io.git
synced 2026-04-23 23:27:09 +00:00
Giscus (#209)
* Test giscus on homepage * Use @giscus/react and support light theme * Track prefers color scheme * Create a discussion tab for each version
This commit is contained in:
19
src/app/hooks/useMediaQuery.ts
Normal file
19
src/app/hooks/useMediaQuery.ts
Normal file
@@ -0,0 +1,19 @@
|
||||
import { useEffect, useState } from 'preact/hooks'
|
||||
|
||||
export function useMediaQuery(query: string): boolean {
|
||||
const [prefers, setPrefers] = useState(matchMedia(query).matches)
|
||||
|
||||
const onChange = (e: MediaQueryListEvent) => {
|
||||
setPrefers(e.matches)
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
const mediaQuery = matchMedia(query)
|
||||
mediaQuery.addEventListener('change', onChange)
|
||||
return () => {
|
||||
mediaQuery.removeEventListener('change', onChange)
|
||||
}
|
||||
}, [query])
|
||||
|
||||
return prefers
|
||||
}
|
||||
Reference in New Issue
Block a user