ghost-portal/packages/react-hooks/src/useWindowSize.ts
MiZiet b6c827a908
Remove sui popup (#5924)
* Add custom popup

* Render popup window with react portal

* Handle scroll

* Handle pointer scroll

* Refactor types

* Add useOutsideClick

* Restore button styles

* Update types

* Add tests

* Set multiple refs

* Cleanup

* Cleanup

* Move offset const to the utils

* Add useCallback in useScroll

* Remove empty lines in useElementPosition

* Change styled components to functional

* Make sure popup window stays in view

* Highlight trigger button when popup is open

* Add uesPopupWindow hook

* Make triangle larger

* Use full trigger height

* Apply new lint rules

Co-authored-by: Jaco Greeff <jacogr@gmail.com>
2021-08-31 09:35:33 +02:00

33 lines
701 B
TypeScript

// Copyright 2017-2021 @polkadot/react-hooks authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { useEffect, useState } from 'react';
export interface WindowSize {
width: number;
height: number;
}
export function useWindowSize (): WindowSize {
const [windowSize, setWindowSize] = useState<WindowSize>({
height: 0,
width: 0
});
useEffect(() => {
function handleResize () {
setWindowSize({
height: window.innerHeight,
width: window.innerWidth
});
}
window.addEventListener('resize', handleResize);
handleResize();
return () => window.removeEventListener('resize', handleResize);
}, []);
return windowSize;
}