aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLeon Jiang <35908040+leonyjiang@users.noreply.github.com>2021-02-26 17:58:08 -0500
committerLeon Jiang <35908040+leonyjiang@users.noreply.github.com>2021-02-26 17:58:08 -0500
commit6083aa78b0b2b7c8b5a9a79381f68297bdb2e189 (patch)
tree7a731f24ca1900b5f06e521fd1955c8314222839 /src
parentd33382603f4122147f6d1c715056446936a39c1b (diff)
Add loading indicator for when SP are loading
Diffstat (limited to 'src')
-rw-r--r--src/screens/suggestedPeople/SuggestedPeopleScreen.tsx20
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