Skip to content

Instantly share code, notes, and snippets.

@vaibhavpandeyvpz
Created July 25, 2021 11:36

Revisions

  1. vaibhavpandeyvpz created this gist Jul 25, 2021.
    26 changes: 26 additions & 0 deletions useWindowSize.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,26 @@
    import { useEffect, useState } from 'react';

    /**
    * @return {{width: Number, height: Number}}
    */
    function getWindowSize() {
    return {
    width: window.innerWidth,
    height: window.innerHeight,
    };
    }

    /**
    * @return {{width: Number, height: Number}}
    */
    function useWindowSize() {
    const [size, setSize] = useState(getWindowSize());
    useEffect(() => {
    const listener = () => setSize(getWindowSize());
    window.addEventListener('resize', listener);
    return () => window.removeEventListener('resize', listener);
    }, []);
    return size;
    }

    export default useWindowSize;