UNPKG

one

Version:

One is a React framework for web, iOS, and Android apps.

49 lines (46 loc) • 1.77 kB
import { jsx } from "react/jsx-runtime"; import { Children, cloneElement, forwardRef, isValidElement, useImperativeHandle, useRef } from "react"; import NativePager, { Commands } from "../specs/OneNativePagerNativeComponent.native.js"; import { validatePage, validatePager } from "./pagerTypes.native.js"; var Pager = /* @__PURE__ */ forwardRef(function Pager2(param, ref) { var { children, onPageScrollStateChanged, ...props } = param; validatePager(props); var nativeRef = useRef(null); useImperativeHandle(ref, function() { return { setPage(index) { validatePage(index); if (nativeRef.current) Commands.setPage(nativeRef.current, index); }, setPageWithoutAnimation(index) { validatePage(index); if (nativeRef.current) Commands.setPageWithoutAnimation(nativeRef.current, index); }, setScrollEnabled(enabled) { if (nativeRef.current) Commands.setScrollEnabledImperatively(nativeRef.current, enabled); } }; }, []); return /* @__PURE__ */ jsx(NativePager, { ...props, ref: nativeRef, onPageScrollStateChanged: onPageScrollStateChanged ? function(param2) { var { nativeEvent } = param2; var state = nativeEvent.pageScrollState; if (state === "idle" || state === "dragging" || state === "settling") onPageScrollStateChanged({ nativeEvent: { pageScrollState: state } }); } : void 0, children: Children.map(children, function(child) { if (!/* @__PURE__ */ isValidElement(child)) throw new Error("Pager children must be React Native views"); return /* @__PURE__ */ cloneElement(child, { collapsable: false, style: [child.props.style, { position: "absolute", width: "100%", height: "100%" }] }); }) }); }); export { Pager }; //# sourceMappingURL=Pager.native.js.map