import { useEffect, useState } from 'react' import useDebouncedValue from './useDebouncedValue' import useWindowDimensions from './useWindowDimensions' const useOnWindowResizing = (debounceTime = 200) => { const window = useWindowDimensions() const [resizing, setResizing] = useState(false) const debouncedHeight = useDebouncedValue(window.height, debounceTime) const debouncedWidth = useDebouncedValue(window.width, debounceTime) useEffect(() => { setResizing(true) const timeout = setTimeout(() => setResizing(false), debounceTime) return () => clearTimeout(timeout) }, [debouncedHeight, debouncedWidth]) return resizing } export default useOnWindowResizing