aboutsummaryrefslogtreecommitdiff
path: root/src/screens
diff options
context:
space:
mode:
authorIvan Chen <ivan@tagg.id>2021-03-27 20:30:36 -0400
committerGitHub <noreply@github.com>2021-03-27 20:30:36 -0400
commit67fb6f5cae06dfbcb359dd6468cb66ad85fa230d (patch)
treeeaf092811d5be72e89e4dec9942dc59a1f8a0211 /src/screens
parentbef5728b24a71d1bf327a72e425346020a997037 (diff)
parentbf0a2abf8bab333ff0d87bc07002e6f96199ce3b (diff)
Merge pull request #330 from ankit-thanekar007/tma-722-cornell-fe
[TMA 722] : Cornell FrontEnd changes
Diffstat (limited to 'src/screens')
-rw-r--r--src/screens/badge/BadgeScreenHeader.tsx22
-rw-r--r--src/screens/badge/BadgeSelection.tsx23
-rw-r--r--src/screens/onboarding/Login.tsx2
-rw-r--r--src/screens/search/SearchScreen.tsx7
-rw-r--r--src/screens/search/mock.ts118
-rw-r--r--src/screens/suggestedPeople/SPBody.tsx7
-rw-r--r--src/screens/suggestedPeople/SuggestedPeopleScreen.tsx9
-rw-r--r--src/screens/suggestedPeopleOnboarding/SuggestedPeopleUploadPictureScreen.tsx10
8 files changed, 48 insertions, 150 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 97f4fe87..49ca5ff4 100644
--- a/src/screens/onboarding/Login.tsx
+++ b/src/screens/onboarding/Login.tsx
@@ -263,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
@@ -280,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/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 8e0801c2..c4195fac 100644
--- a/src/screens/suggestedPeople/SPBody.tsx
+++ b/src/screens/suggestedPeople/SPBody.tsx
@@ -27,6 +27,7 @@ interface SPBodyProps {
const SPBody: React.FC<SPBodyProps> = ({
item: {
user,
+ university,
mutual_friends,
social_links,
suggested_people_url,
@@ -50,7 +51,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) {
@@ -120,7 +121,7 @@ const SPBody: React.FC<SPBodyProps> = ({
return (
<TouchableOpacity
onPress={() => {
- navigation.push('Profile', {
+ navigation.navigate('Profile', {
userXId: loggedInUserId === user.id ? undefined : user.id,
screenType,
});
@@ -139,7 +140,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>