import React, { useEffect, useMemo, useState } from "react"; import { View } from "react-native"; import { PagerViewProps } from "./pager-view"; const PagerView = ({ EmptyComponent, children, page, initialPage, }: PagerViewProps) => { const [curPage, setPage] = useState(page || initialPage || 0); useEffect(() => { if (page != null) { setPage(page); } }, [page]); const content = useMemo(() => { if (!Array.isArray(children)) { return null; } return children.map((element, index) => { return ( {element} ); }); }, [curPage, children]); const pageElement = useMemo(() => { return Array.isArray(children) ? children[curPage] : null; }, [curPage, children]); return ( <> {!pageElement && EmptyComponent ? : null} {content} ); }; export default PagerView;