Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 66x | import { useState, useEffect } from 'react';
const useMediaQuery = (query: string): boolean => {
const [matches, setMatches] = useState(window.matchMedia(query).matches);
useEffect((): (() => void) => {
const media = window.matchMedia(query);
if (media.matches !== matches) {
setMatches(media.matches);
}
const listener: (() => void) = () => setMatches(media.matches);
media.addListener(listener);
return () => media.removeListener(listener);
}, [matches, query]);
return matches;
};
export default useMediaQuery;
|