UNPKG

@primer/react

Version:

An implementation of GitHub's Primer Design System using React

16 lines (15 loc) 601 B
//#region src/utils/scroll.ts /** * Returns the nearest scrollable parent of the element or `null` if the element * is not contained in a scrollable element. */ function getScrollContainer(element) { if (!element || element === document.body) return null; return isScrollable(element) ? element : getScrollContainer(element.parentElement); } /** Returns `true` if the element is scrollable */ function isScrollable(element) { return element.scrollHeight > element.clientHeight && !(window.getComputedStyle(element).overflowY.indexOf("hidden") !== -1); } //#endregion export { getScrollContainer };