@zohodesk/hooks
Version:
Unified Component Library - Hooks
18 lines (16 loc) • 571 B
JavaScript
import { useMemo } from 'react';
import getAllScrollableParents from "../utils/scroll/getAllScrollableParents";
export default function useScrollParents(targetElement) {
let scrollableParents = useMemo(() => {
let scrollableParents = getAllScrollableParents(targetElement);
if (scrollableParents.length <= 1) {
scrollableParents.push(document);
}
let [immediateScrollParent, ...otherScrollParents] = scrollableParents;
return {
immediateScrollParent,
otherScrollParents
};
}, [targetElement]);
return scrollableParents;
}