@eureca/eureca-ui
Version:
UI component library of Eureca's user and admin apps
19 lines (17 loc) • 645 B
JavaScript
import { useState, useEffect } from 'react';
function useWindowSize() {
const isWindowClient = typeof window === 'object';
const [windowSize, setWindowSize] = useState(
isWindowClient ? { width: window.innerWidth, height: window.innerHeight } : undefined
);
useEffect(() => {
const setSize = () => setWindowSize({ width: window.innerWidth, height: window.innerHeight });
if (!isWindowClient) {
return undefined;
}
window.addEventListener('resize', setSize);
return () => window.removeEventListener('resize', setSize);
}, [isWindowClient, setWindowSize]);
return windowSize;
}
export { useWindowSize };