UNPKG

react-responsive-gallery-custom

Version:
30 lines (25 loc) 790 B
import { useState, useLayoutEffect } from "react"; import { isWidthGroupsDifferents } from "../utils/gallery"; const useScreenDimensions = (userScreenWidthValues) => { const [width, setWidth] = useState(window.innerWidth); useLayoutEffect(() => { const updateDimensions = () => { setWidth((oldWidth) => { if ( isWidthGroupsDifferents( window.innerWidth, oldWidth, userScreenWidthValues ) ) { return window.innerWidth; } return oldWidth; }); }; window.addEventListener("resize", updateDimensions); return () => window.removeEventListener("resize", updateDimensions); }, [userScreenWidthValues]); return { width }; }; export default useScreenDimensions;