react-use
Version:
Collection of React Hooks
28 lines (27 loc) • 983 B
JavaScript
import { useEffect } from 'react';
import useRafState from './useRafState';
import { isClient } from './util';
var useWindowSize = function (initialWidth, initialHeight) {
if (initialWidth === void 0) { initialWidth = Infinity; }
if (initialHeight === void 0) { initialHeight = Infinity; }
var _a = useRafState({
width: isClient ? window.innerWidth : initialWidth,
height: isClient ? window.innerHeight : initialHeight,
}), state = _a[0], setState = _a[1];
useEffect(function () {
if (isClient) {
var handler_1 = function () {
setState({
width: window.innerWidth,
height: window.innerHeight,
});
};
window.addEventListener('resize', handler_1);
return function () {
window.removeEventListener('resize', handler_1);
};
}
}, []);
return state;
};
export default useWindowSize;