@figliolia/react-hooks
Version:
A small collection of simple React Hooks you're probably rewriting on a regular basis
25 lines (24 loc) • 809 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useWindowSize = void 0;
const react_1 = require("react");
const getDimensions = () => {
if (typeof window === "undefined") {
return { width: 0, height: 0 };
}
return { width: window.innerWidth, height: window.innerHeight };
};
const useWindowSize = () => {
const [dimensions, setDimensions] = (0, react_1.useState)(getDimensions());
const onResize = (0, react_1.useCallback)(() => {
setDimensions(getDimensions());
}, []);
(0, react_1.useLayoutEffect)(() => {
window.addEventListener("resize", onResize);
return () => {
window.removeEventListener("resize", onResize);
};
});
return dimensions;
};
exports.useWindowSize = useWindowSize;