mirror of
https://github.com/linsa-io/linsa.git
synced 2026-01-12 12:20:23 +01:00
Move to TanStack Start from Next.js (#184)
This commit is contained in:
23
web/app/hooks/use-media.ts
Normal file
23
web/app/hooks/use-media.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
import * as React from "react"
|
||||
|
||||
export function useMedia(query: string): boolean {
|
||||
const [matches, setMatches] = React.useState<boolean>(false)
|
||||
|
||||
React.useEffect(() => {
|
||||
if (window.matchMedia) {
|
||||
const media = window.matchMedia(query)
|
||||
if (media.matches !== matches) {
|
||||
setMatches(media.matches)
|
||||
}
|
||||
const listener = () => {
|
||||
setMatches(media.matches)
|
||||
}
|
||||
media.addListener(listener)
|
||||
return () => media.removeListener(listener)
|
||||
}
|
||||
|
||||
return undefined
|
||||
}, [matches, query])
|
||||
|
||||
return matches
|
||||
}
|
||||
Reference in New Issue
Block a user