diff options
Diffstat (limited to 'src/screens')
-rw-r--r-- | src/screens/profile/FollowersListScreen.tsx | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/src/screens/profile/FollowersListScreen.tsx b/src/screens/profile/FollowersListScreen.tsx index 5150c77d..21778929 100644 --- a/src/screens/profile/FollowersListScreen.tsx +++ b/src/screens/profile/FollowersListScreen.tsx @@ -3,13 +3,14 @@ import {RouteProp} from '@react-navigation/native'; import {TabsGradient, Followers, CenteredView} from '../../components'; import Animated from 'react-native-reanimated'; import {AuthContext, ProfileContext} from '../../routes/'; -import {FOLLOWERS_ENDPOINT} from '../../constants'; +import {FOLLOWERS_ENDPOINT, FOLLOWING_ENDPOINT} from '../../constants'; import AsyncStorage from '@react-native-community/async-storage'; import {ProfilePreviewType} from '../../types'; import {ScrollView} from 'react-native-gesture-handler'; import {StatusBarHeight, SCREEN_HEIGHT} from '../../utils'; import {StyleSheet, View} from 'react-native'; import {ProfileStackParams} from '../../routes'; +import { loadFollowers, loadFollowing } from '../../services/UserFollowServices'; type FollowersListScreenRouteProp = RouteProp< ProfileStackParams, @@ -20,37 +21,39 @@ interface FollowersListScreenProps { } const FollowersListScreen: React.FC<FollowersListScreenProps> = ({route}) => { - const {isProfileView} = route.params; + const {isProfileView, isFollowers} = route.params; const {user} = isProfileView ? React.useContext(ProfileContext) : React.useContext(AuthContext); const y = Animated.useValue(0); - const [followers, setFollowers] = useState<Array<ProfilePreviewType>>([]); + const [result, setResult] = useState<Array<ProfilePreviewType>>([]); const top = Animated.useValue(-SCREEN_HEIGHT); useEffect(() => { const loadResults = async (q: string) => { try { const token = await AsyncStorage.getItem('token'); - const response = await fetch(`${FOLLOWERS_ENDPOINT}?user_id=${q}`, { - method: 'GET', - headers: { - Authorization: 'Token ' + token, - }, - }); - const status = response.status; - if (status === 200) { - let followersResults = await response.json(); - setFollowers(followersResults); + + if (!token) { return; } - setFollowers([]); + + const result: ProfilePreviewType[] = isFollowers ? await loadFollowers( + user.userId, + token, + ) : await loadFollowing( + user.userId, + token, + ); + setResult(result); + } catch (error) { console.log(error); - setFollowers([]); + setResult([]); } }; loadResults(user.userId); + }, []); return ( @@ -61,7 +64,7 @@ const FollowersListScreen: React.FC<FollowersListScreenProps> = ({route}) => { stickyHeaderIndices={[4]} contentContainerStyle={styles.contentContainer} showsVerticalScrollIndicator={false}> - <Followers {...{followers}} sectionTitle="Followers" /> + <Followers {...{result}} sectionTitle={isFollowers ? "Followers" : "Following"} /> </ScrollView> <TabsGradient /> </View> |