mirror of
https://github.com/fleetdm/fleet
synced 2026-04-21 21:47:20 +00:00
Implements #32247. This is the complete feature branch, consolidating: - https://github.com/fleetdm/fleet/pull/35018 - https://github.com/fleetdm/fleet/pull/34758 - https://github.com/fleetdm/fleet/pull/35009 - https://github.com/fleetdm/fleet/pull/35181 - https://github.com/fleetdm/fleet/pull/35342 --------- Co-authored-by: Jonathan Katz <44128041+jkatz01@users.noreply.github.com> Co-authored-by: RachelElysia <71795832+RachelElysia@users.noreply.github.com> Co-authored-by: Martin Angers <martin.n.angers@gmail.com> Co-authored-by: jkatz01 <yehonatankatz@gmail.com>
34 lines
889 B
TypeScript
34 lines
889 B
TypeScript
import { useEffect, useState } from "react";
|
|
|
|
const MOBILE_BREAKPOINT = 768;
|
|
|
|
const useIsMobileWidth = () => {
|
|
const [isMobileWidth, setIsMobileWidth] = useState(false);
|
|
|
|
useEffect(() => {
|
|
const query = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
const updateMatch = (e: MediaQueryListEvent) => setIsMobileWidth(e.matches);
|
|
|
|
// Modern browsers
|
|
if (query.addEventListener) {
|
|
query.addEventListener("change", updateMatch);
|
|
} else {
|
|
// Fallback for older Safari
|
|
query.addListener(updateMatch);
|
|
}
|
|
|
|
setIsMobileWidth(query.matches);
|
|
|
|
return () => {
|
|
if (query.removeEventListener) {
|
|
query.removeEventListener("change", updateMatch);
|
|
} else {
|
|
query.removeListener(updateMatch); // Deprecated but safe fallback
|
|
}
|
|
};
|
|
}, []);
|
|
|
|
return isMobileWidth;
|
|
};
|
|
|
|
export default useIsMobileWidth;
|