aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIvan Chen <ivan@tagg.id>2021-03-26 22:40:00 -0400
committerIvan Chen <ivan@tagg.id>2021-03-26 22:40:00 -0400
commit64785e6527e521ce14e32edcc80adc6253b48657 (patch)
treedf42bdbe6810b589ec52c98fcd622cc7e2864879 /src
parented26661062a2e47df2662254eaddfcfa1de62d04 (diff)
renamed to UniversityType, applied to all
Diffstat (limited to 'src')
-rw-r--r--src/components/profile/ProfileHeader.tsx16
-rw-r--r--src/components/profile/UniversityIcon.tsx25
-rw-r--r--src/components/search/SearchBar.tsx21
-rw-r--r--src/components/search/SearchResultCell.tsx8
-rw-r--r--src/components/suggestedPeople/BadgesDropdown.tsx4
-rw-r--r--src/components/suggestedPeople/UniversityIconClicked.tsx8
-rw-r--r--src/constants/badges.ts5
-rw-r--r--src/screens/badge/BadgeScreenHeader.tsx13
-rw-r--r--src/screens/badge/BadgeSelection.tsx4
-rw-r--r--src/screens/search/SearchScreen.tsx9
-rw-r--r--src/screens/suggestedPeople/SuggestedPeopleScreen.tsx9
-rw-r--r--src/screens/suggestedPeopleOnboarding/SuggestedPeopleUploadPictureScreen.tsx4
-rw-r--r--src/types/types.ts2
-rw-r--r--src/utils/common.ts16
-rw-r--r--src/utils/search.ts16
15 files changed, 75 insertions, 85 deletions
diff --git a/src/components/profile/ProfileHeader.tsx b/src/components/profile/ProfileHeader.tsx
index 0b93de98..2c623c2b 100644
--- a/src/components/profile/ProfileHeader.tsx
+++ b/src/components/profile/ProfileHeader.tsx
@@ -1,14 +1,14 @@
import React, {useState} from 'react';
import {StyleSheet, Text, View} from 'react-native';
import {useSelector} from 'react-redux';
-import UniversityIcon from './UniversityIcon';
import {PROFILE_CUTOUT_TOP_Y} from '../../constants';
import {RootState} from '../../store/rootreducer';
-import {ScreenType, Universities} from '../../types';
+import {ScreenType} from '../../types';
import {normalize} from '../../utils';
import Avatar from './Avatar';
import FriendsCount from './FriendsCount';
import ProfileMoreInfoDrawer from './ProfileMoreInfoDrawer';
+import UniversityIcon from './UniversityIcon';
type ProfileHeaderProps = {
userXId: string | undefined;
@@ -24,11 +24,11 @@ const ProfileHeader: React.FC<ProfileHeaderProps> = ({
handleBlockUnblock,
}) => {
const {
- profile: {name = '', university_class = 2021, university = Universities.cornell} = {},
+ profile: {name = '', university_class = 2021, university},
user: {username: userXName = ''},
- } = userXId
- ? useSelector((state: RootState) => state.userX[screenType][userXId])
- : useSelector((state: RootState) => state.user);
+ } = useSelector((state: RootState) =>
+ userXId ? state.userX[screenType][userXId] : state.user,
+ );
const [drawerVisible, setDrawerVisible] = useState(false);
const [firstName, lastName] = [...name.split(' ')];
return (
@@ -59,9 +59,7 @@ const ProfileHeader: React.FC<ProfileHeaderProps> = ({
)}
<View style={styles.friendsAndUniversity}>
<FriendsCount screenType={screenType} userXId={userXId} />
- <UniversityIcon
- {...{university, university_class}}
- />
+ <UniversityIcon {...{university, university_class}} />
</View>
</View>
</View>
diff --git a/src/components/profile/UniversityIcon.tsx b/src/components/profile/UniversityIcon.tsx
index 1642b8f0..4cb1abe6 100644
--- a/src/components/profile/UniversityIcon.tsx
+++ b/src/components/profile/UniversityIcon.tsx
@@ -1,10 +1,11 @@
import React from 'react';
import {ImageStyle, StyleProp, StyleSheet, ViewProps} from 'react-native';
import {Image, Text, View} from 'react-native-animatable';
-import {getUniversityClass, normalize} from '../../utils';
-import {Universities} from '../../types';
+import {getUniversityBadge, getUniversityClass, normalize} from '../../utils';
+import {UniversityType} from '../../types';
+
export interface UniversityIconProps extends ViewProps {
- university: Universities;
+ university: UniversityType;
university_class?: number;
imageStyle?: StyleProp<ImageStyle>;
}
@@ -18,22 +19,12 @@ const UniversityIcon: React.FC<UniversityIconProps> = ({
university_class,
imageStyle,
}) => {
- var universityIcon;
- switch (university) {
- case 'Cornell':
- universityIcon = require('../../assets/universities/cornell.png');
- break;
- case 'Brown':
- universityIcon = require('../../assets/universities/brown.png');
- break;
- default:
- universityIcon = require('../../assets/universities/brown.png');
- break;
- }
-
return (
<View style={[styles.container, style]}>
- <Image source={universityIcon} style={[styles.icon, imageStyle]} />
+ <Image
+ source={getUniversityBadge(university, 'Crest')}
+ style={[styles.icon, imageStyle]}
+ />
{university_class && (
<Text style={styles.univClass}>
{getUniversityClass(university_class)}
diff --git a/src/components/search/SearchBar.tsx b/src/components/search/SearchBar.tsx
index 5008ff53..4824b56f 100644
--- a/src/components/search/SearchBar.tsx
+++ b/src/components/search/SearchBar.tsx
@@ -1,22 +1,21 @@
-import React, {useState, useEffect} from 'react';
+import React, {useEffect, useState} from 'react';
import {
+ Keyboard,
+ NativeSyntheticEvent,
StyleSheet,
- TextInput,
- TouchableOpacity,
Text,
- View,
+ TextInput,
TextInputProps,
- Keyboard,
- NativeSyntheticEvent,
TextInputSubmitEditingEventData,
+ TouchableOpacity,
+ View,
} from 'react-native';
+import {normalize} from 'react-native-elements';
import Animated, {interpolate} from 'react-native-reanimated';
import Icon from 'react-native-vector-icons/Feather';
-import {normalize} from 'react-native-elements';
-import {SCREEN_HEIGHT, getSearchSuggestions} from '../../utils';
import {useSelector} from 'react-redux';
import {RootState} from '../../store/rootReducer';
-import {Universities} from '../../types';
+import {getSearchSuggestions, SCREEN_HEIGHT} from '../../utils';
const AnimatedIcon = Animated.createAnimatedComponent(Icon);
@@ -40,9 +39,7 @@ const SearchBar: React.FC<SearchBarProps> = ({
e.preventDefault();
Keyboard.dismiss();
};
- const {profile: {university = Universities.cornell} = {}} = useSelector(
- (state: RootState) => state.user,
- );
+ const {university} = useSelector((state: RootState) => state.user.profile);
const DEFAULT_PLACEHOLDER: string = 'Search';
// the list of suggestions to cycle through. TODO: get this from the backend
const SEARCH_SUGGESTIONS: string[] = getSearchSuggestions(university);
diff --git a/src/components/search/SearchResultCell.tsx b/src/components/search/SearchResultCell.tsx
index 6ebe19a6..5a6ea110 100644
--- a/src/components/search/SearchResultCell.tsx
+++ b/src/components/search/SearchResultCell.tsx
@@ -10,7 +10,7 @@ import {
CategoryPreviewType,
ProfilePreviewType,
ScreenType,
- Universities,
+ UniversityType,
UserType,
} from '../../types';
import {
@@ -46,9 +46,7 @@ const SearchResultsCell: React.FC<SearchResults> = ({
}) => {
const [avatar, setAvatar] = useState<string | undefined>(undefined);
- const {profile: {university = Universities.cornell} = {}} = useSelector(
- (state: RootState) => state.user,
- );
+ const {university} = useSelector((state: RootState) => state.user.profile);
useEffect(() => {
(async () => {
@@ -157,7 +155,7 @@ const SearchResultsCell: React.FC<SearchResults> = ({
<Image
resizeMode="contain"
source={
- category in Universities
+ category in UniversityType
? getUniversityBadge(university, 'Search')
: searchIcon()
}
diff --git a/src/components/suggestedPeople/BadgesDropdown.tsx b/src/components/suggestedPeople/BadgesDropdown.tsx
index f8e7bdaa..bc4e7a54 100644
--- a/src/components/suggestedPeople/BadgesDropdown.tsx
+++ b/src/components/suggestedPeople/BadgesDropdown.tsx
@@ -4,12 +4,12 @@ import {Image, StyleSheet} from 'react-native';
import {TouchableOpacity} from 'react-native-gesture-handler';
import LinearGradient from 'react-native-linear-gradient';
import Animated, {Easing} from 'react-native-reanimated';
-import {Universities, UniversityBadge} from '../../types';
+import {UniversityType, UniversityBadge} from '../../types';
import {UniversityIcon} from '..';
import {normalize, SCREEN_WIDTH} from '../../utils';
import UniversityIconClicked from './UniversityIconClicked';
interface BadgesDropdownProps {
- university: Universities;
+ university: UniversityType;
localBadges: {
badge: UniversityBadge;
img: string;
diff --git a/src/components/suggestedPeople/UniversityIconClicked.tsx b/src/components/suggestedPeople/UniversityIconClicked.tsx
index 7a0f3442..41e27c8e 100644
--- a/src/components/suggestedPeople/UniversityIconClicked.tsx
+++ b/src/components/suggestedPeople/UniversityIconClicked.tsx
@@ -2,9 +2,9 @@ import React from 'react';
import {ImageStyle, StyleProp, StyleSheet, ViewProps} from 'react-native';
import {Image, Text, View} from 'react-native-animatable';
import {getUniversityClass, normalize} from '../../utils';
-import {Universities} from '../../types';
+import {UniversityType} from '../../types';
export interface UniversityIconClickedProps extends ViewProps {
- university: Universities;
+ university: UniversityType;
university_class?: number;
imageStyle?: StyleProp<ImageStyle>;
}
@@ -20,10 +20,10 @@ const UniversityIconClicked: React.FC<UniversityIconClickedProps> = ({
}) => {
var universityIcon;
switch (university) {
- case 'Cornell':
+ case UniversityType.Cornell:
universityIcon = require('../../assets/universities/cornell-clicked.png');
break;
- case 'Brown':
+ case UniversityType.Brown:
universityIcon = require('../../assets/universities/brown-clicked.png');
break;
default:
diff --git a/src/constants/badges.ts b/src/constants/badges.ts
index b56ac34e..5a7b4671 100644
--- a/src/constants/badges.ts
+++ b/src/constants/badges.ts
@@ -495,6 +495,7 @@ const _cornellBadges = [
];
export const BADGE_DATA: BadgeDataType = {
- Brown: _brownBadges,
- Cornell: _cornellBadges,
+ 'Brown University': _brownBadges,
+ 'Cornell University': _cornellBadges,
+ '': [],
};
diff --git a/src/screens/badge/BadgeScreenHeader.tsx b/src/screens/badge/BadgeScreenHeader.tsx
index 746e05d9..46c0c1c8 100644
--- a/src/screens/badge/BadgeScreenHeader.tsx
+++ b/src/screens/badge/BadgeScreenHeader.tsx
@@ -1,10 +1,10 @@
import React from 'react';
import {Image, StyleSheet, Text, View} from 'react-native';
-import { Universities } from 'src/types';
+import {UniversityType} from 'src/types';
import {getUniversityBadge, normalize} from '../../utils';
interface BadgeScreenHeaderProps {
- university: Universities;
+ university: UniversityType;
}
const BadgeScreenHeader: React.FC<BadgeScreenHeaderProps> = ({university}) => {
@@ -12,9 +12,12 @@ const BadgeScreenHeader: React.FC<BadgeScreenHeaderProps> = ({university}) => {
<View style={styles.container}>
<Image
source={getUniversityBadge(university, 'Crest')}
+ style={styles.icon}
/>
<View style={styles.universityTextContainer}>
- <Text style={styles.universityText}>{university} University Badges</Text>
+ <Text style={styles.universityText}>
+ {university} University Badges
+ </Text>
</View>
<View style={styles.searchTextContainer}>
<Text style={styles.searchText}>
@@ -44,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 08cad020..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, Universities} from '../../types';
+import {BackgroundGradientType, UniversityType} from '../../types';
import {SCREEN_HEIGHT, StatusBarHeight} from '../../utils';
import BadgeList from './BadgeList';
import BadgeScreenHeader from './BadgeScreenHeader';
@@ -36,7 +36,7 @@ const BadgeSelection: React.FC<BadgeSelectionProps> = ({route}) => {
const {editing} = route.params;
const {
user: {userId: loggedInUserId},
- profile: {university = Universities.brown},
+ profile: {university},
} = useSelector((state: RootState) => state.user);
const [selectedBadges, setSelectedBadges] = useState<string[]>([]);
const dispatch = useDispatch();
diff --git a/src/screens/search/SearchScreen.tsx b/src/screens/search/SearchScreen.tsx
index 7e84b372..683d25f4 100644
--- a/src/screens/search/SearchScreen.tsx
+++ b/src/screens/search/SearchScreen.tsx
@@ -22,7 +22,6 @@ import {
ProfilePreviewType,
ScreenType,
SearchCategoryType,
- Universities,
} from '../../types';
import {
getRecentlySearchedCategories,
@@ -39,9 +38,9 @@ import {
const SearchScreen: React.FC = () => {
const {recentSearches} = useSelector((state: RootState) => state.taggUsers);
- const {profile: {university = Universities.cornell} = {}} = useSelector(
- (state: RootState) => state.user,
- );
+ 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>>(
@@ -54,7 +53,7 @@ const SearchScreen: React.FC = () => {
const top = Animated.useValue(-SCREEN_HEIGHT);
const defaultButtons: SearchCategoryType[] = [21, 22, 23, 24].map((year) => ({
id: -1,
- name: `${university} '${year}`,
+ name: `${university.split(' ')[0]} '${year}`,
category: university,
}));
const [keyboardVisible, setKeyboardVisible] = React.useState(
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 378e69c5..e1bcb477 100644
--- a/src/screens/suggestedPeopleOnboarding/SuggestedPeopleUploadPictureScreen.tsx
+++ b/src/screens/suggestedPeopleOnboarding/SuggestedPeopleUploadPictureScreen.tsx
@@ -14,7 +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 {Universities} from '../../types';
+import {UniversityType} from '../../types';
import FrontArrow from '../../assets/icons/front-arrow.svg';
import {TaggSquareButton, UniversityIcon} from '../../components';
import TaggLoadingIndicator from '../../components/common/TaggLoadingIndicator';
@@ -52,7 +52,7 @@ const SuggestedPeopleUploadPictureScreen: React.FC<SuggestedPeopleUploadPictureS
const navigation = useNavigation();
const {
user: {userId: loggedInUserId},
- profile: {university = Universities.brown},
+ profile: {university = UniversityType.brown},
} = useSelector((state: RootState) => state.user);
useEffect(() => {
diff --git a/src/types/types.ts b/src/types/types.ts
index 8ec3ab52..94fc966e 100644
--- a/src/types/types.ts
+++ b/src/types/types.ts
@@ -273,4 +273,4 @@ export type ContactType = {
};
export type UniversityBadgeType = 'Search' | 'Crest';
-export type BadgeDataType = Record<UniversityType, any>;
+export type BadgeDataType = Record<UniversityType, any[]>;
diff --git a/src/utils/common.ts b/src/utils/common.ts
index fdc6b875..4f31af8e 100644
--- a/src/utils/common.ts
+++ b/src/utils/common.ts
@@ -1,7 +1,7 @@
import {
ContactType,
NotificationType,
- Universities,
+ UniversityType,
UniversityBadgeType,
} from './../types/types';
import moment from 'moment';
@@ -139,7 +139,7 @@ export const extractContacts = async () => {
};
export const getUniversityBadge = (
- university: Universities,
+ university: UniversityType,
type: UniversityBadgeType,
) => {
switch (type) {
@@ -152,22 +152,22 @@ export const getUniversityBadge = (
}
};
-const _searchPageIcon = (university: Universities) => {
+const _searchPageIcon = (university: UniversityType) => {
switch (university) {
- case 'Cornell':
+ case UniversityType.Cornell:
return require('../assets/universities/cornell-search.png');
- case 'Brown':
+ case UniversityType.Brown:
return require('../assets/images/bwbadges.png');
default:
return require('../assets/images/bwbadges.png');
}
};
-const _crestIcon = (university: Universities) => {
+const _crestIcon = (university: UniversityType) => {
switch (university) {
- case 'Cornell':
+ case UniversityType.Cornell:
return require('../assets/universities/cornell.png');
- case 'Brown':
+ case UniversityType.Brown:
return require('../assets/universities/brown.png');
default:
return require('../assets/images/bwbadges.png');
diff --git a/src/utils/search.ts b/src/utils/search.ts
index aa9a7463..26f40b1b 100644
--- a/src/utils/search.ts
+++ b/src/utils/search.ts
@@ -1,12 +1,16 @@
import AsyncStorage from '@react-native-community/async-storage';
import {BADGE_DATA} from '../constants/badges';
-import {ProfilePreviewType, CategoryPreviewType, Universities} from '../types';
+import {
+ ProfilePreviewType,
+ CategoryPreviewType,
+ UniversityType,
+} from '../types';
/*
* Gets all possible search suggestions.
*/
-export const getSearchSuggestions = (university : Universities): string[] => {
+export const getSearchSuggestions = (university: UniversityType): string[] => {
const suggestions: string[] = [];
for (const category of BADGE_DATA[university]) {
for (const interest of category.data) {
@@ -62,7 +66,9 @@ export const getRecentlySearchedUsers = async (): Promise<
> => {
try {
const usersJSON = await AsyncStorage.getItem(recentlySearchedUsersKey);
- if (usersJSON) return JSON.parse(usersJSON);
+ if (usersJSON) {
+ return JSON.parse(usersJSON);
+ }
} catch (e) {
console.log(e);
}
@@ -124,7 +130,9 @@ export const getRecentlySearchedCategories = async (): Promise<
const categoriesJSON = await AsyncStorage.getItem(
'@recently_searched_categories',
);
- if (categoriesJSON) return JSON.parse(categoriesJSON);
+ if (categoriesJSON) {
+ return JSON.parse(categoriesJSON);
+ }
} catch (e) {
console.log(e);
}