import * as React from "react"; const MOBILE_BREAKPOINT = 768; export function useIsMobile() { const [isMobile, setIsMobile] = React.useState( typeof window !== "undefined" ? window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`).matches : false ); React.useEffect(() => { const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`); const onChange = (event: MediaQueryListEvent) => { setIsMobile(event.matches); }; // Set initial value setIsMobile(mql.matches); // Add listener mql.addEventListener("change", onChange); // Cleanup return () => mql.removeEventListener("change", onChange); }, []); return isMobile; }