@withvoid/melting-pot
Version:
A react utility library
28 lines (21 loc) • 625 B
JavaScript
import React from 'react';
const useWindowSize = () => {
const isClient = typeof window === 'object';
const getSize = () => ({
width: isClient ? window.innerWidth : undefined,
height: isClient ? window.innerHeight : undefined,
});
const [size, setSize] = React.useState(getSize);
React.useEffect(() => {
if (!isClient) {
return false;
}
const onHandleResize = () => {
setSize(getSize);
};
window.addEventListener('resize', onHandleResize);
return () => window.removeEventListener('resize', onHandleResize);
}, []);
return size;
};
export default useWindowSize;