import * as React from "react"; const MOBILE_BREAKPOINT = 768; export function useIsMobile(): boolean | undefined { const [isMobile, setIsMobile] = React.useState(undefined); React.useEffect(() => { // Guard against server-side rendering if (typeof window === 'undefined') return; const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`); // Use MediaQueryList.matches instead of window.innerWidth for consistency const onChange = () => { setIsMobile(mql.matches); }; // Set initial value setIsMobile(mql.matches); // Listen for changes mql.addEventListener("change", onChange); // Cleanup listener on unmount return () => mql.removeEventListener("change", onChange); }, []); return isMobile; }