cra-template-truemark
Version:
CRA Template with setups including, eslint, prettier, eslint, husky and reviewdog
27 lines (20 loc) • 603 B
JavaScript
import { useState, useEffect } from "react";
function getDimensions() {
if (typeof window !== "object") return {};
const { innerWidth: width, innerHeight: height } = window;
return {
width,
height,
};
}
export function useWindowDimensions() {
const [windowDimensions, setWindowDimensions] = useState(getDimensions());
useEffect(() => {
function handleResize() {
setWindowDimensions(getDimensions());
}
window.addEventListener("resize", handleResize);
return () => window.removeEventListener("resize", handleResize);
}, []);
return windowDimensions;
}