| 1234567891011121314151617181920212223 |
- import * as React from "react";
- const MOBILE_BREAKPOINT = 768;
- const MOBILE_MEDIA_QUERY = `(max-width: ${MOBILE_BREAKPOINT - 1}px)`;
- function subscribe(callback: () => void) {
- const mql = window.matchMedia(MOBILE_MEDIA_QUERY);
- mql.addEventListener("change", callback);
- return () => mql.removeEventListener("change", callback);
- }
- function getSnapshot() {
- return window.innerWidth < MOBILE_BREAKPOINT;
- }
- function getServerSnapshot() {
- return false;
- }
- export function useIsMobile() {
- return React.useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);
- }
|