UNPKG

@netdata/netdata-ui

Version:

netdata UI kit

34 lines 1.14 kB
import { useEffect } from "react"; import getAncestors from "../mixins/getAncestors"; export default (function (target, callback) { return useEffect(function () { var removeScrollListeners; var addScrollListeners = function addScrollListeners() { var scrollAncestors = getAncestors(target).filter(function (node) { return node.scrollHeight > node.clientHeight; }); scrollAncestors.forEach(function (node) { return node.addEventListener("scroll", callback, { capture: false, passive: true }); }); return function () { return scrollAncestors.forEach(function (node) { return node.removeEventListener("scroll", callback); }); }; }; removeScrollListeners = addScrollListeners(); var onResize = function onResize() { removeScrollListeners(); removeScrollListeners = addScrollListeners(); callback(); }; window.addEventListener("resize", onResize); return function () { removeScrollListeners(); window.removeEventListener("resize", onResize); }; }, [target, callback]); });