diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/screens/suggestedPeople/SuggestedPeopleScreen.tsx | 42 | ||||
-rw-r--r-- | src/services/MomentCategoryService.ts | 1 | ||||
-rw-r--r-- | src/services/UserProfileService.ts | 2 |
3 files changed, 23 insertions, 22 deletions
diff --git a/src/screens/suggestedPeople/SuggestedPeopleScreen.tsx b/src/screens/suggestedPeople/SuggestedPeopleScreen.tsx index 195604a3..0a0d352b 100644 --- a/src/screens/suggestedPeople/SuggestedPeopleScreen.tsx +++ b/src/screens/suggestedPeople/SuggestedPeopleScreen.tsx @@ -1,6 +1,6 @@ import AsyncStorage from '@react-native-community/async-storage'; import {useFocusEffect, useNavigation} from '@react-navigation/native'; -import React, {useCallback, useEffect, useState} from 'react'; +import React, {useCallback, useEffect, useRef, useState} from 'react'; import { FlatList, ListRenderItemInfo, @@ -29,6 +29,7 @@ import { import { fetchUserX, getUserAsProfilePreviewType, + handleOpenSocialUrlOnBrowser, normalize, SCREEN_HEIGHT, SCREEN_WIDTH, @@ -55,14 +56,24 @@ const SuggestedPeopleScreen: React.FC = () => { const [people, setPeople] = useState<SuggestedPeopleDataType[]>([]); const [page, setPage] = useState(0); const [refreshing, setRefreshing] = useState(false); + const [shouldResetData, setShouldResetData] = useState(false); const [hideStatusBar, setHideStatusBar] = useState(false); // loads data and append it to users based on current page useEffect(() => { - // console.log('current page', page); - loadMore(false); + loadMore(); }, [page]); + useEffect(() => { + if (shouldResetData) { + if (page !== 0) { + setPage(0); + } else { + loadMore(); + } + } + }, [shouldResetData]); + useFocusEffect(() => { const appendSelf = async () => { AsyncStorage.getItem('suggested_people_url').then((image) => { @@ -83,34 +94,30 @@ const SuggestedPeopleScreen: React.FC = () => { }; if (suggested_people_linked < 2) { if (people.length > 1 && people[0].user.id !== loggedInUserId) { + console.log('appending self'); appendSelf(); } } }); - const loadMore = async (resetData: boolean) => { + const loadMore = async () => { const loadNextPage = async () => await getSuggestedPeople( SP_PAGE_SIZE, - resetData ? 0 : page * SP_PAGE_SIZE, + shouldResetData ? 0 : page * SP_PAGE_SIZE, ); loadNextPage().then((newUsers) => { loadUserDataToStore(newUsers.map((ppl) => ppl.user)); - let newPeople = []; - if (resetData) { - newPeople = newUsers; - setPage(0); - } else { - newPeople = people.concat(newUsers); - } - setPeople(newPeople); + setPeople(shouldResetData ? newUsers : people.concat(newUsers)); + setShouldResetData(false); }); }; const loadUserDataToStore = async (users: ProfilePreviewType[]) => { const loadUserData = async (user: ProfilePreviewType) => { if (!userXInStore(state, screenType, user.id)) { + console.log(user.username, 'not in store, loading to store'); await fetchUserX( dispatch, {userId: user.id, username: user.username}, @@ -120,10 +127,11 @@ const SuggestedPeopleScreen: React.FC = () => { }; await Promise.all(users.map((user) => loadUserData(user))); }; - const resetPage = () => { + + const onRefresh = () => { const reset = async () => { await dispatch(resetScreenType(screenType)); - loadMore(true); + setShouldResetData(true); }; setRefreshing(true); reset().then(() => { @@ -131,10 +139,6 @@ const SuggestedPeopleScreen: React.FC = () => { }); }; - const onRefresh = useCallback(() => { - resetPage(); - }, []); - useFocusEffect( useCallback(() => { const navigateToAnimatedTutorial = () => { diff --git a/src/services/MomentCategoryService.ts b/src/services/MomentCategoryService.ts index bb2c5542..edd13ad0 100644 --- a/src/services/MomentCategoryService.ts +++ b/src/services/MomentCategoryService.ts @@ -19,7 +19,6 @@ export const loadMomentCategories: ( const data = await response.json(); categories = data.categories; } else { - console.log('Could not load categories!'); return []; } } catch (err) { diff --git a/src/services/UserProfileService.ts b/src/services/UserProfileService.ts index fff35370..bfc4933f 100644 --- a/src/services/UserProfileService.ts +++ b/src/services/UserProfileService.ts @@ -145,8 +145,6 @@ export const loadSocialPosts: ( accountData.handle = body.handle; accountData.posts = body.posts; accountData.profile_pic = body.profile_pic; - } else { - throw 'Unable to fetch posts data from ' + socialType; } } catch (error) { console.log(error); |