react-use
Version:
Collection of React Hooks
30 lines (29 loc) • 951 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var react_1 = require("react");
var util_1 = require("./util");
var useRafState_1 = tslib_1.__importDefault(require("./useRafState"));
var useWindowScroll = function () {
var _a = useRafState_1.default({
x: util_1.isClient ? window.pageXOffset : 0,
y: util_1.isClient ? window.pageYOffset : 0,
}), state = _a[0], setState = _a[1];
react_1.useEffect(function () {
var handler = function () {
setState({
x: window.pageXOffset,
y: window.pageYOffset,
});
};
window.addEventListener('scroll', handler, {
capture: false,
passive: true,
});
return function () {
window.removeEventListener('scroll', handler);
};
}, []);
return state;
};
exports.default = useWindowScroll;