aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIvan Chen <ivan@thetaggid.com>2021-02-26 22:27:49 -0500
committerGitHub <noreply@github.com>2021-02-26 22:27:49 -0500
commitda1daa32139b5cf060aee7c5aabeb255d7085bc1 (patch)
tree563d9639e4b58d59b0281de6221507f41661a3bf /src
parenta7b4f16c71ce65f9be9ec1399eceacbe6f5329b8 (diff)
parent463661dd53a842485b9dff4df7ac54344615a000 (diff)
Merge pull request #268 from leonyjiang/tma664-sp-white-screen-fix
[TMA-664] Add Loading Indicator to Suggested People Screen
Diffstat (limited to 'src')
-rw-r--r--src/components/common/index.ts2
-rw-r--r--src/screens/suggestedPeople/SuggestedPeopleScreen.tsx22
2 files changed, 22 insertions, 2 deletions
diff --git a/src/components/common/index.ts b/src/components/common/index.ts
index 95854ba8..e1543cd8 100644
--- a/src/components/common/index.ts
+++ b/src/components/common/index.ts
@@ -15,7 +15,7 @@ export {default as ComingSoon} from './ComingSoon';
export {default as PostCarousel} from './PostCarousel';
export {default as TaggDatePicker} from './TaggDatePicker';
export {default as BottomDrawer} from './BottomDrawer';
-export {default as TaggLoadingTndicator} from './TaggLoadingIndicator';
+export {default as TaggLoadingIndicator} from './TaggLoadingIndicator';
export {default as GenericMoreInfoDrawer} from './GenericMoreInfoDrawer';
export {default as TaggPopUp} from './TaggPopup';
export {default as TaggPrompt} from './TaggPrompt';
diff --git a/src/screens/suggestedPeople/SuggestedPeopleScreen.tsx b/src/screens/suggestedPeople/SuggestedPeopleScreen.tsx
index ec9d2f01..92f9a433 100644
--- a/src/screens/suggestedPeople/SuggestedPeopleScreen.tsx
+++ b/src/screens/suggestedPeople/SuggestedPeopleScreen.tsx
@@ -22,7 +22,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';
@@ -36,6 +41,7 @@ import {
ProfilePreviewType,
ScreenType,
SuggestedPeopleDataType,
+ BackgroundGradientType,
} from '../../types';
import {
fetchUserX,
@@ -71,7 +77,16 @@ 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]);
+
const stausBarRef = useRef(hideStatusBar);
+
// loads data and append it to users based on current page
useEffect(() => {
loadMore();
@@ -205,6 +220,11 @@ const SuggestedPeopleScreen: React.FC = () => {
return suggested_people_linked === 0 ? (
<SuggestedPeopleOnboardingStackScreen />
+ ) : loading ? (
+ <>
+ <TaggLoadingIndicator fullscreen />
+ <Background gradientType={BackgroundGradientType.Dark} />
+ </>
) : (
<>
<FlatList