diff --git a/lib/components/farcaster-data-handler.react.js b/lib/components/farcaster-data-handler.react.js new file mode 100644 --- /dev/null +++ b/lib/components/farcaster-data-handler.react.js @@ -0,0 +1,26 @@ +// @flow + +import * as React from 'react'; + +import { useSelector } from '../utils/redux-utils.js'; + +function FarcasterDataHandler(): React.Node { + const isActive = useSelector(state => state.lifecycleState !== 'background'); + + const prevIsActiveRef = React.useRef(); + React.useEffect(() => { + if (isActive === prevIsActiveRef.current) { + return; + } + prevIsActiveRef.current = isActive; + if (!isActive) { + return; + } + // app either just started, or just became active + // we will fetch Farcaster data here + }, [isActive]); + + return null; +} + +export { FarcasterDataHandler }; diff --git a/native/root.react.js b/native/root.react.js --- a/native/root.react.js +++ b/native/root.react.js @@ -26,6 +26,7 @@ import { ChatMentionContextProvider } from 'lib/components/chat-mention-provider.react.js'; import { EditUserAvatarProvider } from 'lib/components/edit-user-avatar-provider.react.js'; import { ENSCacheProvider } from 'lib/components/ens-cache-provider.react.js'; +import { FarcasterDataHandler } from 'lib/components/farcaster-data-handler.react.js'; import IntegrityHandler from 'lib/components/integrity-handler.react.js'; import KeyserverConnectionsHandler from 'lib/components/keyserver-connections-handler.js'; import { MediaCacheProvider } from 'lib/components/media-cache-provider.react.js'; @@ -343,6 +344,7 @@ + {navigation}