mirror of
https://github.com/linsa-io/linsa.git
synced 2026-03-18 07:13:55 +01:00
* chore: remove useKeyDownListener * chore: remove react-use, update jazz version and add query string * chore: update jazz version * chore: use simple mac or win utils code * feat(util): add isTextInput * feat(hooks): all needed hooks * fix: link bunch stuff * fix: page bunch stuff * chore: bunch update for custom component * chore: use throttle from internal hook * chore: topic bunch stuff * chore: update layout * fix: truncate content header of topic detail
24 lines
518 B
TypeScript
24 lines
518 B
TypeScript
import { useState, useEffect } from "react"
|
|
|
|
export function useMedia(query: string): boolean {
|
|
const [matches, setMatches] = useState<boolean>(false)
|
|
|
|
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
|
|
}
|