UNPKG

rooks

Version:

Essential React custom hooks ⚓ to super charge your components!

43 lines (42 loc) 1.2 kB
import { useState } from "react"; import { useOnWindowResize } from "./useOnWindowResize"; import { useOnWindowScroll } from "./useOnWindowScroll"; function computeScrollPosition() { if (typeof window === "undefined") { return { scrollX: 0, scrollY: 0, }; } else { return { scrollX: window.scrollX || window.pageXOffset, scrollY: window.scrollY || window.pageYOffset, }; } } /** * * useWindowScrollPosition hook * A React hook to get the scroll position of the window * * @returns an object containing scrollX and scrollY values * @see https://react-hooks.org/docs/useWindowScrollPosition */ function useWindowScrollPosition() { var _a = useState(computeScrollPosition), scrollPosition = _a[0], setScrollPosition = _a[1]; /** * Recalculate on scroll */ useOnWindowScroll(function () { setScrollPosition(computeScrollPosition()); }, true, true); /** * Recalculate on resize */ useOnWindowResize(function () { setScrollPosition(computeScrollPosition()); }, true, true); return scrollPosition; } export { useWindowScrollPosition };