diff options
author | Leon Jiang <35908040+leonyjiang@users.noreply.github.com> | 2021-02-26 17:58:08 -0500 |
---|---|---|
committer | Leon Jiang <35908040+leonyjiang@users.noreply.github.com> | 2021-02-26 17:58:08 -0500 |
commit | 6083aa78b0b2b7c8b5a9a79381f68297bdb2e189 (patch) | |
tree | 7a731f24ca1900b5f06e521fd1955c8314222839 | |
parent | d33382603f4122147f6d1c715056446936a39c1b (diff) |
Add loading indicator for when SP are loading
-rw-r--r-- | src/screens/suggestedPeople/SuggestedPeopleScreen.tsx | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/screens/suggestedPeople/SuggestedPeopleScreen.tsx b/src/screens/suggestedPeople/SuggestedPeopleScreen.tsx index c2aab1b5..1844f6ee 100644 --- a/src/screens/suggestedPeople/SuggestedPeopleScreen.tsx +++ b/src/screens/suggestedPeople/SuggestedPeopleScreen.tsx @@ -21,7 +21,12 @@ import {Image} from 'react-native-animatable'; import {TouchableOpacity} from 'react-native-gesture-handler'; import Animated from 'react-native-reanimated'; import {useDispatch, useSelector, useStore} from 'react-redux'; -import {TabsGradient, TaggsBar} from '../../components'; +import { + TabsGradient, + TaggsBar, + TaggLoadingIndicator, + Background, +} from '../../components'; import {MutualFriends} from '../../components/suggestedPeople'; import {SP_PAGE_SIZE} from '../../constants'; import SuggestedPeopleOnboardingStackScreen from '../../routes/suggestedPeopleOnboarding/SuggestedPeopleOnboardingStackScreen'; @@ -35,6 +40,7 @@ import { ProfilePreviewType, ScreenType, SuggestedPeopleDataType, + BackgroundGradientType, } from '../../types'; import { fetchUserX, @@ -70,6 +76,13 @@ const SuggestedPeopleScreen: React.FC = () => { const [refreshing, setRefreshing] = useState(false); const [shouldResetData, setShouldResetData] = useState(false); const [hideStatusBar, setHideStatusBar] = useState(false); + // boolean for showing/hiding loading indicator + const [loading, setLoading] = useState(true); + + // set loading to false once there are people to display + useEffect(() => { + people.length ? setLoading(false) : setLoading(true); + }, [people]); // loads data and append it to users based on current page useEffect(() => { @@ -291,6 +304,11 @@ const SuggestedPeopleScreen: React.FC = () => { return suggested_people_linked === 0 ? ( <SuggestedPeopleOnboardingStackScreen /> + ) : loading ? ( + <> + <TaggLoadingIndicator fullscreen /> + <Background gradientType={BackgroundGradientType.Dark} /> + </> ) : ( <> <FlatList |