// useMobile.jsx — shared responsive hook // Returns true when viewport width <= breakpoint (default 760). function useMobile(breakpoint = 760) { const [isMobile, setIsMobile] = React.useState(() => typeof window !== "undefined" && window.matchMedia ? window.matchMedia(`(max-width: ${breakpoint}px)`).matches : false ); React.useEffect(() => { if (!window.matchMedia) return; const mql = window.matchMedia(`(max-width: ${breakpoint}px)`); const handler = (e) => setIsMobile(e.matches); if (mql.addEventListener) mql.addEventListener("change", handler); else mql.addListener(handler); setIsMobile(mql.matches); return () => { if (mql.removeEventListener) mql.removeEventListener("change", handler); else mql.removeListener(handler); }; }, [breakpoint]); return isMobile; } window.useMobile = useMobile;