@react-md/utils
Version:
General utils for react-md.
29 lines • 1.1 kB
JavaScript
import { useEffect } from "react";
import { useRefCache } from "../useRefCache";
import { delegateEvent } from "./utils";
/**
*
* @remarks \@since 5.0.0 Moved the `AddEventListenerOptions` to no longer be
* part of an `options` object.
*/
export function useScrollListener(_a) {
var once = _a.once, _b = _a.passive, passive = _b === void 0 ? true : _b, signal = _a.signal, capture = _a.capture, _c = _a.enabled, enabled = _c === void 0 ? true : _c, onScroll = _a.onScroll;
var scrollHandlerRef = useRefCache(onScroll);
useEffect(function () {
if (!enabled) {
return;
}
var eventHandler = delegateEvent("scroll", window, true, {
once: once,
passive: passive,
signal: signal,
capture: capture,
});
var scrollHandler = scrollHandlerRef.current;
eventHandler.add(scrollHandler);
return function () {
eventHandler.remove(scrollHandler);
};
}, [capture, enabled, once, passive, scrollHandlerRef, signal]);
}
//# sourceMappingURL=useScrollListener.js.map