import { StatusBar } from 'expo-status-bar'; import React, { useState, useEffect } from 'react'; import { View, ActivityIndicator, StyleSheet, SafeAreaView, FlatList } from 'react-native'; import API from './../API.js'; import Post from './../components/Post.js'; import NewPost from "./../components/NewPost.js"; import AsyncStorage from '@react-native-async-storage/async-storage'; const storeFeed = async (value) => { try { const jsonValue = JSON.stringify(value) await AsyncStorage.setItem('feed', jsonValue) } catch (e) { } } const getFeed = async () => { try { const value = await AsyncStorage.getItem('feed') if (value !== null) { return JSON.parse(value); } } catch (e) { return [] } } let Feed = ({ navigation, route }) => { let [Me, setMeProfile] = useState({}); let [Posts, setPosts] = useState([]); useEffect(async () => { let loggedIn = await API.isLoggedIn(); if(!loggedIn) return navigation.navigate('Login'); let cacheFeed = await getFeed() || []; setPosts(cacheFeed); let r = await API.getMe(); setMeProfile(r); if (route.params && route.params.profileid) { navigation.navigate('Profile', { profileid: route.params.profileid }) } else { let posts = await API.getPosts(); setPosts(posts); storeFeed(posts); } }, [route.params]); const renderPost = (({ item }) => { if (item.nonOrganicType === 'PopularUsers' || item.nonOrganicType === 'PopularGroups') return (<>); return (); }); return ( item._id || item.createdAt} ListHeaderComponent={ setPosts([newPost, ...Posts])} />} refreshing={Posts.length === 0} onRefresh={() => { API.getPosts().then(setPosts); }} /> ); } export default Feed; const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: "#edf2f7", }, });