github.com/turbot/steampipe@v1.7.0-rc.0.0.20240517123944-7cef272d4458/ui/dashboard/src/hooks/useWindowSize.ts (about) 1 import { useEffect, useState } from "react"; 2 3 // https://stackoverflow.com/questions/19014250/rerender-view-on-browser-resize-with-react 4 const useWindowSize = (): readonly [number, number] => { 5 // @ts-ignore 6 const [size, setSize] = useState( 7 typeof window !== "undefined" 8 ? ([window.innerWidth, window.innerHeight] as const) 9 : ([0, 0] as const) 10 ); 11 useEffect(() => { 12 const updateSize = () => { 13 setSize([window.innerWidth, window.innerHeight]); 14 }; 15 window.addEventListener("resize", updateSize); 16 return () => window.removeEventListener("resize", updateSize); 17 }, []); 18 return size; 19 }; 20 21 export default useWindowSize;