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;