import React, { useEffect } from "react"; import { PreloaderWrapper } from "../PreloaderWrapper"; import { useScreenContextV2 } from "@applicaster/zapp-react-native-utils/reactHooks/screen/useScreenContext"; import { useFeedLoader } from "@applicaster/zapp-react-native-utils/reactHooks"; import { componentsLogger } from "../../Helpers/logger"; const logger = componentsLogger.addSubsystem("ScreenFeedLoader"); /** Loads and provides `feedData` and store to */ export const ScreenFeedLoader: React.FC< React.PropsWithChildren<{ id: string; feedData: any }> > = ({ id, feedData, children }) => { const { source: feedUrl, mapping } = feedData; const { data, loading, error } = useFeedLoader({ feedUrl, mapping, pipesOptions: {}, }); const feedStore = useScreenContextV2()._feedStore; useEffect(() => { if (data && !loading) { feedStore.setState({ screenFeed: data, screenFeedError: null }); logger.log("screenFeed set for active screen", { data, screenId: id }); } if (error && !loading) { feedStore.setState({ screenFeed: data, screenFeedError: error }); logger.warning("Feed data error:", { data, loading, error, screenId: id, }); } }, [data, loading, error, feedStore, id]); return ( {children} ); };