@applicaster/zapp-react-native-ui-components
Version:
Applicaster Zapp React Native ui components for the Quick Brick App
33 lines (26 loc) • 861 B
JavaScript
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;
}