diff --git a/App.js b/App.js
index abfa63e..46707a3 100644
--- a/App.js
+++ b/App.js
@@ -84,6 +84,7 @@ export default function App() {
}}
/>
+
diff --git a/Views/Feed.js b/Views/Feed.js
index 360c912..6b8a888 100644
--- a/Views/Feed.js
+++ b/Views/Feed.js
@@ -5,12 +5,35 @@ 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) {
@@ -18,9 +41,8 @@ let Feed = ({ navigation, route }) => {
} else {
let posts = await API.getPosts();
setPosts(posts);
- navigation.setOptions({ title: "Feed" });
+ storeFeed(posts);
}
- //console.log(posts)
}, [route.params]);
const renderPost = (({ item }) => {
if (item.nonOrganicType === 'PopularUsers' || item.nonOrganicType === 'PopularGroups')
diff --git a/Views/Login.js b/Views/Login.js
index 7bd5629..4b35e4a 100644
--- a/Views/Login.js
+++ b/Views/Login.js
@@ -3,35 +3,26 @@ import React, { useEffect, useState } from 'react';
import { StyleSheet, Text, View, TextInput, SafeAreaView } from 'react-native';
import API from './../API.js';
import LoginForm from './../components/Login.js';
-import { Provider as PaperProvider } from 'react-native-paper';
-import AwesomeIcon from 'react-native-vector-icons/FontAwesome';
export default function App({navigation, route}) {
useEffect(async () => {
let r = await API.isLoggedIn();
- if(r) navigation.navigate('Feed')
+ if(r){
+ await API.logout();
+ navigation.navigate('Login')
+ }
}, []);
return (
- ,
- }}>
- EMI Social LOGO
-
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
- alignItems: 'center',
- justifyContent: 'center',
- marginTop: 25,
- paddingTop: 10,
- backgroundColor: "#edf2f7"
},
});
diff --git a/Views/Profile.js b/Views/Profile.js
index c48b69f..cf4305f 100644
--- a/Views/Profile.js
+++ b/Views/Profile.js
@@ -58,7 +58,6 @@ export default Profile;
const styles = StyleSheet.create({
container: {
flex: 1,
- alignItems: 'center',
backgroundColor: "#edf2f7",
},
});
diff --git a/components/Login.js b/components/Login.js
index 17bf6b7..625aeee 100644
--- a/components/Login.js
+++ b/components/Login.js
@@ -2,11 +2,13 @@ import { StatusBar } from 'expo-status-bar';
import React, { useState } from 'react';
import { Text, View, TextInput, Button, StyleSheet } from 'react-native';
import API from './../API.js';
+import { useNavigation } from '@react-navigation/native';
let LoginForm = ()=>{
let [email, setEmail] = useState('');
let [password, setPassword] = useState('');
+ const navigation = useNavigation();
return (
@@ -34,7 +36,7 @@ let LoginForm = ()=>{