// Picks BMobile vs BDesktop based on viewport width.
// Breakpoint: 1024px — below = mobile layout, at/above = desktop layout.
const useIsMobile = (breakpoint = 1024) => {
const get = () => typeof window !== "undefined" && window.innerWidth < breakpoint;
const [isMobile, setIsMobile] = React.useState(get);
React.useEffect(() => {
const mql = window.matchMedia(`(max-width: ${breakpoint - 1}px)`);
const onChange = (e) => setIsMobile(e.matches);
if (mql.addEventListener) mql.addEventListener("change", onChange);
else mql.addListener(onChange);
setIsMobile(mql.matches);
return () => {
if (mql.removeEventListener) mql.removeEventListener("change", onChange);
else mql.removeListener(onChange);
};
}, [breakpoint]);
return isMobile;
};
const App = () => {
const isMobile = useIsMobile(1024);
return isMobile ? : ;
};
ReactDOM.createRoot(document.getElementById("root")).render();