saleor-dashboard/src/hooks/useScroll.ts

26 lines
576 B
TypeScript
Raw Normal View History

2019-06-19 14:40:52 +00:00
// tslint:disable:no-submodule-imports
import * as throttle from "lodash/throttle";
import { useEffect, useState } from "react";
function getPosition() {
return {
x: window.pageXOffset,
y: window.pageYOffset
};
}
function useScroll() {
const [scroll, setScroll] = useState(getPosition);
useEffect(() => {
const handleScroll = throttle(() => setScroll(getPosition()), 250);
window.addEventListener("scroll", handleScroll);
return () => window.removeEventListener("scroll", handleScroll);
}, []);
return scroll;
}
export default useScroll;