UNPKG

@applicaster/zapp-react-native-ui-components

Version:

Applicaster Zapp React Native ui components for the Quick Brick App

33 lines (26 loc) 861 B
import * as React from "react"; export function callOnChildren(children, method, ...args) { const childMethod = React.Children.only(children).props[method]; typeof childMethod === "function" && childMethod?.(...args); } export function isInViewport( viewportOffset, viewportSize, elementOffset, elementSize, preTriggerRatio ) { let isInViewPort = true; const preTriggerAreaSize = preTriggerRatio ? preTriggerRatio * viewportSize : 0; const elementEnd = elementOffset + elementSize; const viewportEnd = viewportOffset + viewportSize; const isViewportOffsetBeforeElement = viewportOffset <= elementOffset; if (isViewportOffsetBeforeElement) { isInViewPort = elementOffset - preTriggerAreaSize <= viewportEnd; } else { isInViewPort = elementEnd + preTriggerAreaSize >= viewportOffset; } return isInViewPort; }