UNPKG

@kiwicom/orbit-components

Version:

Orbit-components is a React component library which provides developers with the easiest possible way of building Kiwi.com’s products.

31 lines (23 loc) 876 B
import { POSITIONS } from "../consts"; const isInside = (p, canBe) => { if (p === POSITIONS.TOP && canBe[p]) { return POSITIONS.TOP; } if (p === POSITIONS.BOTTOM && canBe[p]) { return POSITIONS.BOTTOM; } return false; }; const calculateVerticalPosition = (desiredPositions, pos) => { const canBe = { [POSITIONS.TOP]: pos.containerTop - pos.popoverHeight > pos.windowScrollTop, [POSITIONS.BOTTOM]: pos.containerTop - pos.windowScrollTop + pos.containerHeight + pos.popoverHeight < pos.windowHeight }; const possiblePositions = desiredPositions.map(p => isInside(p, canBe)).filter(p => typeof p === "string"); // ordering in POSITIONS const is important const posPosition = possiblePositions[0]; if (typeof posPosition === "string") { return posPosition; } return POSITIONS.BOTTOM; }; export default calculateVerticalPosition;