openpanel/documentation/src/hooks/use-is-mobile.ts
2024-02-05 10:23:04 +01:00

27 lines
662 B
TypeScript

import { useEffect, useState } from "react";
const getIsMobile = () =>
typeof window !== "undefined" ? window.innerWidth <= 768 : false;
export default function useIsMobile() {
const [isMobile, setIsMobile] = useState(getIsMobile());
useEffect(() => {
const onResize = () => {
setIsMobile(getIsMobile());
};
if (typeof window !== "undefined") {
window.addEventListener("resize", onResize);
}
return () => {
if (typeof window !== "undefined") {
window.removeEventListener("resize", onResize);
}
};
}, []);
return isMobile;
}