import { useState, useEffect } from 'react' export function useMediaQuery(query) { const [matches, setMatches] = useState(() => window.matchMedia(query).matches) useEffect(() => { const mql = window.matchMedia(query) const onChange = e => setMatches(e.matches) mql.addEventListener('change', onChange) setMatches(mql.matches) return () => mql.removeEventListener('change', onChange) }, [query]) return matches } // Matches Tailwind's md breakpoint — keep CSS (md:) and JS forks in agreement. export const useIsMobile = () => !useMediaQuery('(min-width: 768px)')