diff options
Diffstat (limited to 'src/screens')
| -rw-r--r-- | src/screens/badge/BadgeScreenHeader.tsx | 22 | ||||
| -rw-r--r-- | src/screens/badge/BadgeSelection.tsx | 23 | ||||
| -rw-r--r-- | src/screens/onboarding/Login.tsx | 31 | ||||
| -rw-r--r-- | src/screens/onboarding/OnboardingStepThree.tsx | 100 | ||||
| -rw-r--r-- | src/screens/profile/EditProfile.tsx | 38 | ||||
| -rw-r--r-- | src/screens/search/SearchScreen.tsx | 7 | ||||
| -rw-r--r-- | src/screens/search/mock.ts | 118 | ||||
| -rw-r--r-- | src/screens/suggestedPeople/SPBody.tsx | 7 | ||||
| -rw-r--r-- | src/screens/suggestedPeople/SuggestedPeopleScreen.tsx | 9 | ||||
| -rw-r--r-- | src/screens/suggestedPeopleOnboarding/SuggestedPeopleUploadPictureScreen.tsx | 10 |
10 files changed, 124 insertions, 241 deletions
diff --git a/src/screens/badge/BadgeScreenHeader.tsx b/src/screens/badge/BadgeScreenHeader.tsx index fd250585..46c0c1c8 100644 --- a/src/screens/badge/BadgeScreenHeader.tsx +++ b/src/screens/badge/BadgeScreenHeader.tsx @@ -1,13 +1,23 @@ import React from 'react'; import {Image, StyleSheet, Text, View} from 'react-native'; -import {normalize} from '../../utils'; +import {UniversityType} from 'src/types'; +import {getUniversityBadge, normalize} from '../../utils'; -const BadgeScreenHeader: React.FC = () => { +interface BadgeScreenHeaderProps { + university: UniversityType; +} + +const BadgeScreenHeader: React.FC<BadgeScreenHeaderProps> = ({university}) => { return ( <View style={styles.container}> - <Image source={require('../../assets/images/badges/brown_badge.png')} /> + <Image + source={getUniversityBadge(university, 'Crest')} + style={styles.icon} + /> <View style={styles.universityTextContainer}> - <Text style={styles.universityText}>Brown University Badges</Text> + <Text style={styles.universityText}> + {university} University Badges + </Text> </View> <View style={styles.searchTextContainer}> <Text style={styles.searchText}> @@ -37,6 +47,10 @@ const styles = StyleSheet.create({ lineHeight: normalize(17.9), color: 'white', }, + icon: { + aspectRatio: 675 / 750, + height: 40, + }, }); export default BadgeScreenHeader; diff --git a/src/screens/badge/BadgeSelection.tsx b/src/screens/badge/BadgeSelection.tsx index 335d4333..deaefb52 100644 --- a/src/screens/badge/BadgeSelection.tsx +++ b/src/screens/badge/BadgeSelection.tsx @@ -15,7 +15,7 @@ import {BACKGROUND_GRADIENT_MAP} from '../../constants'; import {BADGE_DATA} from '../../constants/badges'; import {ERROR_BADGES_EXCEED_LIMIT} from '../../constants/strings'; import {suggestedPeopleBadgesFinished} from '../../store/actions'; -import {BackgroundGradientType} from '../../types'; +import {BackgroundGradientType, UniversityType} from '../../types'; import {SCREEN_HEIGHT, StatusBarHeight} from '../../utils'; import BadgeList from './BadgeList'; import BadgeScreenHeader from './BadgeScreenHeader'; @@ -34,9 +34,10 @@ type BadgeSelectionProps = { const BadgeSelection: React.FC<BadgeSelectionProps> = ({route}) => { const {editing} = route.params; - const {userId: loggedInUserId} = useSelector( - (state: RootState) => state.user.user, - ); + const { + user: {userId: loggedInUserId}, + profile: {university}, + } = useSelector((state: RootState) => state.user); const [selectedBadges, setSelectedBadges] = useState<string[]>([]); const dispatch = useDispatch(); const navigation = useNavigation(); @@ -114,18 +115,20 @@ const BadgeSelection: React.FC<BadgeSelectionProps> = ({route}) => { <StatusBar barStyle={'light-content'} /> <SafeAreaView> <View style={styles.listContainer}> - <BadgeScreenHeader /> + <BadgeScreenHeader {...{university}} /> {/* filter not working, comment out for now */} {/* <SearchBar style={styles.searchBarStyle} onCancel={() => {}} top={Animated.useValue(0)} /> */} - <BadgeList - data={BADGE_DATA} - selectedBadges={selectedBadges} - selectKey={selectKey} - /> + {university && ( + <BadgeList + data={BADGE_DATA[university]} + selectedBadges={selectedBadges} + selectKey={selectKey} + /> + )} </View> </SafeAreaView> </LinearGradient> diff --git a/src/screens/onboarding/Login.tsx b/src/screens/onboarding/Login.tsx index 6d9d3a97..49ca5ff4 100644 --- a/src/screens/onboarding/Login.tsx +++ b/src/screens/onboarding/Login.tsx @@ -27,7 +27,7 @@ import { import {OnboardingStackParams} from '../../routes/onboarding'; import {fcmService} from '../../services'; import {RootState} from '../../store/rootReducer'; -import {BackgroundGradientType} from '../../types'; +import {BackgroundGradientType, UniversityType} from '../../types'; import {normalize, userLogin} from '../../utils'; import UpdateRequired from './UpdateRequired'; @@ -156,18 +156,39 @@ const Login: React.FC<LoginProps> = ({navigation}: LoginProps) => { let statusCode = response.status; let data = await response.json(); + if (statusCode === 200) { + await AsyncStorage.setItem('token', data.token); + await AsyncStorage.setItem('userId', data.UserID); + await AsyncStorage.setItem('username', username); + } + if (statusCode === 200 && data.isOnboarded) { //Stores token received in the response into client's AsynStorage try { - await AsyncStorage.setItem('token', data.token); - await AsyncStorage.setItem('userId', data.UserID); - await AsyncStorage.setItem('username', username); userLogin(dispatch, {userId: data.UserID, username}); fcmService.sendFcmTokenToServer(); } catch (err) { Alert.alert(ERROR_INVALID_LOGIN); } + } else if ( + statusCode === 200 && + data.university === UniversityType.Empty + ) { + /** + * A user account was created during onboarding step 2 but user didn't + * finish step 3, thus does not have a universtiy. + * Redirecting user back to onboarding to finish the process + */ + navigation.navigate('OnboardingStepThree', { + userId: data.UserID, + username: username, + }); } else if (statusCode === 200 && !data.isOnboarded) { + /** + * A user account was created and finished the onboarding process but + * did not have an invitation code at the time so the user's account + * is not activated (isOnboarded) yet. + */ navigation.navigate('InvitationCodeVerification', { userId: data.UserID, username: username, @@ -242,6 +263,7 @@ const Login: React.FC<LoginProps> = ({navigation}: LoginProps) => { valid={form.isValidUser} invalidWarning="Username must be at least 6 characters and can only contain letters, numbers, periods, and underscores." attemptedSubmit={form.attemptedSubmit} + autoCorrect={false} /> <TaggInput @@ -259,6 +281,7 @@ const Login: React.FC<LoginProps> = ({navigation}: LoginProps) => { invalidWarning="Password must be at least 8 characters long." attemptedSubmit={form.attemptedSubmit} ref={inputRef} + autoCorrect={false} /> <ForgotPassword /> <TaggSquareButton diff --git a/src/screens/onboarding/OnboardingStepThree.tsx b/src/screens/onboarding/OnboardingStepThree.tsx index f22d720f..29028421 100644 --- a/src/screens/onboarding/OnboardingStepThree.tsx +++ b/src/screens/onboarding/OnboardingStepThree.tsx @@ -1,4 +1,3 @@ -import AsyncStorage from '@react-native-community/async-storage'; import {RouteProp} from '@react-navigation/native'; import {StackNavigationProp} from '@react-navigation/stack'; import moment from 'moment'; @@ -20,24 +19,19 @@ import { RegistrationWizard, TaggDropDown, TaggInput, + UniversitySelection, } from '../../components'; +import {CLASS_YEAR_LIST, genderRegex, TAGG_PURPLE} from '../../constants'; import { - CLASS_YEAR_LIST, - EDIT_PROFILE_ENDPOINT, - genderRegex, - TAGG_PURPLE, -} from '../../constants'; -import { - ERROR_DOUBLE_CHECK_CONNECTION, - ERROR_PROFILE_CREATION_SHORT, ERROR_SELECT_BIRTHDAY, ERROR_SELECT_CLASS_YEAR, ERROR_SELECT_GENDER, - ERROR_SOMETHING_WENT_WRONG_REFRESH, + ERROR_SELECT_UNIVERSITY, ERROR_UPLOAD_SMALL_PROFILE_PIC, } from '../../constants/strings'; import {OnboardingStackParams} from '../../routes/onboarding'; -import {BackgroundGradientType} from '../../types'; +import {patchEditProfile} from '../../services'; +import {BackgroundGradientType, UniversityType} from '../../types'; import {normalize, SCREEN_HEIGHT, SCREEN_WIDTH} from '../../utils'; type OnboardingStepThreeRouteProp = RouteProp< @@ -53,15 +47,25 @@ interface OnboardingStepThreeProps { navigation: OnboardingStepThreeNavigationProp; } +type FormType = { + smallPic: string; + university: UniversityType; + birthdate: string | undefined; + gender: string; + isValidGender: boolean; + classYear: number; + attemptedSubmit: boolean; +}; + const OnboardingStepThree: React.FC<OnboardingStepThreeProps> = ({ route, navigation, }) => { const {userId, username} = route.params; - let emptyDate: string | undefined; - const [form, setForm] = React.useState({ + const [form, setForm] = React.useState<FormType>({ smallPic: '', - birthdate: emptyDate, + university: UniversityType.Empty, + birthdate: undefined, gender: '', isValidGender: true, classYear: -1, @@ -164,7 +168,11 @@ const OnboardingStepThree: React.FC<OnboardingStepThreeProps> = ({ Alert.alert(ERROR_SELECT_CLASS_YEAR); return; } - if (form.birthdate === emptyDate) { + if (form.university === UniversityType.Empty) { + Alert.alert(ERROR_SELECT_UNIVERSITY); + return; + } + if (!form.birthdate) { Alert.alert(ERROR_SELECT_BIRTHDAY); return; } @@ -178,7 +186,6 @@ const OnboardingStepThree: React.FC<OnboardingStepThreeProps> = ({ attemptedSubmit: true, }); } - let invalidFields: boolean = false; const request = new FormData(); if (form.smallPic) { request.append('smallProfilePicture', { @@ -188,16 +195,13 @@ const OnboardingStepThree: React.FC<OnboardingStepThreeProps> = ({ }); } - if (form.birthdate) { - request.append('birthday', form.birthdate); - } if (customGender) { if (form.isValidGender) { request.append('gender', form.gender); } else { setForm({...form, attemptedSubmit: false}); setTimeout(() => setForm({...form, attemptedSubmit: true})); - invalidFields = true; + return; } } else { if (form.isValidGender) { @@ -205,47 +209,20 @@ const OnboardingStepThree: React.FC<OnboardingStepThreeProps> = ({ } } - if (form.classYear !== -1) { - request.append('university_class', form.classYear); - } - - if (invalidFields) { - return; - } + request.append('birthday', form.birthdate); + request.append('university_class', form.classYear); + request.append('university', form.university); - const endpoint = EDIT_PROFILE_ENDPOINT + `${userId}/`; - try { - const token = await AsyncStorage.getItem('token'); - let response = await fetch(endpoint, { - method: 'PATCH', - headers: { - 'Content-Type': 'multipart/form-data', - Authorization: 'Token ' + token, - }, - body: request, - }); - let statusCode = response.status; - let data = await response.json(); - if (statusCode === 200) { + patchEditProfile(request, userId) + .then((_) => navigation.navigate('InvitationCodeVerification', { userId: route.params.userId, username: username, - }); - } else if (statusCode === 400) { - Alert.alert( - 'Profile update failed. 😔', - data.error || 'Something went wrong! ðŸ˜', - ); - } else { - Alert.alert(ERROR_SOMETHING_WENT_WRONG_REFRESH); - } - } catch (error) { - Alert.alert(ERROR_PROFILE_CREATION_SHORT, ERROR_DOUBLE_CHECK_CONNECTION); - return { - name: 'Profile creation error', - description: error, - }; - } + }), + ) + .catch((error) => { + Alert.alert(error); + }); }; return ( @@ -264,6 +241,15 @@ const OnboardingStepThree: React.FC<OnboardingStepThreeProps> = ({ /> </View> <View style={styles.contentContainer}> + <UniversitySelection + selected={form.university} + setSelected={(selected) => { + setForm({ + ...form, + university: selected, + }); + }} + /> <TaggDropDown onValueChange={(value: string) => handleClassYearUpdate(value)} items={classYearList} diff --git a/src/screens/profile/EditProfile.tsx b/src/screens/profile/EditProfile.tsx index 56bed11f..8afaeb6d 100644 --- a/src/screens/profile/EditProfile.tsx +++ b/src/screens/profile/EditProfile.tsx @@ -46,6 +46,7 @@ import { ERROR_UPLOAD_SMALL_PROFILE_PIC, } from '../../constants/strings'; import TaggLoadingIndicator from '../../components/common/TaggLoadingIndicator'; +import {patchEditProfile} from '../../services'; type EditProfileNavigationProp = StackNavigationProp< MainStackParams, @@ -364,38 +365,15 @@ const EditProfile: React.FC<EditProfileProps> = ({route, navigation}) => { return; } - const endpoint = EDIT_PROFILE_ENDPOINT + `${userId}/`; - try { - const token = await AsyncStorage.getItem('token'); - let response = await fetch(endpoint, { - method: 'PATCH', - headers: { - 'Content-Type': 'multipart/form-data', - Authorization: 'Token ' + token, - }, - body: request, - }); - let statusCode = response.status; - let data = await response.json(); - if (statusCode === 200) { + patchEditProfile(request, userId) + .then((_) => { setNeedsUpdate(true); navigation.pop(); - } else if (statusCode === 400) { - Alert.alert( - 'Profile update failed. 😔', - data.error || 'Something went wrong! ðŸ˜', - ); - } else { - Alert.alert(ERROR_SOMETHING_WENT_WRONG_REFRESH); - } - } catch (error) { - Alert.alert(ERROR_DOUBLE_CHECK_CONNECTION); - return { - name: 'Profile creation error', - description: error, - }; - } - }, [isCustomGender, form, navigation, userId]); + }) + .catch((error) => { + Alert.alert(error); + }); + }, [form, isCustomGender, university_class, userId, navigation]); React.useLayoutEffect(() => { navigation.setOptions({ diff --git a/src/screens/search/SearchScreen.tsx b/src/screens/search/SearchScreen.tsx index 65ec3934..4f0cabb4 100644 --- a/src/screens/search/SearchScreen.tsx +++ b/src/screens/search/SearchScreen.tsx @@ -38,6 +38,9 @@ import { const SearchScreen: React.FC = () => { const {recentSearches} = useSelector((state: RootState) => state.taggUsers); + const { + profile: {university = ''}, + } = useSelector((state: RootState) => state.user); const [query, setQuery] = useState<string>(''); const [results, setResults] = useState<Array<any> | undefined>(undefined); const [recents, setRecents] = useState<Array<ProfilePreviewType>>( @@ -50,8 +53,8 @@ const SearchScreen: React.FC = () => { const top = Animated.useValue(-SCREEN_HEIGHT); const defaultButtons: SearchCategoryType[] = [21, 22, 23, 24].map((year) => ({ id: -1, - name: `Brown '${year}`, - category: 'Brown', + name: `${university.split(' ')[0]} '${year}`, + category: university, })); const [keyboardVisible, setKeyboardVisible] = React.useState( 'keyboardVisible', diff --git a/src/screens/search/mock.ts b/src/screens/search/mock.ts deleted file mode 100644 index d9909b22..00000000 --- a/src/screens/search/mock.ts +++ /dev/null @@ -1,118 +0,0 @@ -const MockResults = () => { - return { - categories: [ - { - id: 11, - name: "Brown '21", - category: 'Brown', - }, - { - id: 12, - name: "Brown '22", - category: 'Brown', - }, - { - id: 13, - name: "Brown '23", - category: null, - }, - { - id: 14, - name: "Brown '24", - category: null, - }, - ], - users: [ - { - id: 'd5295557-59ce-49fc-aa8a-442874dbffc3', - username: 'foobar', - first_name: 'Foo', - last_name: 'Bar', - thumbnail_url: - 'https://tagg-dev.s3.us-east-2.amazonaws.com/thumbnails/smallProfilePicture/spp-d5295557-59ce-49fc-aa8a-442874dbffc3-thumbnail.jpg', - }, - { - id: '31e93eb5-ccc9-4743-b053-eff368e23fa8', - username: 'foobar2', - first_name: 'Foo', - last_name: 'Bar', - thumbnail_url: - 'https://tagg-dev.s3.us-east-2.amazonaws.com/thumbnails/smallProfilePicture/spp-31e93eb5-ccc9-4743-b053-eff368e23fa8-thumbnail.jpg', - }, - { - id: 'b1b68df9-97ac-48de-b00d-eab10a6a644a', - username: 'foobar3', - first_name: 'Foo', - last_name: 'Bar', - thumbnail_url: - 'https://tagg-dev.s3.us-east-2.amazonaws.com/thumbnails/smallProfilePicture/spp-b1b68df9-97ac-48de-b00d-eab10a6a644a-thumbnail.jpg', - }, - { - id: 'b89c88b3-6b2f-4b6c-85d9-a03ff5396113', - username: 'foobar4', - first_name: 'Foo', - last_name: 'Bar', - thumbnail_url: - 'https://tagg-dev.s3.us-east-2.amazonaws.com/thumbnails/smallProfilePicture/spp-b89c88b3-6b2f-4b6c-85d9-a03ff5396113-thumbnail.jpg', - }, - { - id: '73b4496a-0aa8-4115-98da-2070bf326134', - username: 'foobar5', - first_name: 'Foo', - last_name: 'Bar', - thumbnail_url: - 'https://tagg-dev.s3.us-east-2.amazonaws.com/thumbnails/smallProfilePicture/spp-73b4496a-0aa8-4115-98da-2070bf326134-thumbnail.jpg', - }, - { - id: '329763b8-931e-4d4d-8a07-003374d38497', - username: 'foobar6', - first_name: 'Foo', - last_name: 'Bar', - thumbnail_url: - 'https://tagg-dev.s3.us-east-2.amazonaws.com/thumbnails/smallProfilePicture/spp-329763b8-931e-4d4d-8a07-003374d38497-thumbnail.jpg', - }, - { - id: '9e82fea2-cddc-41e1-be05-6873f58138ca', - username: 'foobar7', - first_name: 'Foo', - last_name: 'Bar', - thumbnail_url: - 'https://tagg-dev.s3.us-east-2.amazonaws.com/thumbnails/smallProfilePicture/spp-9e82fea2-cddc-41e1-be05-6873f58138ca-thumbnail.jpg', - }, - { - id: '6e5b8892-4384-45a1-bc0a-8f2c9d614fbc', - username: 'foobar8', - first_name: 'Foo', - last_name: 'Bar', - thumbnail_url: - 'https://tagg-dev.s3.us-east-2.amazonaws.com/thumbnails/smallProfilePicture/spp-6e5b8892-4384-45a1-bc0a-8f2c9d614fbc-thumbnail.jpg', - }, - { - id: 'c49b01c6-9151-4654-8fae-834adfa15727', - username: 'foobar9', - first_name: 'Foo', - last_name: 'Bar', - thumbnail_url: - 'https://tagg-dev.s3.us-east-2.amazonaws.com/thumbnails/smallProfilePicture/spp-c49b01c6-9151-4654-8fae-834adfa15727-thumbnail.jpg', - }, - { - id: '5b394d5b-62e3-405e-8ecd-7433517ef688', - username: 'foobar10', - first_name: 'Foo', - last_name: 'Bar', - thumbnail_url: - 'https://tagg-dev.s3.us-east-2.amazonaws.com/thumbnails/smallProfilePicture/spp-5b394d5b-62e3-405e-8ecd-7433517ef688-thumbnail.jpg', - }, - { - id: '698e38f0-24ed-404c-9f0c-6a24e43af576', - username: 'fooo', - first_name: 'wefwef', - last_name: 'wefwef', - thumbnail_url: - 'https://tagg-dev.s3.us-east-2.amazonaws.com/thumbnails/smallProfilePicture/spp-698e38f0-24ed-404c-9f0c-6a24e43af576-thumbnail.jpg', - }, - ], - }; -}; - -export default MockResults; diff --git a/src/screens/suggestedPeople/SPBody.tsx b/src/screens/suggestedPeople/SPBody.tsx index 7bedb137..f38945f7 100644 --- a/src/screens/suggestedPeople/SPBody.tsx +++ b/src/screens/suggestedPeople/SPBody.tsx @@ -33,6 +33,7 @@ interface SPBodyProps { const SPBody: React.FC<SPBodyProps> = ({ item: { user, + university, mutual_friends, social_links, suggested_people_url, @@ -57,7 +58,7 @@ const SPBody: React.FC<SPBodyProps> = ({ useEffect(() => { const newBadges: {badge: UniversityBadge; img: any}[] = []; const findBadgeIcons = (badge: UniversityBadge) => { - BADGE_DATA?.forEach((item) => { + BADGE_DATA[university]?.forEach((item) => { if (item.title === badge.category) { item.data.forEach((object) => { if (object.badgeName === badge.name) { @@ -127,7 +128,7 @@ const SPBody: React.FC<SPBodyProps> = ({ return ( <TouchableOpacity onPress={() => { - navigation.push('Profile', { + navigation.navigate('Profile', { userXId: loggedInUserId === user.id ? undefined : user.id, screenType, }); @@ -146,7 +147,7 @@ const SPBody: React.FC<SPBodyProps> = ({ <View style={styles.topContainer}> <Text style={styles.title}>{firstItem && 'Suggested People'}</Text> {localBadges && ( - <BadgesDropdown localBadges={localBadges} badges={badges} /> + <BadgesDropdown {...{university, localBadges, badges}} /> )} </View> <View style={styles.body}> diff --git a/src/screens/suggestedPeople/SuggestedPeopleScreen.tsx b/src/screens/suggestedPeople/SuggestedPeopleScreen.tsx index 76889657..336e8b35 100644 --- a/src/screens/suggestedPeople/SuggestedPeopleScreen.tsx +++ b/src/screens/suggestedPeople/SuggestedPeopleScreen.tsx @@ -4,9 +4,6 @@ import {FlatList, RefreshControl, StatusBar, ViewToken} from 'react-native'; import {useDispatch, useSelector, useStore} from 'react-redux'; import {Background, TabsGradient, TaggLoadingIndicator} from '../../components'; import {SP_PAGE_SIZE} from '../../constants'; -import {MainStack} from '../../routes'; -import MainStackScreen from '../../routes/main/MainStackScreen'; -import SuggestedPeopleOnboardingStackScreen from '../../routes/suggestedPeopleOnboarding/SuggestedPeopleOnboardingStackScreen'; import {getSuggestedPeople} from '../../services/SuggestedPeopleService'; import {cancelFriendRequest, resetScreenType} from '../../store/actions'; import {RootState} from '../../store/rootReducer'; @@ -22,15 +19,9 @@ import { getUserAsProfilePreviewType, handleAddFriend, } from '../../utils'; -import {SuggestedPeopleWelcomeScreen} from '../suggestedPeopleOnboarding'; import {userXInStore} from './../../utils/'; import SPBody from './SPBody'; -/** - * Bare bones for suggested people consisting of: - * * Image, title, name, username, add friend button [w/o functionality] - */ - const SuggestedPeopleScreen: React.FC = () => { const navigation = useNavigation(); const state: RootState = useStore().getState(); diff --git a/src/screens/suggestedPeopleOnboarding/SuggestedPeopleUploadPictureScreen.tsx b/src/screens/suggestedPeopleOnboarding/SuggestedPeopleUploadPictureScreen.tsx index 0a4e5718..e1bcb477 100644 --- a/src/screens/suggestedPeopleOnboarding/SuggestedPeopleUploadPictureScreen.tsx +++ b/src/screens/suggestedPeopleOnboarding/SuggestedPeopleUploadPictureScreen.tsx @@ -14,6 +14,7 @@ import ImagePicker from 'react-native-image-crop-picker'; import {SafeAreaView} from 'react-native-safe-area-context'; import {useDispatch, useSelector} from 'react-redux'; import {MainStackParams} from 'src/routes'; +import {UniversityType} from '../../types'; import FrontArrow from '../../assets/icons/front-arrow.svg'; import {TaggSquareButton, UniversityIcon} from '../../components'; import TaggLoadingIndicator from '../../components/common/TaggLoadingIndicator'; @@ -49,9 +50,10 @@ const SuggestedPeopleUploadPictureScreen: React.FC<SuggestedPeopleUploadPictureS const [loading, setLoading] = useState(false); const dispatch = useDispatch(); const navigation = useNavigation(); - const {userId: loggedInUserId} = useSelector( - (state: RootState) => state.user.user, - ); + const { + user: {userId: loggedInUserId}, + profile: {university = UniversityType.brown}, + } = useSelector((state: RootState) => state.user); useEffect(() => { const loadData = async () => { @@ -166,7 +168,7 @@ const SuggestedPeopleUploadPictureScreen: React.FC<SuggestedPeopleUploadPictureS <View style={styles.editBadgesMainContainer}> <View style={styles.editBadgesSubContainer}> <UniversityIcon - university="brown" + university={university} imageStyle={{width: normalize(16), height: normalize(20)}} /> <Text style={styles.editBadgesText}>Edit Badges</Text> |
