UNPKG

@gravity-ui/uikit

Version:

Gravity UI base styling and components

29 lines (28 loc) 982 B
import * as React from 'react'; const getViewportSize = () => ({ width: window?.visualViewport?.width ?? window?.innerWidth ?? undefined, height: window?.visualViewport?.height ?? window?.innerHeight ?? undefined, }); /** * A hook to get the size of the viewport when resizing * * @return - {width, height} */ export const useViewportSize = () => { const [size, setSize] = React.useState(getViewportSize()); React.useEffect(() => { const onResize = () => { let newSize = getViewportSize(); if (newSize.width === size?.width && newSize.height === size?.height) { newSize = size; } setSize(newSize); }; (window.visualViewport ?? window).addEventListener('resize', onResize); return () => { (window.visualViewport ?? window).removeEventListener('resize', onResize); }; }, [size]); return size; }; //# sourceMappingURL=useViewportSize.js.map