import { useState, useEffect } from 'react'; const MOBILE_BREAKPOINT = 768; export function useIsMobile(): boolean { const [isMobile, setIsMobile] = useState(() => typeof window !== 'undefined' ? window.innerWidth < MOBILE_BREAKPOINT : false ); useEffect(() => { const mediaQuery = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`); const handleChange = (e: MediaQueryListEvent) => { setIsMobile(e.matches); }; // Set initial value setIsMobile(mediaQuery.matches); // Modern browsers support addEventListener mediaQuery.addEventListener('change', handleChange); return () => mediaQuery.removeEventListener('change', handleChange); }, []); return isMobile; }