Spaces:
Running on Zero
Running on Zero
| import { useEffect, useState } from 'react'; | |
| export function useMediaQuery(query: string) { | |
| const [matches, setMatches] = useState(() => { | |
| if (typeof window === 'undefined') return false; | |
| return window.matchMedia(query).matches; | |
| }); | |
| useEffect(() => { | |
| const mediaQuery = window.matchMedia(query); | |
| const handleChange = (event: MediaQueryListEvent) => setMatches(event.matches); | |
| mediaQuery.addEventListener('change', handleChange); | |
| return () => mediaQuery.removeEventListener('change', handleChange); | |
| }, [query]); | |
| return matches; | |
| } | |