aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/components/common/BadgeDetailView.tsx2
-rw-r--r--src/components/profile/Content.tsx8
-rw-r--r--src/components/profile/ProfileHeader.tsx9
-rw-r--r--src/routes/main/MainStackScreen.tsx47
-rw-r--r--src/screens/suggestedPeople/SuggestedPeopleScreen.tsx9
5 files changed, 37 insertions, 38 deletions
diff --git a/src/components/common/BadgeDetailView.tsx b/src/components/common/BadgeDetailView.tsx
index 32cc7aa4..437b1914 100644
--- a/src/components/common/BadgeDetailView.tsx
+++ b/src/components/common/BadgeDetailView.tsx
@@ -78,7 +78,7 @@ const BadgeDetailView: React.FC<BadgeDetailModalProps> = ({
setTimeout(() => {
setSelectedBadgesWithImage(badgesWithImage);
setIsLoading(false);
- }, 500);
+ }, 250);
}, [selectedBadges]);
const removeBadgeCell = async (badge: string) => {
diff --git a/src/components/profile/Content.tsx b/src/components/profile/Content.tsx
index c70d6df5..8298dc9a 100644
--- a/src/components/profile/Content.tsx
+++ b/src/components/profile/Content.tsx
@@ -145,7 +145,13 @@ const Content: React.FC<ContentProps> = ({userXId, screenType}) => {
<Cover {...{userXId, screenType}} />
<ProfileCutout />
<ProfileHeader
- {...{userXId, screenType, handleBlockUnblock, isBlocked}}
+ {...{
+ userXId,
+ screenType,
+ handleBlockUnblock,
+ isBlocked,
+ isPrivate: !canViewProfile(state, userXId, screenType),
+ }}
/>
<ProfileBody
{...{
diff --git a/src/components/profile/ProfileHeader.tsx b/src/components/profile/ProfileHeader.tsx
index 9dc58501..494b33bd 100644
--- a/src/components/profile/ProfileHeader.tsx
+++ b/src/components/profile/ProfileHeader.tsx
@@ -17,6 +17,7 @@ type ProfileHeaderProps = {
screenType: ScreenType;
isBlocked: boolean;
handleBlockUnblock: () => void;
+ isPrivate?: boolean;
};
const ProfileHeader: React.FC<ProfileHeaderProps> = ({
@@ -24,6 +25,7 @@ const ProfileHeader: React.FC<ProfileHeaderProps> = ({
screenType,
isBlocked,
handleBlockUnblock,
+ isPrivate,
}) => {
const {
profile: {name = '', university_class = 2021, university},
@@ -67,7 +69,12 @@ const ProfileHeader: React.FC<ProfileHeaderProps> = ({
)}
<View style={styles.friendsAndUniversity}>
<FriendsCount screenType={screenType} userXId={userXId} />
- <TouchableOpacity onPress={() => setBadgeViewVisible(true)}>
+ <TouchableOpacity
+ onPress={() => {
+ if (!isPrivate) {
+ setBadgeViewVisible(true);
+ }
+ }}>
<UniversityIcon
{...{university, university_class, needsShadow: true}}
/>
diff --git a/src/routes/main/MainStackScreen.tsx b/src/routes/main/MainStackScreen.tsx
index 37867151..f5100e58 100644
--- a/src/routes/main/MainStackScreen.tsx
+++ b/src/routes/main/MainStackScreen.tsx
@@ -1,7 +1,6 @@
-import AsyncStorage from '@react-native-community/async-storage';
import {RouteProp} from '@react-navigation/native';
import {StackNavigationOptions} from '@react-navigation/stack';
-import React, {useEffect, useState} from 'react';
+import React from 'react';
import {StyleSheet, Text} from 'react-native';
import {normalize} from 'react-native-elements';
import BackIcon from '../../assets/icons/back-arrow.svg';
@@ -56,28 +55,9 @@ interface MainStackProps {
const MainStackScreen: React.FC<MainStackProps> = ({route}) => {
const {screenType} = route.params;
- // const isProfileTab = screenType === ScreenType.Profile;
const isSearchTab = screenType === ScreenType.Search;
const isNotificationsTab = screenType === ScreenType.Notifications;
const isSuggestedPeopleTab = screenType === ScreenType.SuggestedPeople;
- const [respondedToAccessContacts, setRespondedToAccessContacts] = useState(
- 'true',
- );
-
- useEffect(() => {
- loadResponseToAccessContacts();
- }, []);
-
- const loadResponseToAccessContacts = () => {
- AsyncStorage.getItem('respondedToAccessContacts')
- .then((value) => {
- setRespondedToAccessContacts(value ? value : 'false');
- })
- .catch((error) => {
- console.log('Something went wrong', error);
- setRespondedToAccessContacts('true');
- });
- };
const initialRouteName = (() => {
switch (screenType) {
@@ -131,20 +111,13 @@ const MainStackScreen: React.FC<MainStackProps> = ({route}) => {
...headerBarOptions('white', ''),
}}
/>
- {isSuggestedPeopleTab &&
- (respondedToAccessContacts && respondedToAccessContacts === 'true' ? (
- <MainStack.Screen
- name="SuggestedPeople"
- component={SuggestedPeopleScreen}
- initialParams={{screenType}}
- />
- ) : (
- <MainStack.Screen
- name="SuggestedPeople"
- component={RequestContactsAccess}
- initialParams={{screenType}}
- />
- ))}
+ {isSuggestedPeopleTab && (
+ <MainStack.Screen
+ name="SuggestedPeople"
+ component={SuggestedPeopleScreen}
+ initialParams={{screenType}}
+ />
+ )}
{isNotificationsTab && (
<MainStack.Screen
name="Notifications"
@@ -271,6 +244,10 @@ const MainStackScreen: React.FC<MainStackProps> = ({route}) => {
name="RequestContactsAccess"
component={RequestContactsAccess}
initialParams={{screenType}}
+ options={{
+ ...modalStyle,
+ gestureEnabled: false,
+ }}
/>
<MainStack.Screen
name="EditProfile"
diff --git a/src/screens/suggestedPeople/SuggestedPeopleScreen.tsx b/src/screens/suggestedPeople/SuggestedPeopleScreen.tsx
index 388a1ba7..f1981111 100644
--- a/src/screens/suggestedPeople/SuggestedPeopleScreen.tsx
+++ b/src/screens/suggestedPeople/SuggestedPeopleScreen.tsx
@@ -1,3 +1,4 @@
+import AsyncStorage from '@react-native-community/async-storage';
import {useFocusEffect, useNavigation} from '@react-navigation/native';
import React, {useCallback, useEffect, useRef, useState} from 'react';
import {FlatList, RefreshControl, StatusBar, ViewToken} from 'react-native';
@@ -57,6 +58,14 @@ const SuggestedPeopleScreen: React.FC = () => {
const stausBarRef = useRef(hideStatusBar);
+ useEffect(() => {
+ AsyncStorage.getItem('respondedToAccessContacts').then((value) => {
+ if (value === null) {
+ navigation.navigate('RequestContactsAccess');
+ }
+ });
+ }, []);
+
// loads data and append it to users based on current page
useEffect(() => {
loadMore();