UNPKG

@zohodesk/hooks

Version:

Unified Component Library - Hooks

31 lines (28 loc) 1.15 kB
import useEvent from "../utils/useEvent"; import { betterView } from "./viewport/index"; import findScrollElementWithHidden from "../utils/scroll/findScrollElementWithHidden"; import getScrollableParent from "../utils/scroll/getScrollableParent"; export default function useFloating(getContainerElement, getFloatingElement) { let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; const { defaultPosition = 'bottomCenter', isAbsolute = true, needArrow, preferredPositions } = options; const getFloatingData = useEvent(() => { const cElem = getContainerElement(); const fElem = getFloatingElement(); if (!fElem) { return {}; } const scrollEl = getScrollableParent(cElem, findScrollElementWithHidden); // const { popupOffset, relativePosition, targetOffset, views, viewsOffset, ...floatingData } = betterView(fElem, cElem, defaultPosition, scrollEl, { const floatingData = betterView(fElem, cElem, defaultPosition, scrollEl, { isAbsolute, customOrder: preferredPositions, needArrow }); return floatingData; }); return getFloatingData; }