UNPKG

@frontify/fondue

Version:
31 lines (30 loc) 1.04 kB
import { useEffect as h } from "react"; const S = (n, { isDisabled: e = !1 }) => { h(() => { const t = n.current, c = (l) => { const r = ["auto", "scroll"]; if (!l || l === t) return null; const o = r.includes(window.getComputedStyle(l).overflowY); return l.scrollHeight > l.clientHeight && o ? l : c(l.parentElement); }, a = (l) => { const r = () => { l.stopPropagation(), l.preventDefault(); }; if (t !== null) { const o = l.deltaY, u = o < 0, s = c(l.target) ?? t, { scrollTop: f, scrollHeight: p, clientHeight: g } = s; if (!u && o > p - g - f) return s.scrollTop = p, r(), !1; if (u && -o > f) return s.scrollTop = 0, r(), !1; } }, i = { passive: !1, capture: !1 }; return !e && t !== null && t.addEventListener("wheel", a, i), () => { !e && t !== null && t.removeEventListener("wheel", a, i); }; }, [e, n]); }; export { S as useContainScroll }; //# sourceMappingURL=useContainScroll.es.js.map