import { useState, useEffect } from "react"; | |
const useMediaQuery = (query) => { | |
const [matches, setMatches] = useState(false); | |
useEffect(() => { | |
const media = window.matchMedia(query); | |
if (media.matches !== matches) { | |
setMatches(media.matches); | |
} | |
const listener = () => setMatches(media.matches); | |
window.addEventListener("resize", listener); | |
return () => window.removeEventListener("resize", listener); | |
}, [matches, query]); | |
return matches; | |
} | |
export default useMediaQuery; |