aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIvan Chen <ivan@tagg.id>2021-03-29 14:02:31 -0400
committerIvan Chen <ivan@tagg.id>2021-03-29 14:02:31 -0400
commit04bf806285e7626644234b7febee2dad5c912f8d (patch)
tree9ed3ec581792d6a0e1135f02a1d4716890ca75fc /src
parente8324a7278a82d926acceedc10921f0b14e6d403 (diff)
parent4de1ebd43437712e28a89bb624c5b12afad45cc6 (diff)
Merge branch 'master' into tma-701-private-account-banner
# Conflicts: # src/constants/strings.ts
Diffstat (limited to 'src')
-rw-r--r--src/assets/badges/brown/acapella.png (renamed from src/assets/images/badges/acapella.png)bin16688 -> 16688 bytes
-rw-r--r--src/assets/badges/brown/alpha_chi_omega.png (renamed from src/assets/images/badges/alpha_chi_omega.png)bin11237 -> 11237 bytes
-rw-r--r--src/assets/badges/brown/alpha_delta_phi.png (renamed from src/assets/images/badges/alpha_delta_phi.png)bin10962 -> 10962 bytes
-rw-r--r--src/assets/badges/brown/baseball.png (renamed from src/assets/images/badges/baseball.png)bin18096 -> 18096 bytes
-rw-r--r--src/assets/badges/brown/basketball.png (renamed from src/assets/images/badges/basketball.png)bin20516 -> 20516 bytes
-rw-r--r--src/assets/badges/brown/beta_rho_pi.png (renamed from src/assets/images/badges/beta_rho_pi.png)bin8682 -> 8682 bytes
-rw-r--r--src/assets/badges/brown/black_in_business.png (renamed from src/assets/images/badges/black_in_business.png)bin7632 -> 7632 bytes
-rw-r--r--src/assets/badges/brown/brown_band.png (renamed from src/assets/images/badges/brown_band.png)bin8388 -> 8388 bytes
-rw-r--r--src/assets/badges/brown/brown_class_board.png (renamed from src/assets/images/badges/brown_class_board.png)bin7095 -> 7095 bytes
-rw-r--r--src/assets/badges/brown/brown_cs.png (renamed from src/assets/images/badges/brown_cs.png)bin11517 -> 11517 bytes
-rw-r--r--src/assets/badges/brown/brown_democrats.png (renamed from src/assets/images/badges/brown_democrats.png)bin7661 -> 7661 bytes
-rw-r--r--src/assets/badges/brown/brown_ep.png (renamed from src/assets/images/badges/brown_ep.png)bin15555 -> 15555 bytes
-rw-r--r--src/assets/badges/brown/brown_womens_collective.png (renamed from src/assets/images/badges/brown_womens_collective.png)bin16495 -> 16495 bytes
-rw-r--r--src/assets/badges/brown/bsu.png (renamed from src/assets/images/badges/bsu.png)bin9209 -> 9209 bytes
-rw-r--r--src/assets/badges/brown/buxton_international.png (renamed from src/assets/images/badges/buxton_international.png)bin16050 -> 16050 bytes
-rw-r--r--src/assets/badges/brown/delta_gamma.png (renamed from src/assets/images/badges/delta_gamma.png)bin7840 -> 7840 bytes
-rw-r--r--src/assets/badges/brown/delta_tau.png (renamed from src/assets/images/badges/delta_tau.png)bin7971 -> 7971 bytes
-rw-r--r--src/assets/badges/brown/fashion_at_brown.png (renamed from src/assets/images/badges/fashion_at_brown.png)bin10204 -> 10204 bytes
-rw-r--r--src/assets/badges/brown/field_hockey.png (renamed from src/assets/images/badges/field_hockey.png)bin16665 -> 16665 bytes
-rw-r--r--src/assets/badges/brown/football.png (renamed from src/assets/images/badges/football.png)bin19113 -> 19113 bytes
-rw-r--r--src/assets/badges/brown/gymnastics.png (renamed from src/assets/images/badges/gymnastics.png)bin25165 -> 25165 bytes
-rw-r--r--src/assets/badges/brown/hockey.png (renamed from src/assets/images/badges/hockey.png)bin16274 -> 16274 bytes
-rw-r--r--src/assets/badges/brown/impulse.png (renamed from src/assets/images/badges/impulse.png)bin20809 -> 20809 bytes
-rw-r--r--src/assets/badges/brown/kappa_delta.png (renamed from src/assets/images/badges/kappa_delta.png)bin9561 -> 9561 bytes
-rw-r--r--src/assets/badges/brown/lacrosse.png (renamed from src/assets/images/badges/lacrosse.png)bin17631 -> 17631 bytes
-rw-r--r--src/assets/badges/brown/latin_at_brown.png (renamed from src/assets/images/badges/latin_at_brown.png)bin28842 -> 28842 bytes
-rw-r--r--src/assets/badges/brown/soccer.png (renamed from src/assets/images/badges/soccer.png)bin15982 -> 15982 bytes
-rw-r--r--src/assets/badges/brown/softball.png (renamed from src/assets/images/badges/softball.png)bin18096 -> 18096 bytes
-rw-r--r--src/assets/badges/brown/tap.png (renamed from src/assets/images/badges/tap.png)bin11489 -> 11489 bytes
-rw-r--r--src/assets/badges/brown/tennis.png (renamed from src/assets/images/badges/tennis.png)bin17695 -> 17695 bytes
-rw-r--r--src/assets/badges/brown/theta_alpha.png (renamed from src/assets/images/badges/theta_alpha.png)bin12104 -> 12104 bytes
-rw-r--r--src/assets/badges/brown/track.png (renamed from src/assets/images/badges/track.png)bin17837 -> 17837 bytes
-rw-r--r--src/assets/badges/brown/ucs.png (renamed from src/assets/images/badges/ucs.png)bin10132 -> 10132 bytes
-rw-r--r--src/assets/badges/brown/volleyball.png (renamed from src/assets/images/badges/volleyball.png)bin28161 -> 28161 bytes
-rw-r--r--src/assets/badges/brown/women_in_business.png (renamed from src/assets/images/badges/women_in_business.png)bin14868 -> 14868 bytes
-rw-r--r--src/assets/badges/brown/zeta_delta_xi.png (renamed from src/assets/images/badges/zeta_delta_xi.png)bin8952 -> 8952 bytes
-rw-r--r--src/assets/badges/cornell/acacia.pngbin0 -> 19048 bytes
-rw-r--r--src/assets/badges/cornell/acapella.pngbin0 -> 26719 bytes
-rw-r--r--src/assets/badges/cornell/aeta_phi_beta.pngbin0 -> 19159 bytes
-rw-r--r--src/assets/badges/cornell/alpha_chi_omega.pngbin0 -> 18872 bytes
-rw-r--r--src/assets/badges/cornell/alpha_delta_phi.pngbin0 -> 19727 bytes
-rw-r--r--src/assets/badges/cornell/alpha_epsilon_phi.pngbin0 -> 18327 bytes
-rw-r--r--src/assets/badges/cornell/alpha_gamma_rho.pngbin0 -> 17347 bytes
-rw-r--r--src/assets/badges/cornell/alpha_kappa_delta_phi.pngbin0 -> 18926 bytes
-rw-r--r--src/assets/badges/cornell/alpha_phi.pngbin0 -> 20092 bytes
-rw-r--r--src/assets/badges/cornell/alpha_phi_alpha.pngbin0 -> 19233 bytes
-rw-r--r--src/assets/badges/cornell/alpha_sigma_phi.pngbin0 -> 19506 bytes
-rw-r--r--src/assets/badges/cornell/alpha_xi_delta.pngbin0 -> 19590 bytes
-rw-r--r--src/assets/badges/cornell/alpha_zeta.pngbin0 -> 19359 bytes
-rw-r--r--src/assets/badges/cornell/alphs_epsilon_pi.pngbin0 -> 17404 bytes
-rw-r--r--src/assets/badges/cornell/baseball.pngbin0 -> 27181 bytes
-rw-r--r--src/assets/badges/cornell/basketball.pngbin0 -> 29348 bytes
-rw-r--r--src/assets/badges/cornell/beta_theta_pi.pngbin0 -> 16639 bytes
-rw-r--r--src/assets/badges/cornell/chi_phi.pngbin0 -> 20638 bytes
-rw-r--r--src/assets/badges/cornell/chi_psi.pngbin0 -> 19465 bytes
-rw-r--r--src/assets/badges/cornell/delta_chi.pngbin0 -> 20580 bytes
-rw-r--r--src/assets/badges/cornell/delta_delta_delta.pngbin0 -> 18569 bytes
-rw-r--r--src/assets/badges/cornell/delta_epsilon.pngbin0 -> 19017 bytes
-rw-r--r--src/assets/badges/cornell/delta_gamma.pngbin0 -> 17937 bytes
-rw-r--r--src/assets/badges/cornell/delta_kappa_epsilon.pngbin0 -> 18423 bytes
-rw-r--r--src/assets/badges/cornell/delta_sigma_theta.pngbin0 -> 20685 bytes
-rw-r--r--src/assets/badges/cornell/delta_tau_delta.pngbin0 -> 19065 bytes
-rw-r--r--src/assets/badges/cornell/fencing.pngbin0 -> 19601 bytes
-rw-r--r--src/assets/badges/cornell/field_hockey.pngbin0 -> 25805 bytes
-rw-r--r--src/assets/badges/cornell/football.pngbin0 -> 28256 bytes
-rw-r--r--src/assets/badges/cornell/golf.pngbin0 -> 21766 bytes
-rw-r--r--src/assets/badges/cornell/gymnastics.pngbin0 -> 32756 bytes
-rw-r--r--src/assets/badges/cornell/hockey.pngbin0 -> 25486 bytes
-rw-r--r--src/assets/badges/cornell/kappa_alpha_theta.pngbin0 -> 19332 bytes
-rw-r--r--src/assets/badges/cornell/kappa_delta.pngbin0 -> 18860 bytes
-rw-r--r--src/assets/badges/cornell/kappa_delta_rho.pngbin0 -> 18490 bytes
-rw-r--r--src/assets/badges/cornell/kappa_kappa_gamma.pngbin0 -> 16875 bytes
-rw-r--r--src/assets/badges/cornell/kappa_phi_lambda.pngbin0 -> 20095 bytes
-rw-r--r--src/assets/badges/cornell/kappa_sigma.pngbin0 -> 19153 bytes
-rw-r--r--src/assets/badges/cornell/la_unidad_latina,_lambda.pngbin0 -> 19803 bytes
-rw-r--r--src/assets/badges/cornell/lacrosse.pngbin0 -> 26596 bytes
-rw-r--r--src/assets/badges/cornell/lambda_chi_alpha.pngbin0 -> 19616 bytes
-rw-r--r--src/assets/badges/cornell/lambda_phi_epsilon_international.pngbin0 -> 19131 bytes
-rw-r--r--src/assets/badges/cornell/malik.pngbin0 -> 18061 bytes
-rw-r--r--src/assets/badges/cornell/phi_beta_phi.pngbin0 -> 18760 bytes
-rw-r--r--src/assets/badges/cornell/phi_beta_sigma.pngbin0 -> 19401 bytes
-rw-r--r--src/assets/badges/cornell/phi_delta_theta.pngbin0 -> 18604 bytes
-rw-r--r--src/assets/badges/cornell/phi_kappa_tau.pngbin0 -> 18109 bytes
-rw-r--r--src/assets/badges/cornell/phi_mu.pngbin0 -> 19782 bytes
-rw-r--r--src/assets/badges/cornell/phi_sigma_kappa.pngbin0 -> 19139 bytes
-rw-r--r--src/assets/badges/cornell/phi_sigma_sigma.pngbin0 -> 19683 bytes
-rw-r--r--src/assets/badges/cornell/pi_delta_psi.pngbin0 -> 17779 bytes
-rw-r--r--src/assets/badges/cornell/pi_kappa_alpha.pngbin0 -> 17333 bytes
-rw-r--r--src/assets/badges/cornell/pi_kappa_phi.pngbin0 -> 17748 bytes
-rw-r--r--src/assets/badges/cornell/polo.pngbin0 -> 23823 bytes
-rw-r--r--src/assets/badges/cornell/rowing.pngbin0 -> 22766 bytes
-rw-r--r--src/assets/badges/cornell/sailing.pngbin0 -> 27019 bytes
-rw-r--r--src/assets/badges/cornell/sigma_alpha_mu.pngbin0 -> 18971 bytes
-rw-r--r--src/assets/badges/cornell/sigma_chi.pngbin0 -> 20542 bytes
-rw-r--r--src/assets/badges/cornell/sigma_delta_tau.pngbin0 -> 18832 bytes
-rw-r--r--src/assets/badges/cornell/sigma_phi_society.pngbin0 -> 20016 bytes
-rw-r--r--src/assets/badges/cornell/sigma_pi.pngbin0 -> 17370 bytes
-rw-r--r--src/assets/badges/cornell/soccer.pngbin0 -> 26884 bytes
-rw-r--r--src/assets/badges/cornell/softball.pngbin0 -> 27201 bytes
-rw-r--r--src/assets/badges/cornell/squash.pngbin0 -> 28525 bytes
-rw-r--r--src/assets/badges/cornell/swimming_&_diving.pngbin0 -> 23492 bytes
-rw-r--r--src/assets/badges/cornell/tennis.pngbin0 -> 27249 bytes
-rw-r--r--src/assets/badges/cornell/theta_delta_chi.pngbin0 -> 20995 bytes
-rw-r--r--src/assets/badges/cornell/track_&_field.pngbin0 -> 26490 bytes
-rw-r--r--src/assets/badges/cornell/volleyball.pngbin0 -> 35938 bytes
-rw-r--r--src/assets/badges/cornell/wrestling.pngbin0 -> 23457 bytes
-rw-r--r--src/assets/badges/cornell/zeta_beta_tau.pngbin0 -> 17937 bytes
-rw-r--r--src/assets/badges/cornell/zeta_phi_beta.pngbin0 -> 19159 bytes
-rw-r--r--src/assets/badges/cornell/zeta_psi.pngbin0 -> 19059 bytes
-rw-r--r--src/assets/images/badges/brown_badge.pngbin843 -> 0 bytes
-rw-r--r--src/assets/universities/cornell-clicked.pngbin0 -> 12362 bytes
-rw-r--r--src/assets/universities/cornell-search.pngbin0 -> 12171 bytes
-rw-r--r--src/assets/universities/cornell.pngbin0 -> 12353 bytes
-rw-r--r--src/components/onboarding/UniversitySelection.tsx97
-rw-r--r--src/components/onboarding/index.ts1
-rw-r--r--src/components/profile/ProfileHeader.tsx7
-rw-r--r--src/components/profile/ProfileMoreInfoDrawer.tsx8
-rw-r--r--src/components/profile/UniversityIcon.tsx20
-rw-r--r--src/components/search/SearchBar.tsx21
-rw-r--r--src/components/search/SearchResultCell.tsx17
-rw-r--r--src/components/suggestedPeople/BadgesDropdown.tsx8
-rw-r--r--src/components/suggestedPeople/UniversityIconClicked.tsx9
-rw-r--r--src/constants/badges.ts431
-rw-r--r--src/constants/strings.ts7
-rw-r--r--src/screens/badge/BadgeScreenHeader.tsx22
-rw-r--r--src/screens/badge/BadgeSelection.tsx23
-rw-r--r--src/screens/onboarding/Login.tsx31
-rw-r--r--src/screens/onboarding/OnboardingStepThree.tsx100
-rw-r--r--src/screens/profile/EditProfile.tsx38
-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
-rw-r--r--src/services/UserProfileService.ts48
-rw-r--r--src/store/initialStates.ts2
-rw-r--r--src/types/types.ts18
-rw-r--r--src/utils/common.ts43
-rw-r--r--src/utils/search.ts18
139 files changed, 742 insertions, 378 deletions
diff --git a/src/assets/images/badges/acapella.png b/src/assets/badges/brown/acapella.png
index c0adb885..c0adb885 100644
--- a/src/assets/images/badges/acapella.png
+++ b/src/assets/badges/brown/acapella.png
Binary files differ
diff --git a/src/assets/images/badges/alpha_chi_omega.png b/src/assets/badges/brown/alpha_chi_omega.png
index f6db85af..f6db85af 100644
--- a/src/assets/images/badges/alpha_chi_omega.png
+++ b/src/assets/badges/brown/alpha_chi_omega.png
Binary files differ
diff --git a/src/assets/images/badges/alpha_delta_phi.png b/src/assets/badges/brown/alpha_delta_phi.png
index 51186468..51186468 100644
--- a/src/assets/images/badges/alpha_delta_phi.png
+++ b/src/assets/badges/brown/alpha_delta_phi.png
Binary files differ
diff --git a/src/assets/images/badges/baseball.png b/src/assets/badges/brown/baseball.png
index 2a049c16..2a049c16 100644
--- a/src/assets/images/badges/baseball.png
+++ b/src/assets/badges/brown/baseball.png
Binary files differ
diff --git a/src/assets/images/badges/basketball.png b/src/assets/badges/brown/basketball.png
index 43d08803..43d08803 100644
--- a/src/assets/images/badges/basketball.png
+++ b/src/assets/badges/brown/basketball.png
Binary files differ
diff --git a/src/assets/images/badges/beta_rho_pi.png b/src/assets/badges/brown/beta_rho_pi.png
index 490acebb..490acebb 100644
--- a/src/assets/images/badges/beta_rho_pi.png
+++ b/src/assets/badges/brown/beta_rho_pi.png
Binary files differ
diff --git a/src/assets/images/badges/black_in_business.png b/src/assets/badges/brown/black_in_business.png
index 995ae652..995ae652 100644
--- a/src/assets/images/badges/black_in_business.png
+++ b/src/assets/badges/brown/black_in_business.png
Binary files differ
diff --git a/src/assets/images/badges/brown_band.png b/src/assets/badges/brown/brown_band.png
index bb21bcde..bb21bcde 100644
--- a/src/assets/images/badges/brown_band.png
+++ b/src/assets/badges/brown/brown_band.png
Binary files differ
diff --git a/src/assets/images/badges/brown_class_board.png b/src/assets/badges/brown/brown_class_board.png
index a04e0a63..a04e0a63 100644
--- a/src/assets/images/badges/brown_class_board.png
+++ b/src/assets/badges/brown/brown_class_board.png
Binary files differ
diff --git a/src/assets/images/badges/brown_cs.png b/src/assets/badges/brown/brown_cs.png
index 18c7165a..18c7165a 100644
--- a/src/assets/images/badges/brown_cs.png
+++ b/src/assets/badges/brown/brown_cs.png
Binary files differ
diff --git a/src/assets/images/badges/brown_democrats.png b/src/assets/badges/brown/brown_democrats.png
index ba828a2a..ba828a2a 100644
--- a/src/assets/images/badges/brown_democrats.png
+++ b/src/assets/badges/brown/brown_democrats.png
Binary files differ
diff --git a/src/assets/images/badges/brown_ep.png b/src/assets/badges/brown/brown_ep.png
index c4f381b2..c4f381b2 100644
--- a/src/assets/images/badges/brown_ep.png
+++ b/src/assets/badges/brown/brown_ep.png
Binary files differ
diff --git a/src/assets/images/badges/brown_womens_collective.png b/src/assets/badges/brown/brown_womens_collective.png
index 242188ab..242188ab 100644
--- a/src/assets/images/badges/brown_womens_collective.png
+++ b/src/assets/badges/brown/brown_womens_collective.png
Binary files differ
diff --git a/src/assets/images/badges/bsu.png b/src/assets/badges/brown/bsu.png
index 13838f32..13838f32 100644
--- a/src/assets/images/badges/bsu.png
+++ b/src/assets/badges/brown/bsu.png
Binary files differ
diff --git a/src/assets/images/badges/buxton_international.png b/src/assets/badges/brown/buxton_international.png
index 2b1d33a3..2b1d33a3 100644
--- a/src/assets/images/badges/buxton_international.png
+++ b/src/assets/badges/brown/buxton_international.png
Binary files differ
diff --git a/src/assets/images/badges/delta_gamma.png b/src/assets/badges/brown/delta_gamma.png
index 4f1aa675..4f1aa675 100644
--- a/src/assets/images/badges/delta_gamma.png
+++ b/src/assets/badges/brown/delta_gamma.png
Binary files differ
diff --git a/src/assets/images/badges/delta_tau.png b/src/assets/badges/brown/delta_tau.png
index 80d2a373..80d2a373 100644
--- a/src/assets/images/badges/delta_tau.png
+++ b/src/assets/badges/brown/delta_tau.png
Binary files differ
diff --git a/src/assets/images/badges/fashion_at_brown.png b/src/assets/badges/brown/fashion_at_brown.png
index a60b65fc..a60b65fc 100644
--- a/src/assets/images/badges/fashion_at_brown.png
+++ b/src/assets/badges/brown/fashion_at_brown.png
Binary files differ
diff --git a/src/assets/images/badges/field_hockey.png b/src/assets/badges/brown/field_hockey.png
index 7f08587e..7f08587e 100644
--- a/src/assets/images/badges/field_hockey.png
+++ b/src/assets/badges/brown/field_hockey.png
Binary files differ
diff --git a/src/assets/images/badges/football.png b/src/assets/badges/brown/football.png
index 1a5c0f4f..1a5c0f4f 100644
--- a/src/assets/images/badges/football.png
+++ b/src/assets/badges/brown/football.png
Binary files differ
diff --git a/src/assets/images/badges/gymnastics.png b/src/assets/badges/brown/gymnastics.png
index 64735dd2..64735dd2 100644
--- a/src/assets/images/badges/gymnastics.png
+++ b/src/assets/badges/brown/gymnastics.png
Binary files differ
diff --git a/src/assets/images/badges/hockey.png b/src/assets/badges/brown/hockey.png
index 2cfd547e..2cfd547e 100644
--- a/src/assets/images/badges/hockey.png
+++ b/src/assets/badges/brown/hockey.png
Binary files differ
diff --git a/src/assets/images/badges/impulse.png b/src/assets/badges/brown/impulse.png
index 68a73028..68a73028 100644
--- a/src/assets/images/badges/impulse.png
+++ b/src/assets/badges/brown/impulse.png
Binary files differ
diff --git a/src/assets/images/badges/kappa_delta.png b/src/assets/badges/brown/kappa_delta.png
index 7a3fdb25..7a3fdb25 100644
--- a/src/assets/images/badges/kappa_delta.png
+++ b/src/assets/badges/brown/kappa_delta.png
Binary files differ
diff --git a/src/assets/images/badges/lacrosse.png b/src/assets/badges/brown/lacrosse.png
index 67ac8f5e..67ac8f5e 100644
--- a/src/assets/images/badges/lacrosse.png
+++ b/src/assets/badges/brown/lacrosse.png
Binary files differ
diff --git a/src/assets/images/badges/latin_at_brown.png b/src/assets/badges/brown/latin_at_brown.png
index 515599f9..515599f9 100644
--- a/src/assets/images/badges/latin_at_brown.png
+++ b/src/assets/badges/brown/latin_at_brown.png
Binary files differ
diff --git a/src/assets/images/badges/soccer.png b/src/assets/badges/brown/soccer.png
index f2202510..f2202510 100644
--- a/src/assets/images/badges/soccer.png
+++ b/src/assets/badges/brown/soccer.png
Binary files differ
diff --git a/src/assets/images/badges/softball.png b/src/assets/badges/brown/softball.png
index 2a049c16..2a049c16 100644
--- a/src/assets/images/badges/softball.png
+++ b/src/assets/badges/brown/softball.png
Binary files differ
diff --git a/src/assets/images/badges/tap.png b/src/assets/badges/brown/tap.png
index e6db8470..e6db8470 100644
--- a/src/assets/images/badges/tap.png
+++ b/src/assets/badges/brown/tap.png
Binary files differ
diff --git a/src/assets/images/badges/tennis.png b/src/assets/badges/brown/tennis.png
index 358cb8c7..358cb8c7 100644
--- a/src/assets/images/badges/tennis.png
+++ b/src/assets/badges/brown/tennis.png
Binary files differ
diff --git a/src/assets/images/badges/theta_alpha.png b/src/assets/badges/brown/theta_alpha.png
index 323b538e..323b538e 100644
--- a/src/assets/images/badges/theta_alpha.png
+++ b/src/assets/badges/brown/theta_alpha.png
Binary files differ
diff --git a/src/assets/images/badges/track.png b/src/assets/badges/brown/track.png
index 5bcff810..5bcff810 100644
--- a/src/assets/images/badges/track.png
+++ b/src/assets/badges/brown/track.png
Binary files differ
diff --git a/src/assets/images/badges/ucs.png b/src/assets/badges/brown/ucs.png
index 1009dc9b..1009dc9b 100644
--- a/src/assets/images/badges/ucs.png
+++ b/src/assets/badges/brown/ucs.png
Binary files differ
diff --git a/src/assets/images/badges/volleyball.png b/src/assets/badges/brown/volleyball.png
index 915b467c..915b467c 100644
--- a/src/assets/images/badges/volleyball.png
+++ b/src/assets/badges/brown/volleyball.png
Binary files differ
diff --git a/src/assets/images/badges/women_in_business.png b/src/assets/badges/brown/women_in_business.png
index 1a504676..1a504676 100644
--- a/src/assets/images/badges/women_in_business.png
+++ b/src/assets/badges/brown/women_in_business.png
Binary files differ
diff --git a/src/assets/images/badges/zeta_delta_xi.png b/src/assets/badges/brown/zeta_delta_xi.png
index 7880d2b7..7880d2b7 100644
--- a/src/assets/images/badges/zeta_delta_xi.png
+++ b/src/assets/badges/brown/zeta_delta_xi.png
Binary files differ
diff --git a/src/assets/badges/cornell/acacia.png b/src/assets/badges/cornell/acacia.png
new file mode 100644
index 00000000..2dc2b383
--- /dev/null
+++ b/src/assets/badges/cornell/acacia.png
Binary files differ
diff --git a/src/assets/badges/cornell/acapella.png b/src/assets/badges/cornell/acapella.png
new file mode 100644
index 00000000..2b56c9ad
--- /dev/null
+++ b/src/assets/badges/cornell/acapella.png
Binary files differ
diff --git a/src/assets/badges/cornell/aeta_phi_beta.png b/src/assets/badges/cornell/aeta_phi_beta.png
new file mode 100644
index 00000000..8816cac7
--- /dev/null
+++ b/src/assets/badges/cornell/aeta_phi_beta.png
Binary files differ
diff --git a/src/assets/badges/cornell/alpha_chi_omega.png b/src/assets/badges/cornell/alpha_chi_omega.png
new file mode 100644
index 00000000..304639ee
--- /dev/null
+++ b/src/assets/badges/cornell/alpha_chi_omega.png
Binary files differ
diff --git a/src/assets/badges/cornell/alpha_delta_phi.png b/src/assets/badges/cornell/alpha_delta_phi.png
new file mode 100644
index 00000000..89311e10
--- /dev/null
+++ b/src/assets/badges/cornell/alpha_delta_phi.png
Binary files differ
diff --git a/src/assets/badges/cornell/alpha_epsilon_phi.png b/src/assets/badges/cornell/alpha_epsilon_phi.png
new file mode 100644
index 00000000..e35d1b24
--- /dev/null
+++ b/src/assets/badges/cornell/alpha_epsilon_phi.png
Binary files differ
diff --git a/src/assets/badges/cornell/alpha_gamma_rho.png b/src/assets/badges/cornell/alpha_gamma_rho.png
new file mode 100644
index 00000000..1b1f88ae
--- /dev/null
+++ b/src/assets/badges/cornell/alpha_gamma_rho.png
Binary files differ
diff --git a/src/assets/badges/cornell/alpha_kappa_delta_phi.png b/src/assets/badges/cornell/alpha_kappa_delta_phi.png
new file mode 100644
index 00000000..cfc5b51c
--- /dev/null
+++ b/src/assets/badges/cornell/alpha_kappa_delta_phi.png
Binary files differ
diff --git a/src/assets/badges/cornell/alpha_phi.png b/src/assets/badges/cornell/alpha_phi.png
new file mode 100644
index 00000000..dcf5d391
--- /dev/null
+++ b/src/assets/badges/cornell/alpha_phi.png
Binary files differ
diff --git a/src/assets/badges/cornell/alpha_phi_alpha.png b/src/assets/badges/cornell/alpha_phi_alpha.png
new file mode 100644
index 00000000..4dde66b3
--- /dev/null
+++ b/src/assets/badges/cornell/alpha_phi_alpha.png
Binary files differ
diff --git a/src/assets/badges/cornell/alpha_sigma_phi.png b/src/assets/badges/cornell/alpha_sigma_phi.png
new file mode 100644
index 00000000..a63a6850
--- /dev/null
+++ b/src/assets/badges/cornell/alpha_sigma_phi.png
Binary files differ
diff --git a/src/assets/badges/cornell/alpha_xi_delta.png b/src/assets/badges/cornell/alpha_xi_delta.png
new file mode 100644
index 00000000..47f8108c
--- /dev/null
+++ b/src/assets/badges/cornell/alpha_xi_delta.png
Binary files differ
diff --git a/src/assets/badges/cornell/alpha_zeta.png b/src/assets/badges/cornell/alpha_zeta.png
new file mode 100644
index 00000000..1942f775
--- /dev/null
+++ b/src/assets/badges/cornell/alpha_zeta.png
Binary files differ
diff --git a/src/assets/badges/cornell/alphs_epsilon_pi.png b/src/assets/badges/cornell/alphs_epsilon_pi.png
new file mode 100644
index 00000000..0480edc2
--- /dev/null
+++ b/src/assets/badges/cornell/alphs_epsilon_pi.png
Binary files differ
diff --git a/src/assets/badges/cornell/baseball.png b/src/assets/badges/cornell/baseball.png
new file mode 100644
index 00000000..5643f9b8
--- /dev/null
+++ b/src/assets/badges/cornell/baseball.png
Binary files differ
diff --git a/src/assets/badges/cornell/basketball.png b/src/assets/badges/cornell/basketball.png
new file mode 100644
index 00000000..d2a8f04a
--- /dev/null
+++ b/src/assets/badges/cornell/basketball.png
Binary files differ
diff --git a/src/assets/badges/cornell/beta_theta_pi.png b/src/assets/badges/cornell/beta_theta_pi.png
new file mode 100644
index 00000000..ae09a5b6
--- /dev/null
+++ b/src/assets/badges/cornell/beta_theta_pi.png
Binary files differ
diff --git a/src/assets/badges/cornell/chi_phi.png b/src/assets/badges/cornell/chi_phi.png
new file mode 100644
index 00000000..199213c9
--- /dev/null
+++ b/src/assets/badges/cornell/chi_phi.png
Binary files differ
diff --git a/src/assets/badges/cornell/chi_psi.png b/src/assets/badges/cornell/chi_psi.png
new file mode 100644
index 00000000..e9ad6540
--- /dev/null
+++ b/src/assets/badges/cornell/chi_psi.png
Binary files differ
diff --git a/src/assets/badges/cornell/delta_chi.png b/src/assets/badges/cornell/delta_chi.png
new file mode 100644
index 00000000..116c1ae7
--- /dev/null
+++ b/src/assets/badges/cornell/delta_chi.png
Binary files differ
diff --git a/src/assets/badges/cornell/delta_delta_delta.png b/src/assets/badges/cornell/delta_delta_delta.png
new file mode 100644
index 00000000..93d92ce3
--- /dev/null
+++ b/src/assets/badges/cornell/delta_delta_delta.png
Binary files differ
diff --git a/src/assets/badges/cornell/delta_epsilon.png b/src/assets/badges/cornell/delta_epsilon.png
new file mode 100644
index 00000000..2f7ef7ca
--- /dev/null
+++ b/src/assets/badges/cornell/delta_epsilon.png
Binary files differ
diff --git a/src/assets/badges/cornell/delta_gamma.png b/src/assets/badges/cornell/delta_gamma.png
new file mode 100644
index 00000000..218ac7a6
--- /dev/null
+++ b/src/assets/badges/cornell/delta_gamma.png
Binary files differ
diff --git a/src/assets/badges/cornell/delta_kappa_epsilon.png b/src/assets/badges/cornell/delta_kappa_epsilon.png
new file mode 100644
index 00000000..12bd6e37
--- /dev/null
+++ b/src/assets/badges/cornell/delta_kappa_epsilon.png
Binary files differ
diff --git a/src/assets/badges/cornell/delta_sigma_theta.png b/src/assets/badges/cornell/delta_sigma_theta.png
new file mode 100644
index 00000000..d70d4220
--- /dev/null
+++ b/src/assets/badges/cornell/delta_sigma_theta.png
Binary files differ
diff --git a/src/assets/badges/cornell/delta_tau_delta.png b/src/assets/badges/cornell/delta_tau_delta.png
new file mode 100644
index 00000000..02011fc1
--- /dev/null
+++ b/src/assets/badges/cornell/delta_tau_delta.png
Binary files differ
diff --git a/src/assets/badges/cornell/fencing.png b/src/assets/badges/cornell/fencing.png
new file mode 100644
index 00000000..c2649533
--- /dev/null
+++ b/src/assets/badges/cornell/fencing.png
Binary files differ
diff --git a/src/assets/badges/cornell/field_hockey.png b/src/assets/badges/cornell/field_hockey.png
new file mode 100644
index 00000000..5405e392
--- /dev/null
+++ b/src/assets/badges/cornell/field_hockey.png
Binary files differ
diff --git a/src/assets/badges/cornell/football.png b/src/assets/badges/cornell/football.png
new file mode 100644
index 00000000..bcc44778
--- /dev/null
+++ b/src/assets/badges/cornell/football.png
Binary files differ
diff --git a/src/assets/badges/cornell/golf.png b/src/assets/badges/cornell/golf.png
new file mode 100644
index 00000000..92f8f394
--- /dev/null
+++ b/src/assets/badges/cornell/golf.png
Binary files differ
diff --git a/src/assets/badges/cornell/gymnastics.png b/src/assets/badges/cornell/gymnastics.png
new file mode 100644
index 00000000..2f6c4fae
--- /dev/null
+++ b/src/assets/badges/cornell/gymnastics.png
Binary files differ
diff --git a/src/assets/badges/cornell/hockey.png b/src/assets/badges/cornell/hockey.png
new file mode 100644
index 00000000..0d1f1294
--- /dev/null
+++ b/src/assets/badges/cornell/hockey.png
Binary files differ
diff --git a/src/assets/badges/cornell/kappa_alpha_theta.png b/src/assets/badges/cornell/kappa_alpha_theta.png
new file mode 100644
index 00000000..dadc7f86
--- /dev/null
+++ b/src/assets/badges/cornell/kappa_alpha_theta.png
Binary files differ
diff --git a/src/assets/badges/cornell/kappa_delta.png b/src/assets/badges/cornell/kappa_delta.png
new file mode 100644
index 00000000..1f9b4e06
--- /dev/null
+++ b/src/assets/badges/cornell/kappa_delta.png
Binary files differ
diff --git a/src/assets/badges/cornell/kappa_delta_rho.png b/src/assets/badges/cornell/kappa_delta_rho.png
new file mode 100644
index 00000000..c32c7c70
--- /dev/null
+++ b/src/assets/badges/cornell/kappa_delta_rho.png
Binary files differ
diff --git a/src/assets/badges/cornell/kappa_kappa_gamma.png b/src/assets/badges/cornell/kappa_kappa_gamma.png
new file mode 100644
index 00000000..7583ebfd
--- /dev/null
+++ b/src/assets/badges/cornell/kappa_kappa_gamma.png
Binary files differ
diff --git a/src/assets/badges/cornell/kappa_phi_lambda.png b/src/assets/badges/cornell/kappa_phi_lambda.png
new file mode 100644
index 00000000..f3dd4a49
--- /dev/null
+++ b/src/assets/badges/cornell/kappa_phi_lambda.png
Binary files differ
diff --git a/src/assets/badges/cornell/kappa_sigma.png b/src/assets/badges/cornell/kappa_sigma.png
new file mode 100644
index 00000000..7df2efa5
--- /dev/null
+++ b/src/assets/badges/cornell/kappa_sigma.png
Binary files differ
diff --git a/src/assets/badges/cornell/la_unidad_latina,_lambda.png b/src/assets/badges/cornell/la_unidad_latina,_lambda.png
new file mode 100644
index 00000000..f8017b9f
--- /dev/null
+++ b/src/assets/badges/cornell/la_unidad_latina,_lambda.png
Binary files differ
diff --git a/src/assets/badges/cornell/lacrosse.png b/src/assets/badges/cornell/lacrosse.png
new file mode 100644
index 00000000..100ae33b
--- /dev/null
+++ b/src/assets/badges/cornell/lacrosse.png
Binary files differ
diff --git a/src/assets/badges/cornell/lambda_chi_alpha.png b/src/assets/badges/cornell/lambda_chi_alpha.png
new file mode 100644
index 00000000..9360a226
--- /dev/null
+++ b/src/assets/badges/cornell/lambda_chi_alpha.png
Binary files differ
diff --git a/src/assets/badges/cornell/lambda_phi_epsilon_international.png b/src/assets/badges/cornell/lambda_phi_epsilon_international.png
new file mode 100644
index 00000000..f2721927
--- /dev/null
+++ b/src/assets/badges/cornell/lambda_phi_epsilon_international.png
Binary files differ
diff --git a/src/assets/badges/cornell/malik.png b/src/assets/badges/cornell/malik.png
new file mode 100644
index 00000000..ac221d24
--- /dev/null
+++ b/src/assets/badges/cornell/malik.png
Binary files differ
diff --git a/src/assets/badges/cornell/phi_beta_phi.png b/src/assets/badges/cornell/phi_beta_phi.png
new file mode 100644
index 00000000..8d46dd2e
--- /dev/null
+++ b/src/assets/badges/cornell/phi_beta_phi.png
Binary files differ
diff --git a/src/assets/badges/cornell/phi_beta_sigma.png b/src/assets/badges/cornell/phi_beta_sigma.png
new file mode 100644
index 00000000..49e636dc
--- /dev/null
+++ b/src/assets/badges/cornell/phi_beta_sigma.png
Binary files differ
diff --git a/src/assets/badges/cornell/phi_delta_theta.png b/src/assets/badges/cornell/phi_delta_theta.png
new file mode 100644
index 00000000..55ff15dc
--- /dev/null
+++ b/src/assets/badges/cornell/phi_delta_theta.png
Binary files differ
diff --git a/src/assets/badges/cornell/phi_kappa_tau.png b/src/assets/badges/cornell/phi_kappa_tau.png
new file mode 100644
index 00000000..b1c01ab1
--- /dev/null
+++ b/src/assets/badges/cornell/phi_kappa_tau.png
Binary files differ
diff --git a/src/assets/badges/cornell/phi_mu.png b/src/assets/badges/cornell/phi_mu.png
new file mode 100644
index 00000000..0049a584
--- /dev/null
+++ b/src/assets/badges/cornell/phi_mu.png
Binary files differ
diff --git a/src/assets/badges/cornell/phi_sigma_kappa.png b/src/assets/badges/cornell/phi_sigma_kappa.png
new file mode 100644
index 00000000..9249db92
--- /dev/null
+++ b/src/assets/badges/cornell/phi_sigma_kappa.png
Binary files differ
diff --git a/src/assets/badges/cornell/phi_sigma_sigma.png b/src/assets/badges/cornell/phi_sigma_sigma.png
new file mode 100644
index 00000000..889dc14f
--- /dev/null
+++ b/src/assets/badges/cornell/phi_sigma_sigma.png
Binary files differ
diff --git a/src/assets/badges/cornell/pi_delta_psi.png b/src/assets/badges/cornell/pi_delta_psi.png
new file mode 100644
index 00000000..164c4483
--- /dev/null
+++ b/src/assets/badges/cornell/pi_delta_psi.png
Binary files differ
diff --git a/src/assets/badges/cornell/pi_kappa_alpha.png b/src/assets/badges/cornell/pi_kappa_alpha.png
new file mode 100644
index 00000000..08a3153e
--- /dev/null
+++ b/src/assets/badges/cornell/pi_kappa_alpha.png
Binary files differ
diff --git a/src/assets/badges/cornell/pi_kappa_phi.png b/src/assets/badges/cornell/pi_kappa_phi.png
new file mode 100644
index 00000000..0a1dee58
--- /dev/null
+++ b/src/assets/badges/cornell/pi_kappa_phi.png
Binary files differ
diff --git a/src/assets/badges/cornell/polo.png b/src/assets/badges/cornell/polo.png
new file mode 100644
index 00000000..05758440
--- /dev/null
+++ b/src/assets/badges/cornell/polo.png
Binary files differ
diff --git a/src/assets/badges/cornell/rowing.png b/src/assets/badges/cornell/rowing.png
new file mode 100644
index 00000000..28e4436f
--- /dev/null
+++ b/src/assets/badges/cornell/rowing.png
Binary files differ
diff --git a/src/assets/badges/cornell/sailing.png b/src/assets/badges/cornell/sailing.png
new file mode 100644
index 00000000..ea8d3a11
--- /dev/null
+++ b/src/assets/badges/cornell/sailing.png
Binary files differ
diff --git a/src/assets/badges/cornell/sigma_alpha_mu.png b/src/assets/badges/cornell/sigma_alpha_mu.png
new file mode 100644
index 00000000..d05a8fed
--- /dev/null
+++ b/src/assets/badges/cornell/sigma_alpha_mu.png
Binary files differ
diff --git a/src/assets/badges/cornell/sigma_chi.png b/src/assets/badges/cornell/sigma_chi.png
new file mode 100644
index 00000000..0ca28bb3
--- /dev/null
+++ b/src/assets/badges/cornell/sigma_chi.png
Binary files differ
diff --git a/src/assets/badges/cornell/sigma_delta_tau.png b/src/assets/badges/cornell/sigma_delta_tau.png
new file mode 100644
index 00000000..f0863d8d
--- /dev/null
+++ b/src/assets/badges/cornell/sigma_delta_tau.png
Binary files differ
diff --git a/src/assets/badges/cornell/sigma_phi_society.png b/src/assets/badges/cornell/sigma_phi_society.png
new file mode 100644
index 00000000..478922c8
--- /dev/null
+++ b/src/assets/badges/cornell/sigma_phi_society.png
Binary files differ
diff --git a/src/assets/badges/cornell/sigma_pi.png b/src/assets/badges/cornell/sigma_pi.png
new file mode 100644
index 00000000..c5cb5ce3
--- /dev/null
+++ b/src/assets/badges/cornell/sigma_pi.png
Binary files differ
diff --git a/src/assets/badges/cornell/soccer.png b/src/assets/badges/cornell/soccer.png
new file mode 100644
index 00000000..e17d76de
--- /dev/null
+++ b/src/assets/badges/cornell/soccer.png
Binary files differ
diff --git a/src/assets/badges/cornell/softball.png b/src/assets/badges/cornell/softball.png
new file mode 100644
index 00000000..fda13c9a
--- /dev/null
+++ b/src/assets/badges/cornell/softball.png
Binary files differ
diff --git a/src/assets/badges/cornell/squash.png b/src/assets/badges/cornell/squash.png
new file mode 100644
index 00000000..5d6c3f0e
--- /dev/null
+++ b/src/assets/badges/cornell/squash.png
Binary files differ
diff --git a/src/assets/badges/cornell/swimming_&_diving.png b/src/assets/badges/cornell/swimming_&_diving.png
new file mode 100644
index 00000000..aed8f37e
--- /dev/null
+++ b/src/assets/badges/cornell/swimming_&_diving.png
Binary files differ
diff --git a/src/assets/badges/cornell/tennis.png b/src/assets/badges/cornell/tennis.png
new file mode 100644
index 00000000..24ea81e4
--- /dev/null
+++ b/src/assets/badges/cornell/tennis.png
Binary files differ
diff --git a/src/assets/badges/cornell/theta_delta_chi.png b/src/assets/badges/cornell/theta_delta_chi.png
new file mode 100644
index 00000000..7a2bf4e8
--- /dev/null
+++ b/src/assets/badges/cornell/theta_delta_chi.png
Binary files differ
diff --git a/src/assets/badges/cornell/track_&_field.png b/src/assets/badges/cornell/track_&_field.png
new file mode 100644
index 00000000..05644dc4
--- /dev/null
+++ b/src/assets/badges/cornell/track_&_field.png
Binary files differ
diff --git a/src/assets/badges/cornell/volleyball.png b/src/assets/badges/cornell/volleyball.png
new file mode 100644
index 00000000..9ea08622
--- /dev/null
+++ b/src/assets/badges/cornell/volleyball.png
Binary files differ
diff --git a/src/assets/badges/cornell/wrestling.png b/src/assets/badges/cornell/wrestling.png
new file mode 100644
index 00000000..28892124
--- /dev/null
+++ b/src/assets/badges/cornell/wrestling.png
Binary files differ
diff --git a/src/assets/badges/cornell/zeta_beta_tau.png b/src/assets/badges/cornell/zeta_beta_tau.png
new file mode 100644
index 00000000..4572bf01
--- /dev/null
+++ b/src/assets/badges/cornell/zeta_beta_tau.png
Binary files differ
diff --git a/src/assets/badges/cornell/zeta_phi_beta.png b/src/assets/badges/cornell/zeta_phi_beta.png
new file mode 100644
index 00000000..8816cac7
--- /dev/null
+++ b/src/assets/badges/cornell/zeta_phi_beta.png
Binary files differ
diff --git a/src/assets/badges/cornell/zeta_psi.png b/src/assets/badges/cornell/zeta_psi.png
new file mode 100644
index 00000000..ad245931
--- /dev/null
+++ b/src/assets/badges/cornell/zeta_psi.png
Binary files differ
diff --git a/src/assets/images/badges/brown_badge.png b/src/assets/images/badges/brown_badge.png
deleted file mode 100644
index bcffb6e3..00000000
--- a/src/assets/images/badges/brown_badge.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/universities/cornell-clicked.png b/src/assets/universities/cornell-clicked.png
new file mode 100644
index 00000000..d6450b29
--- /dev/null
+++ b/src/assets/universities/cornell-clicked.png
Binary files differ
diff --git a/src/assets/universities/cornell-search.png b/src/assets/universities/cornell-search.png
new file mode 100644
index 00000000..ce41e7bc
--- /dev/null
+++ b/src/assets/universities/cornell-search.png
Binary files differ
diff --git a/src/assets/universities/cornell.png b/src/assets/universities/cornell.png
new file mode 100644
index 00000000..bf15f8b2
--- /dev/null
+++ b/src/assets/universities/cornell.png
Binary files differ
diff --git a/src/components/onboarding/UniversitySelection.tsx b/src/components/onboarding/UniversitySelection.tsx
new file mode 100644
index 00000000..92bec47f
--- /dev/null
+++ b/src/components/onboarding/UniversitySelection.tsx
@@ -0,0 +1,97 @@
+import React from 'react';
+import {Image, ImageSourcePropType, StyleSheet, Text, View} from 'react-native';
+import {TouchableOpacity} from 'react-native-gesture-handler';
+import {UniversityType} from '../../types';
+import {normalize} from '../../utils';
+
+interface UniversitySelectionProps {
+ selected: UniversityType;
+ setSelected: (selected: UniversityType) => void;
+}
+
+const UniversitySelection: React.FC<UniversitySelectionProps> = ({
+ selected,
+ setSelected,
+}) => {
+ const crestData = [
+ {
+ imagePath: require('../../assets/universities/brown.png'),
+ title: 'Brown',
+ key: UniversityType.Brown,
+ },
+ {
+ imagePath: require('../../assets/universities/cornell.png'),
+ title: 'Cornell',
+ key: UniversityType.Cornell,
+ },
+ // {
+ // imagePath: require('../../assets/universities/harvard.png'),
+ // title: 'Harvard',
+ // key: UniversityType.Harvard,
+ // },
+ ];
+ const renderButton = (
+ imagePath: ImageSourcePropType,
+ title: string,
+ key: UniversityType,
+ ) => (
+ <TouchableOpacity
+ style={
+ selected === key ? styles.crestContainerSelected : styles.crestContainer
+ }
+ onPress={() => setSelected(key)}>
+ <Image source={imagePath} style={styles.crest} />
+ <Text style={styles.crestLabel}>{title}</Text>
+ </TouchableOpacity>
+ );
+ return (
+ <>
+ <Text style={styles.title}>University Badge</Text>
+ <View style={styles.container}>
+ {crestData.map((data) =>
+ renderButton(data.imagePath, data.title, data.key),
+ )}
+ </View>
+ </>
+ );
+};
+
+const styles = StyleSheet.create({
+ title: {
+ color: 'white',
+ fontSize: normalize(15),
+ lineHeight: normalize(18),
+ fontWeight: '700',
+ marginBottom: 10,
+ },
+ container: {
+ flexDirection: 'row',
+ justifyContent: 'space-around',
+ marginBottom: 10,
+ },
+ crest: {
+ height: normalize(25),
+ aspectRatio: 31 / 38,
+ marginBottom: 5,
+ },
+ crestContainer: {
+ alignItems: 'center',
+ padding: 10,
+ },
+ crestContainerSelected: {
+ alignItems: 'center',
+ borderWidth: 2,
+ borderColor: 'white',
+ borderRadius: 5,
+ padding: 8,
+ backgroundColor: '#fff2',
+ },
+ crestLabel: {
+ color: 'white',
+ fontSize: normalize(15),
+ lineHeight: normalize(18),
+ fontWeight: '500',
+ },
+});
+
+export default UniversitySelection;
diff --git a/src/components/onboarding/index.ts b/src/components/onboarding/index.ts
index b790933f..fdb85090 100644
--- a/src/components/onboarding/index.ts
+++ b/src/components/onboarding/index.ts
@@ -10,3 +10,4 @@ export {default as TaggDropDown} from './TaggDropDown';
export {default as SocialMediaLinker} from './SocialMediaLinker';
export {default as LinkSocialMedia} from './LinkSocialMedia';
export {default as MomentCategory} from './MomentCategory';
+export {default as UniversitySelection} from './UniversitySelection';
diff --git a/src/components/profile/ProfileHeader.tsx b/src/components/profile/ProfileHeader.tsx
index b5dda399..2c623c2b 100644
--- a/src/components/profile/ProfileHeader.tsx
+++ b/src/components/profile/ProfileHeader.tsx
@@ -24,7 +24,7 @@ const ProfileHeader: React.FC<ProfileHeaderProps> = ({
handleBlockUnblock,
}) => {
const {
- profile: {name = '', university_class = 2021} = {},
+ profile: {name = '', university_class = 2021, university},
user: {username: userXName = ''},
} = useSelector((state: RootState) =>
userXId ? state.userX[screenType][userXId] : state.user,
@@ -59,10 +59,7 @@ const ProfileHeader: React.FC<ProfileHeaderProps> = ({
)}
<View style={styles.friendsAndUniversity}>
<FriendsCount screenType={screenType} userXId={userXId} />
- <UniversityIcon
- university="brown"
- university_class={university_class}
- />
+ <UniversityIcon {...{university, university_class}} />
</View>
</View>
</View>
diff --git a/src/components/profile/ProfileMoreInfoDrawer.tsx b/src/components/profile/ProfileMoreInfoDrawer.tsx
index 2fec5cca..a77a2e84 100644
--- a/src/components/profile/ProfileMoreInfoDrawer.tsx
+++ b/src/components/profile/ProfileMoreInfoDrawer.tsx
@@ -24,11 +24,9 @@ const ProfileMoreInfoDrawer: React.FC<ProfileMoreInfoDrawerProps> = (props) => {
const {setIsOpen, userXId, isBlocked, handleBlockUnblock, userXName} = props;
const {
user: {userId, username},
- } = useSelector((state: RootState) => state.user);
+ profile,
+ } = useSelector((state: RootState) => state?.user);
const isOwnProfile = !userXId || userXName === username;
- const {suggested_people_linked} = useSelector(
- (state: RootState) => state.user.profile,
- );
const goToEditProfile = () => {
navigation.push('EditProfile', {
@@ -39,7 +37,7 @@ const ProfileMoreInfoDrawer: React.FC<ProfileMoreInfoDrawerProps> = (props) => {
};
const goToUpdateSPProfile = () => {
- if (suggested_people_linked === 0) {
+ if (profile.suggested_people_linked === 0) {
Alert.alert(ERROR_ATTEMPT_EDIT_SP);
} else {
// Sending undefined for updatedSelectedBadges to mark that there was no update yet
diff --git a/src/components/profile/UniversityIcon.tsx b/src/components/profile/UniversityIcon.tsx
index 48cfe3dc..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 {getUniversityBadge, getUniversityClass, normalize} from '../../utils';
+import {UniversityType} from '../../types';
export interface UniversityIconProps extends ViewProps {
- university: string;
+ university: UniversityType;
university_class?: number;
imageStyle?: StyleProp<ImageStyle>;
}
@@ -18,19 +19,12 @@ const UniversityIcon: React.FC<UniversityIconProps> = ({
university_class,
imageStyle,
}) => {
- var universityIcon;
- switch (university) {
- 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 62bda77e..4824b56f 100644
--- a/src/components/search/SearchBar.tsx
+++ b/src/components/search/SearchBar.tsx
@@ -1,19 +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 {getSearchSuggestions, SCREEN_HEIGHT} from '../../utils';
const AnimatedIcon = Animated.createAnimatedComponent(Icon);
@@ -37,9 +39,10 @@ const SearchBar: React.FC<SearchBarProps> = ({
e.preventDefault();
Keyboard.dismiss();
};
+ 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();
+ const SEARCH_SUGGESTIONS: string[] = getSearchSuggestions(university);
/*
* index & id of current placeholder, used in selecting next placeholder. -1
* indicates DEFAULT_PLACEHOLDER. TODO: make it appear more random by tracking
diff --git a/src/components/search/SearchResultCell.tsx b/src/components/search/SearchResultCell.tsx
index 9a8216e5..5a6ea110 100644
--- a/src/components/search/SearchResultCell.tsx
+++ b/src/components/search/SearchResultCell.tsx
@@ -2,7 +2,7 @@ import {useNavigation} from '@react-navigation/native';
import React, {useEffect, useState} from 'react';
import {Alert, Image, StyleSheet, Text, View} from 'react-native';
import {TouchableOpacity} from 'react-native-gesture-handler';
-import {useDispatch, useStore} from 'react-redux';
+import {useDispatch, useSelector, useStore} from 'react-redux';
import {ERROR_UNABLE_TO_VIEW_PROFILE} from '../../constants/strings';
import {loadImageFromURL} from '../../services';
import {RootState} from '../../store/rootReducer';
@@ -10,11 +10,13 @@ import {
CategoryPreviewType,
ProfilePreviewType,
ScreenType,
+ UniversityType,
UserType,
} from '../../types';
import {
addCategoryToRecentlySearched,
addUserToRecentlySearched,
+ getUniversityBadge,
normalize,
SCREEN_WIDTH,
} from '../../utils';
@@ -43,6 +45,9 @@ const SearchResultsCell: React.FC<SearchResults> = ({
loggedInUser,
}) => {
const [avatar, setAvatar] = useState<string | undefined>(undefined);
+
+ const {university} = useSelector((state: RootState) => state.user.profile);
+
useEffect(() => {
(async () => {
if (thumbnail_url !== undefined) {
@@ -143,17 +148,17 @@ const SearchResultsCell: React.FC<SearchResults> = ({
return require('../../assets/images/search.png');
};
- const universityIcon = () => {
- return require('../../assets/images/bwbadges.png');
- };
-
const categoryCell = () => {
return (
<TouchableOpacity style={styles.cellContainer} onPress={onPressCategory}>
<View style={[styles.imageContainer, styles.categoryBackground]}>
<Image
resizeMode="contain"
- source={category === 'Brown' ? universityIcon() : searchIcon()}
+ source={
+ category in UniversityType
+ ? getUniversityBadge(university, 'Search')
+ : searchIcon()
+ }
style={styles.categoryImage}
/>
</View>
diff --git a/src/components/suggestedPeople/BadgesDropdown.tsx b/src/components/suggestedPeople/BadgesDropdown.tsx
index 99c03057..bc4e7a54 100644
--- a/src/components/suggestedPeople/BadgesDropdown.tsx
+++ b/src/components/suggestedPeople/BadgesDropdown.tsx
@@ -4,11 +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 {UniversityBadge} from 'src/types';
+import {UniversityType, UniversityBadge} from '../../types';
import {UniversityIcon} from '..';
import {normalize, SCREEN_WIDTH} from '../../utils';
import UniversityIconClicked from './UniversityIconClicked';
interface BadgesDropdownProps {
+ university: UniversityType;
localBadges: {
badge: UniversityBadge;
img: string;
@@ -17,6 +18,7 @@ interface BadgesDropdownProps {
}
const BadgesDropdown: React.FC<BadgesDropdownProps> = ({
+ university,
localBadges,
badges,
}) => {
@@ -81,13 +83,13 @@ const BadgesDropdown: React.FC<BadgesDropdownProps> = ({
}}>
{displayBadges ? (
<UniversityIconClicked
- university="brown"
+ university={university}
style={styles.universityIconContainer}
imageStyle={{width: normalize(31), height: normalize(38)}}
/>
) : (
<UniversityIcon
- university="brown"
+ university={university}
style={styles.universityIconContainer}
imageStyle={{width: normalize(31), height: normalize(38)}}
/>
diff --git a/src/components/suggestedPeople/UniversityIconClicked.tsx b/src/components/suggestedPeople/UniversityIconClicked.tsx
index bde4e17f..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 {UniversityType} from '../../types';
export interface UniversityIconClickedProps extends ViewProps {
- university: string;
+ university: UniversityType;
university_class?: number;
imageStyle?: StyleProp<ImageStyle>;
}
@@ -20,7 +20,10 @@ const UniversityIconClicked: React.FC<UniversityIconClickedProps> = ({
}) => {
var universityIcon;
switch (university) {
- case 'brown':
+ case UniversityType.Cornell:
+ universityIcon = require('../../assets/universities/cornell-clicked.png');
+ break;
+ 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 6dc7ccf2..93d0eec0 100644
--- a/src/constants/badges.ts
+++ b/src/constants/badges.ts
@@ -1,93 +1,171 @@
-export const _badgeImages = {
- acapella: require('../assets/images/badges/acapella.png'),
- alpha_chi_omega: require('../assets/images/badges/alpha_chi_omega.png'),
- alpha_delta_phi: require('../assets/images/badges/alpha_delta_phi.png'),
- baseball: require('../assets/images/badges/baseball.png'),
- basketball: require('../assets/images/badges/basketball.png'),
- beta_rho_pi: require('../assets/images/badges/beta_rho_pi.png'),
- black_in_business: require('../assets/images/badges/black_in_business.png'),
- brown_band: require('../assets/images/badges/brown_band.png'),
- brown_class_board: require('../assets/images/badges/brown_class_board.png'),
- brown_cs: require('../assets/images/badges/brown_cs.png'),
- brown_democrats: require('../assets/images/badges/brown_democrats.png'),
- brown_ep: require('../assets/images/badges/brown_ep.png'),
- brown_womens_collective: require('../assets/images/badges/brown_womens_collective.png'),
- bsu: require('../assets/images/badges/bsu.png'),
- buxton_international: require('../assets/images/badges/buxton_international.png'),
- delta_gamma: require('../assets/images/badges/delta_gamma.png'),
- delta_tau: require('../assets/images/badges/delta_tau.png'),
- fashion_at_brown: require('../assets/images/badges/fashion_at_brown.png'),
- field_hockey: require('../assets/images/badges/field_hockey.png'),
- football: require('../assets/images/badges/football.png'),
- gymnastics: require('../assets/images/badges/gymnastics.png'),
- hockey: require('../assets/images/badges/hockey.png'),
- impulse: require('../assets/images/badges/impulse.png'),
- kappa_delta: require('../assets/images/badges/kappa_delta.png'),
- lacrosse: require('../assets/images/badges/lacrosse.png'),
- latin_at_brown: require('../assets/images/badges/latin_at_brown.png'),
- soccer: require('../assets/images/badges/soccer.png'),
- softball: require('../assets/images/badges/softball.png'),
- tap: require('../assets/images/badges/tap.png'),
- tennis: require('../assets/images/badges/tennis.png'),
- theta_alpha: require('../assets/images/badges/theta_alpha.png'),
- track: require('../assets/images/badges/track.png'),
- ucs: require('../assets/images/badges/ucs.png'),
- volleyball: require('../assets/images/badges/volleyball.png'),
- women_in_business: require('../assets/images/badges/women_in_business.png'),
- zeta_delta_xi: require('../assets/images/badges/zeta_delta_xi.png'),
+import {BadgeDataType} from '../types';
+
+export const _brownBadgeImages = {
+ acapella: require('../assets/badges/brown/acapella.png'),
+ alpha_chi_omega: require('../assets/badges/brown/alpha_chi_omega.png'),
+ alpha_delta_phi: require('../assets/badges/brown/alpha_delta_phi.png'),
+ baseball: require('../assets/badges/brown/baseball.png'),
+ basketball: require('../assets/badges/brown/basketball.png'),
+ beta_rho_pi: require('../assets/badges/brown/beta_rho_pi.png'),
+ black_in_business: require('../assets/badges/brown/black_in_business.png'),
+ brown_band: require('../assets/badges/brown/brown_band.png'),
+ brown_class_board: require('../assets/badges/brown/brown_class_board.png'),
+ brown_cs: require('../assets/badges/brown/brown_cs.png'),
+ brown_democrats: require('../assets/badges/brown/brown_democrats.png'),
+ brown_ep: require('../assets/badges/brown/brown_ep.png'),
+ brown_womens_collective: require('../assets/badges/brown/brown_womens_collective.png'),
+ bsu: require('../assets/badges/brown/bsu.png'),
+ buxton_international: require('../assets/badges/brown/buxton_international.png'),
+ delta_gamma: require('../assets/badges/brown/delta_gamma.png'),
+ delta_tau: require('../assets/badges/brown/delta_tau.png'),
+ fashion_at_brown: require('../assets/badges/brown/fashion_at_brown.png'),
+ field_hockey: require('../assets/badges/brown/field_hockey.png'),
+ football: require('../assets/badges/brown/football.png'),
+ gymnastics: require('../assets/badges/brown/gymnastics.png'),
+ hockey: require('../assets/badges/brown/hockey.png'),
+ impulse: require('../assets/badges/brown/impulse.png'),
+ kappa_delta: require('../assets/badges/brown/kappa_delta.png'),
+ lacrosse: require('../assets/badges/brown/lacrosse.png'),
+ latin_at_brown: require('../assets/badges/brown/latin_at_brown.png'),
+ soccer: require('../assets/badges/brown/soccer.png'),
+ softball: require('../assets/badges/brown/softball.png'),
+ tap: require('../assets/badges/brown/tap.png'),
+ tennis: require('../assets/badges/brown/tennis.png'),
+ theta_alpha: require('../assets/badges/brown/theta_alpha.png'),
+ track: require('../assets/badges/brown/track.png'),
+ ucs: require('../assets/badges/brown/ucs.png'),
+ volleyball: require('../assets/badges/brown/volleyball.png'),
+ women_in_business: require('../assets/badges/brown/women_in_business.png'),
+ zeta_delta_xi: require('../assets/badges/brown/zeta_delta_xi.png'),
+};
+
+export const _cornellBadgeImages = {
+ acacia: require('../assets/badges/cornell/acacia.png'),
+ acapella: require('../assets/badges/cornell/acapella.png'),
+ aeta_phi_beta: require('../assets/badges/cornell/aeta_phi_beta.png'),
+ alpha_chi_omega: require('../assets/badges/cornell/alpha_chi_omega.png'),
+ alpha_delta_phi: require('../assets/badges/cornell/alpha_delta_phi.png'),
+ alpha_epsilon_phi: require('../assets/badges/cornell/alpha_epsilon_phi.png'),
+ alpha_gamma_rho: require('../assets/badges/cornell/alpha_gamma_rho.png'),
+ alpha_kappa_delta_phi: require('../assets/badges/cornell/alpha_kappa_delta_phi.png'),
+ alpha_phi_alpha: require('../assets/badges/cornell/alpha_phi_alpha.png'),
+ alpha_phi: require('../assets/badges/cornell/alpha_phi.png'),
+ alpha_sigma_phi: require('../assets/badges/cornell/alpha_sigma_phi.png'),
+ alpha_xi_delta: require('../assets/badges/cornell/alpha_xi_delta.png'),
+ alpha_zeta: require('../assets/badges/cornell/alpha_zeta.png'),
+ alphs_epsilon_pi: require('../assets/badges/cornell/alphs_epsilon_pi.png'),
+ baseball: require('../assets/badges/cornell/baseball.png'),
+ basketball: require('../assets/badges/cornell/basketball.png'),
+ beta_theta_pi: require('../assets/badges/cornell/beta_theta_pi.png'),
+ chi_phi: require('../assets/badges/cornell/chi_phi.png'),
+ chi_psi: require('../assets/badges/cornell/chi_psi.png'),
+ delta_chi: require('../assets/badges/cornell/delta_chi.png'),
+ delta_delta_delta: require('../assets/badges/cornell/delta_delta_delta.png'),
+ delta_epsilon: require('../assets/badges/cornell/delta_epsilon.png'),
+ delta_gamma: require('../assets/badges/cornell/delta_gamma.png'),
+ delta_kappa_epsilon: require('../assets/badges/cornell/delta_kappa_epsilon.png'),
+ delta_sigma_theta: require('../assets/badges/cornell/delta_sigma_theta.png'),
+ delta_tau_delta: require('../assets/badges/cornell/delta_tau_delta.png'),
+ fencing: require('../assets/badges/cornell/fencing.png'),
+ field_hockey: require('../assets/badges/cornell/field_hockey.png'),
+ football: require('../assets/badges/cornell/football.png'),
+ golf: require('../assets/badges/cornell/golf.png'),
+ gymnastics: require('../assets/badges/cornell/gymnastics.png'),
+ hockey: require('../assets/badges/cornell/hockey.png'),
+ kappa_alpha_theta: require('../assets/badges/cornell/kappa_alpha_theta.png'),
+ kappa_delta_rho: require('../assets/badges/cornell/kappa_delta_rho.png'),
+ kappa_delta: require('../assets/badges/cornell/kappa_delta.png'),
+ kappa_kappa_gamma: require('../assets/badges/cornell/kappa_kappa_gamma.png'),
+ kappa_phi_lambda: require('../assets/badges/cornell/kappa_phi_lambda.png'),
+ kappa_sigma: require('../assets/badges/cornell/kappa_sigma.png'),
+ la_unidad_latina_lambda: require('../assets/badges/cornell/la_unidad_latina,_lambda.png'),
+ lacrosse: require('../assets/badges/cornell/lacrosse.png'),
+ lambda_chi_alpha: require('../assets/badges/cornell/lambda_chi_alpha.png'),
+ lambda_phi_epsilon_international: require('../assets/badges/cornell/lambda_phi_epsilon_international.png'),
+ malik: require('../assets/badges/cornell/malik.png'),
+ phi_beta_phi: require('../assets/badges/cornell/phi_beta_phi.png'),
+ phi_beta_sigma: require('../assets/badges/cornell/phi_beta_sigma.png'),
+ phi_delta_theta: require('../assets/badges/cornell/phi_delta_theta.png'),
+ phi_kappa_tau: require('../assets/badges/cornell/phi_kappa_tau.png'),
+ phi_mu: require('../assets/badges/cornell/phi_mu.png'),
+ phi_sigma_kappa: require('../assets/badges/cornell/phi_sigma_kappa.png'),
+ phi_sigma_sigma: require('../assets/badges/cornell/phi_sigma_sigma.png'),
+ pi_delta_psi: require('../assets/badges/cornell/pi_delta_psi.png'),
+ pi_kappa_alpha: require('../assets/badges/cornell/pi_kappa_alpha.png'),
+ pi_kappa_phi: require('../assets/badges/cornell/pi_kappa_phi.png'),
+ polo: require('../assets/badges/cornell/polo.png'),
+ rowing: require('../assets/badges/cornell/rowing.png'),
+ sailing: require('../assets/badges/cornell/sailing.png'),
+ sigma_alpha_mu: require('../assets/badges/cornell/sigma_alpha_mu.png'),
+ sigma_chi: require('../assets/badges/cornell/sigma_chi.png'),
+ sigma_delta_tau: require('../assets/badges/cornell/sigma_delta_tau.png'),
+ sigma_phi_society: require('../assets/badges/cornell/sigma_phi_society.png'),
+ sigma_pi: require('../assets/badges/cornell/sigma_pi.png'),
+ soccer: require('../assets/badges/cornell/soccer.png'),
+ softball: require('../assets/badges/cornell/softball.png'),
+ squash: require('../assets/badges/cornell/squash.png'),
+ swimming_and_diving: require('../assets/badges/cornell/swimming_&_diving.png'),
+ tennis: require('../assets/badges/cornell/tennis.png'),
+ theta_delta_chi: require('../assets/badges/cornell/theta_delta_chi.png'),
+ track_and_field: require('../assets/badges/cornell/track_&_field.png'),
+ volleyball: require('../assets/badges/cornell/volleyball.png'),
+ wrestling: require('../assets/badges/cornell/wrestling.png'),
+ zeta_beta_tau: require('../assets/badges/cornell/zeta_beta_tau.png'),
+ zeta_psi: require('../assets/badges/cornell/zeta_psi.png'),
+ zeta_phi_beta: require('../assets/badges/cornell/zeta_phi_beta.png'),
};
-export const BADGE_DATA = [
+const _brownBadges = [
{
title: 'Athletics',
data: [
{
badgeName: 'Brown Football',
- badgeImage: _badgeImages.football,
+ badgeImage: _brownBadgeImages.football,
},
{
badgeName: 'Brown Track',
- badgeImage: _badgeImages.track,
+ badgeImage: _brownBadgeImages.track,
},
{
badgeName: 'Brown Soccer',
- badgeImage: _badgeImages.soccer,
+ badgeImage: _brownBadgeImages.soccer,
},
{
badgeName: 'Brown Volleyball',
- badgeImage: _badgeImages.volleyball,
+ badgeImage: _brownBadgeImages.volleyball,
},
{
badgeName: 'Brown Lacrosse',
- badgeImage: _badgeImages.lacrosse,
+ badgeImage: _brownBadgeImages.lacrosse,
},
{
badgeName: 'Brown Basketball',
- badgeImage: _badgeImages.basketball,
+ badgeImage: _brownBadgeImages.basketball,
},
{
badgeName: 'Brown Field Hockey',
- badgeImage: _badgeImages.field_hockey,
+ badgeImage: _brownBadgeImages.field_hockey,
},
{
badgeName: 'Brown Gymnastics',
- badgeImage: _badgeImages.gymnastics,
+ badgeImage: _brownBadgeImages.gymnastics,
},
{
badgeName: 'Brown Tennis',
- badgeImage: _badgeImages.tennis,
+ badgeImage: _brownBadgeImages.tennis,
},
{
badgeName: 'Brown Hockey',
- badgeImage: _badgeImages.hockey,
+ badgeImage: _brownBadgeImages.hockey,
},
{
badgeName: 'Brown Softball',
- badgeImage: _badgeImages.softball,
+ badgeImage: _brownBadgeImages.softball,
},
{
badgeName: 'Brown Baseball',
- badgeImage: _badgeImages.baseball,
+ badgeImage: _brownBadgeImages.baseball,
},
],
},
@@ -97,11 +175,11 @@ export const BADGE_DATA = [
data: [
{
badgeName: 'Brown Class Board',
- badgeImage: _badgeImages.brown_class_board,
+ badgeImage: _brownBadgeImages.brown_class_board,
},
{
badgeName: 'UCS',
- badgeImage: _badgeImages.ucs,
+ badgeImage: _brownBadgeImages.ucs,
},
],
},
@@ -110,15 +188,15 @@ export const BADGE_DATA = [
data: [
{
badgeName: 'Latin @ Brown',
- badgeImage: _badgeImages.latin_at_brown,
+ badgeImage: _brownBadgeImages.latin_at_brown,
},
{
badgeName: 'Buxton/International',
- badgeImage: _badgeImages.buxton_international,
+ badgeImage: _brownBadgeImages.buxton_international,
},
{
badgeName: 'BSU',
- badgeImage: _badgeImages.bsu,
+ badgeImage: _brownBadgeImages.bsu,
},
],
},
@@ -127,23 +205,23 @@ export const BADGE_DATA = [
data: [
{
badgeName: 'Kappa Delta',
- badgeImage: _badgeImages.kappa_delta,
+ badgeImage: _brownBadgeImages.kappa_delta,
},
{
badgeName: "Brown Women's Collective",
- badgeImage: _badgeImages.brown_womens_collective,
+ badgeImage: _brownBadgeImages.brown_womens_collective,
},
{
badgeName: 'Alpha Delta Phi',
- badgeImage: _badgeImages.alpha_delta_phi,
+ badgeImage: _brownBadgeImages.alpha_delta_phi,
},
{
badgeName: 'Alpha Chi Omega',
- badgeImage: _badgeImages.alpha_chi_omega,
+ badgeImage: _brownBadgeImages.alpha_chi_omega,
},
{
badgeName: 'Delta Gamma',
- badgeImage: _badgeImages.delta_gamma,
+ badgeImage: _brownBadgeImages.delta_gamma,
},
],
},
@@ -153,19 +231,19 @@ export const BADGE_DATA = [
data: [
{
badgeName: 'Beta Rho Pi',
- badgeImage: _badgeImages.beta_rho_pi,
+ badgeImage: _brownBadgeImages.beta_rho_pi,
},
{
badgeName: 'Delta Tau',
- badgeImage: _badgeImages.delta_tau,
+ badgeImage: _brownBadgeImages.delta_tau,
},
{
badgeName: 'Theta Alpha',
- badgeImage: _badgeImages.theta_alpha,
+ badgeImage: _brownBadgeImages.theta_alpha,
},
{
badgeName: 'Zeta Delta Xi',
- badgeImage: _badgeImages.zeta_delta_xi,
+ badgeImage: _brownBadgeImages.zeta_delta_xi,
},
],
},
@@ -174,19 +252,19 @@ export const BADGE_DATA = [
data: [
{
badgeName: 'Acapella',
- badgeImage: _badgeImages.acapella,
+ badgeImage: _brownBadgeImages.acapella,
},
{
badgeName: 'Taps',
- badgeImage: _badgeImages.tap,
+ badgeImage: _brownBadgeImages.tap,
},
{
badgeName: 'Fashion @ Brown',
- badgeImage: _badgeImages.fashion_at_brown,
+ badgeImage: _brownBadgeImages.fashion_at_brown,
},
{
badgeName: 'Impulse',
- badgeImage: _badgeImages.impulse,
+ badgeImage: _brownBadgeImages.impulse,
},
],
},
@@ -195,20 +273,229 @@ export const BADGE_DATA = [
data: [
{
badgeName: 'Brown EP',
- badgeImage: _badgeImages.brown_ep,
+ badgeImage: _brownBadgeImages.brown_ep,
},
{
badgeName: 'Black in Business',
- badgeImage: _badgeImages.black_in_business,
+ badgeImage: _brownBadgeImages.black_in_business,
},
{
badgeName: 'Women in Business',
- badgeImage: _badgeImages.women_in_business,
+ badgeImage: _brownBadgeImages.women_in_business,
},
{
badgeName: 'Brown CS',
- badgeImage: _badgeImages.brown_cs,
+ badgeImage: _brownBadgeImages.brown_cs,
+ },
+ ],
+ },
+];
+
+const _cornellBadges = [
+ {
+ title: 'Athletics',
+ data: [
+ {badgeName: 'Football', badgeImage: _cornellBadgeImages.football},
+ {
+ badgeName: 'Track & Field',
+ badgeImage: _cornellBadgeImages.track_and_field,
+ },
+ {badgeName: 'Soccer', badgeImage: _cornellBadgeImages.soccer},
+ {badgeName: 'Volleyball', badgeImage: _cornellBadgeImages.volleyball},
+ {badgeName: 'Lacrosse', badgeImage: _cornellBadgeImages.lacrosse},
+ {badgeName: 'Basketball', badgeImage: _cornellBadgeImages.basketball},
+ {
+ badgeName: 'Field hockey',
+ badgeImage: _cornellBadgeImages.field_hockey,
+ },
+ {badgeName: 'Gymnastics', badgeImage: _cornellBadgeImages.gymnastics},
+ {badgeName: 'Tennis', badgeImage: _cornellBadgeImages.tennis},
+ {badgeName: 'Hockey', badgeImage: _cornellBadgeImages.hockey},
+ {badgeName: 'Softball', badgeImage: _cornellBadgeImages.softball},
+ {badgeName: 'Baseball', badgeImage: _cornellBadgeImages.baseball},
+ {badgeName: 'Sailing', badgeImage: _cornellBadgeImages.sailing},
+ {badgeName: 'Golf', badgeImage: _cornellBadgeImages.golf},
+ {badgeName: 'Wrestling', badgeImage: _cornellBadgeImages.wrestling},
+ {badgeName: 'Squash', badgeImage: _cornellBadgeImages.squash},
+ {badgeName: 'Rowing', badgeImage: _cornellBadgeImages.rowing},
+ {badgeName: 'Polo', badgeImage: _cornellBadgeImages.polo},
+ {
+ badgeName: 'Swimming & Diving',
+ badgeImage: _cornellBadgeImages.swimming_and_diving,
+ },
+ {badgeName: 'Fencing', badgeImage: _cornellBadgeImages.fencing},
+ ],
+ },
+ {
+ title: 'Fraternities',
+ data: [
+ {badgeName: 'Acacia', badgeImage: _cornellBadgeImages.acacia},
+ {
+ badgeName: 'Alpha Delta Phi',
+ badgeImage: _cornellBadgeImages.alpha_delta_phi,
+ },
+ {
+ badgeName: 'Alpha Epsilon Pi',
+ badgeImage: _cornellBadgeImages.alpha_epsilon_phi,
+ },
+ {
+ badgeName: 'Alpha Gamma Rho',
+ badgeImage: _cornellBadgeImages.alpha_gamma_rho,
+ },
+ {
+ badgeName: 'Alpha Sigma Phi',
+ badgeImage: _cornellBadgeImages.alpha_sigma_phi,
+ },
+ {badgeName: 'Alpha Zeta', badgeImage: _cornellBadgeImages.alpha_zeta},
+ {
+ badgeName: 'Beta Theta Pi',
+ badgeImage: _cornellBadgeImages.beta_theta_pi,
+ },
+ {badgeName: 'Chi Phi', badgeImage: _cornellBadgeImages.chi_phi},
+ {badgeName: 'Chi Psi', badgeImage: _cornellBadgeImages.chi_psi},
+ {badgeName: 'Delta Chi', badgeImage: _cornellBadgeImages.delta_chi},
+ {
+ badgeName: 'Delta Kappa Epsilon',
+ badgeImage: _cornellBadgeImages.delta_kappa_epsilon,
+ },
+ {
+ badgeName: 'Delta Tau Delta',
+ badgeImage: _cornellBadgeImages.delta_tau_delta,
+ },
+ {
+ badgeName: 'Delta Epsilon',
+ badgeImage: _cornellBadgeImages.delta_epsilon,
+ },
+ {
+ badgeName: 'Kappa Delta Rho',
+ badgeImage: _cornellBadgeImages.kappa_delta_rho,
+ },
+ {badgeName: 'Kappa Sigma', badgeImage: _cornellBadgeImages.kappa_sigma},
+ {
+ badgeName: 'Lambda Chi Alpha',
+ badgeImage: _cornellBadgeImages.lambda_chi_alpha,
+ },
+ {
+ badgeName: 'Phi Delta Theta',
+ badgeImage: _cornellBadgeImages.phi_delta_theta,
+ },
+ {
+ badgeName: 'Phi Kappa Tau',
+ badgeImage: _cornellBadgeImages.phi_kappa_tau,
+ },
+ {
+ badgeName: 'Phi Sigma Kappa',
+ badgeImage: _cornellBadgeImages.phi_sigma_kappa,
+ },
+ {
+ badgeName: 'Pi Kappa Alpha',
+ badgeImage: _cornellBadgeImages.pi_kappa_alpha,
+ },
+ {badgeName: 'Pi Kappa Phi', badgeImage: _cornellBadgeImages.pi_kappa_phi},
+ {
+ badgeName: 'Sigma Alpha Mu',
+ badgeImage: _cornellBadgeImages.sigma_alpha_mu,
+ },
+ {badgeName: 'Sigma Chi', badgeImage: _cornellBadgeImages.sigma_chi},
+ {
+ badgeName: 'Sigma Phi Society',
+ badgeImage: _cornellBadgeImages.sigma_phi_society,
+ },
+ {badgeName: 'Sigma Pi', badgeImage: _cornellBadgeImages.sigma_pi},
+ {
+ badgeName: 'Theta Delta Chi',
+ badgeImage: _cornellBadgeImages.theta_delta_chi,
+ },
+ {
+ badgeName: 'Zeta Beta Tau',
+ badgeImage: _cornellBadgeImages.zeta_beta_tau,
+ },
+ {badgeName: 'Zeta Psi', badgeImage: _cornellBadgeImages.zeta_psi},
+ {
+ badgeName: 'Alpha Phi Alpha',
+ badgeImage: _cornellBadgeImages.alpha_phi_alpha,
+ },
+ {
+ badgeName: 'Lambda Phi Epsilon International',
+ badgeImage: _cornellBadgeImages.lambda_phi_epsilon_international,
+ },
+ {
+ badgeName: 'La Unidad Latina, Lambda',
+ badgeImage: _cornellBadgeImages.la_unidad_latina_lambda,
+ },
+ {badgeName: 'MALIK', badgeImage: _cornellBadgeImages.malik},
+ {
+ badgeName: 'Phi Beta Sigma',
+ badgeImage: _cornellBadgeImages.phi_beta_sigma,
+ },
+ {
+ badgeName: 'Pi Delta Psi',
+ badgeImage: _cornellBadgeImages.pi_delta_psi,
+ },
+ ],
+ },
+ {
+ title: 'Sororities',
+ data: [
+ {
+ badgeName: 'alpha Kappa Delta Phi',
+ badgeImage: _cornellBadgeImages.alpha_kappa_delta_phi,
+ },
+ {
+ badgeName: 'Delta Sigma Theta',
+ badgeImage: _cornellBadgeImages.delta_sigma_theta,
+ },
+ {
+ badgeName: 'Kappa Phi Lambda',
+ badgeImage: _cornellBadgeImages.kappa_phi_lambda,
+ },
+ {
+ badgeName: 'Zeta Phi Beta',
+ badgeImage: _cornellBadgeImages.zeta_phi_beta,
+ },
+ {
+ badgeName: 'Alpha Chi Omega',
+ badgeImage: _cornellBadgeImages.alpha_chi_omega,
+ },
+ {
+ badgeName: 'Alpha Epsilon Phi',
+ badgeImage: _cornellBadgeImages.alpha_epsilon_phi,
+ },
+ {badgeName: 'Alpha Phi', badgeImage: _cornellBadgeImages.alpha_phi},
+ {
+ badgeName: 'Alpha Xi Delta',
+ badgeImage: _cornellBadgeImages.alpha_xi_delta,
+ },
+ {
+ badgeName: 'Delta Delta Delta',
+ badgeImage: _cornellBadgeImages.delta_delta_delta,
+ },
+ {badgeName: 'Delta Gamma', badgeImage: _cornellBadgeImages.delta_gamma},
+ {
+ badgeName: 'Kappa Alpha Theta',
+ badgeImage: _cornellBadgeImages.kappa_alpha_theta,
+ },
+ {badgeName: 'Kappa Delta', badgeImage: _cornellBadgeImages.kappa_delta},
+ {
+ badgeName: 'Kappa Kappa Gamma',
+ badgeImage: _cornellBadgeImages.kappa_kappa_gamma,
+ },
+ {badgeName: 'Phi Mu', badgeImage: _cornellBadgeImages.phi_mu},
+ {
+ badgeName: 'Phi Sigma Sigma',
+ badgeImage: _cornellBadgeImages.phi_sigma_sigma,
+ },
+ {badgeName: 'Phi Beta Phi', badgeImage: _cornellBadgeImages.phi_beta_phi},
+ {
+ badgeName: 'Sigma Delta Tau',
+ badgeImage: _cornellBadgeImages.sigma_delta_tau,
},
],
},
];
+
+export const BADGE_DATA: BadgeDataType = {
+ 'Brown University': _brownBadges,
+ 'Cornell University': _cornellBadges,
+ '': [],
+};
diff --git a/src/constants/strings.ts b/src/constants/strings.ts
index fa1aeb25..019d0bea 100644
--- a/src/constants/strings.ts
+++ b/src/constants/strings.ts
@@ -6,6 +6,7 @@ export const ADD_COMMENT_TEXT = (username?: string) => username ? `Reply to ${us
export const COMING_SOON_MSG = 'Creating more fun things for you, surprises coming soon πŸ˜‰';
export const ERROR_ATTEMPT_EDIT_SP = 'Can\'t let you do that yet! Please onboard Suggested People first!';
export const ERROR_AUTHENTICATION = 'An error occurred during authentication. Please login again!';
+export const ERROR_BADGES_EXCEED_LIMIT = 'You can\'t have more than 5 badges!';
export const ERROR_CATEGORY_CREATION = 'There was a problem creating your categories. Please refresh and try again.';
export const ERROR_CATEGORY_UPDATE = 'There was a problem updating your categories. Please refresh and try again';
export const ERROR_DELETE_CATEGORY = 'There was a problem while deleting category. Please try again';
@@ -35,6 +36,7 @@ export const ERROR_REGISTRATION = (str: string) => `Registration failed πŸ˜”, ${
export const ERROR_SELECT_BIRTHDAY = 'Please select your birthday';
export const ERROR_SELECT_CLASS_YEAR = 'Please select your Class Year';
export const ERROR_SELECT_GENDER = 'Please select your gender';
+export const ERROR_SELECT_UNIVERSITY = 'Please select your University';
export const ERROR_SERVER_DOWN = 'mhm, looks like our servers are down, please refresh and try again in a few mins';
export const ERROR_SOMETHING_WENT_WRONG = 'Oh dear, don’t worry someone will be held responsible for this error, In the meantime refresh the app';
export const ERROR_SOMETHING_WENT_WRONG_REFRESH = "Ha, looks like this one's on us, please refresh and try again";
@@ -44,22 +46,21 @@ export const ERROR_UNABLE_TO_FIND_PROFILE = 'We were unable to find this profile
export const ERROR_UNABLE_TO_VIEW_PROFILE = 'Unable to view this profile';
export const ERROR_UPLOAD = 'An error occurred while uploading. Please try again!';
export const ERROR_UPLOAD_BADGES = 'Unable to upload your badges. Please retry!';
-export const ERROR_BADGES_EXCEED_LIMIT = 'You can\'t have more than 5 badges!';
export const ERROR_UPLOAD_LARGE_PROFILE_PIC = "Can't have the first image seen on the profile be blank, please upload a large picture";
export const ERROR_UPLOAD_MOMENT = 'Unable to upload moment. Please retry';
-export const ERROR_UPLOAD_SP_PHOTO = 'Unable to update suggested people photo. Please retry!';
export const ERROR_UPLOAD_SMALL_PROFILE_PIC = "Can't have a profile without a pic to represent you, please upload a small profile picture";
+export const ERROR_UPLOAD_SP_PHOTO = 'Unable to update suggested people photo. Please retry!';
export const ERROR_VERIFICATION_FAILED_SHORT = 'Verification failed πŸ˜“';
export const MARKED_AS_MSG = (str: string) => `Marked as ${str}`;
export const MOMENT_DELETED_MSG = 'Moment deleted....Some moments have to go, to create space for greater ones';
export const NO_NEW_NOTIFICATIONS = 'You have no new notifications';
export const NO_RESULTS_FOUND = 'No Results Found!';
export const PRIVATE_ACCOUNT = 'This account is private';
+export const SUCCESS_BADGES_UPDATE = 'Badges updated successfully!'
export const SUCCESS_CATEGORY_DELETE = 'Category successfully deleted, but its memory will live on';
export const SUCCESS_INVITATION_CODE = 'Welcome to Tagg!';
export const SUCCESS_LINK = (str: string) => `Successfully linked ${str} πŸŽ‰`;
export const SUCCESS_PIC_UPLOAD = 'Beautiful, the picture was uploaded successfully!';
-export const SUCCESS_BADGES_UPDATE = 'Badges updated successfully!'
export const SUCCESS_PWD_RESET = 'Your password was reset successfully!';
export const SUCCESS_VERIFICATION_CODE_SENT = 'New verification code sent! Check your phone messages for your code';
export const UP_TO_DATE = 'Up-to-Date!';
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>
diff --git a/src/services/UserProfileService.ts b/src/services/UserProfileService.ts
index e00c0530..085787c3 100644
--- a/src/services/UserProfileService.ts
+++ b/src/services/UserProfileService.ts
@@ -2,6 +2,7 @@ import AsyncStorage from '@react-native-community/async-storage';
import moment from 'moment';
import {Alert} from 'react-native';
import {
+ EDIT_PROFILE_ENDPOINT,
GET_FB_POSTS_ENDPOINT,
GET_IG_POSTS_ENDPOINT,
GET_TWITTER_POSTS_ENDPOINT,
@@ -296,16 +297,19 @@ export const sendRegister = async (
password: string,
) => {
try {
+ const form = new FormData();
+ form.append('first_name', firstName);
+ form.append('last_name', lastName);
+ form.append('email', email);
+ form.append('phone_number', phone);
+ form.append('username', username);
+ form.append('password', password);
const response = await fetch(REGISTER_ENDPOINT, {
method: 'POST',
- body: JSON.stringify({
- first_name: firstName,
- last_name: lastName,
- email: email,
- phone_number: phone,
- username: username,
- password: password,
- }),
+ headers: {
+ 'Content-Type': 'multipart/form-data',
+ },
+ body: form,
});
return response;
} catch (error) {
@@ -334,3 +338,31 @@ export const fetchUserProfile = async (userId: string, token?: string) => {
return undefined;
}
};
+
+export const patchEditProfile = async (form: FormData, userId: string) => {
+ 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: form,
+ });
+ let statusCode = response.status;
+ if (statusCode === 200) {
+ return true;
+ } else if (statusCode === 400) {
+ let data = await response.json();
+ throw (
+ 'Profile update failed. πŸ˜”' + data.error || 'Something went wrong! 😭'
+ );
+ } else {
+ throw ERROR_SOMETHING_WENT_WRONG_REFRESH;
+ }
+ } catch (error) {
+ throw ERROR_DOUBLE_CHECK_CONNECTION;
+ }
+};
diff --git a/src/store/initialStates.ts b/src/store/initialStates.ts
index 47ab8f39..02331eb6 100644
--- a/src/store/initialStates.ts
+++ b/src/store/initialStates.ts
@@ -17,7 +17,7 @@ export const NO_PROFILE: ProfileInfoType = {
gender: '',
birthday: undefined,
university_class: 2021,
-
+ university: undefined,
//Default to an invalid value and ignore it gracefully while showing tutorials / popups.
profile_completion_stage: -1,
suggested_people_linked: -1,
diff --git a/src/types/types.ts b/src/types/types.ts
index b2d39cd9..87d61b2e 100644
--- a/src/types/types.ts
+++ b/src/types/types.ts
@@ -23,13 +23,20 @@ export interface CategoryPreviewType {
export type FriendshipStatusType = 'friends' | 'requested' | 'no_record';
-export type ProfileType = {
+export enum UniversityType {
+ Brown = 'Brown University',
+ Cornell = 'Cornell University',
+ // Harvard = 'Harvard University',
+ Empty = '',
+}
+
+export interface ProfileType {
profile_pic: string;
header_pic: string;
profile_info: ProfileInfoType;
moment_categories: string[];
linked_socials: string[];
-};
+}
export interface ProfileInfoType {
name: string;
@@ -37,6 +44,7 @@ export interface ProfileInfoType {
website: string;
gender: string;
university_class: number;
+ university: UniversityType;
profile_completion_stage: number;
suggested_people_linked: number;
birthday: Date | undefined;
@@ -240,12 +248,13 @@ export type TypeOfNotification =
export type UniversityBadge = {
id: number;
name: string;
- university: string;
+ university: UniversityType;
category: string;
};
export type SuggestedPeopleDataType = {
user: ProfilePreviewType;
+ university: UniversityType;
mutual_friends: ProfilePreviewType[];
badges: UniversityBadge[];
social_links: string[];
@@ -270,3 +279,6 @@ export type ContactType = {
first_name: string;
last_name: string;
};
+
+export type UniversityBadgeType = 'Search' | 'Crest';
+export type BadgeDataType = Record<UniversityType, any[]>;
diff --git a/src/utils/common.ts b/src/utils/common.ts
index 0a76ec08..4f31af8e 100644
--- a/src/utils/common.ts
+++ b/src/utils/common.ts
@@ -1,4 +1,9 @@
-import {ContactType, NotificationType} from './../types/types';
+import {
+ ContactType,
+ NotificationType,
+ UniversityType,
+ UniversityBadgeType,
+} from './../types/types';
import moment from 'moment';
import {Linking} from 'react-native';
import {BROWSABLE_SOCIAL_URLS, TOGGLE_BUTTON_TYPE} from '../constants';
@@ -132,3 +137,39 @@ export const extractContacts = async () => {
});
return retrievedContacts;
};
+
+export const getUniversityBadge = (
+ university: UniversityType,
+ type: UniversityBadgeType,
+) => {
+ switch (type) {
+ case 'Search':
+ return _searchPageIcon(university);
+ case 'Crest':
+ return _crestIcon(university);
+ default:
+ return require('../assets/images/bwbadges.png');
+ }
+};
+
+const _searchPageIcon = (university: UniversityType) => {
+ switch (university) {
+ case UniversityType.Cornell:
+ return require('../assets/universities/cornell-search.png');
+ case UniversityType.Brown:
+ return require('../assets/images/bwbadges.png');
+ default:
+ return require('../assets/images/bwbadges.png');
+ }
+};
+
+const _crestIcon = (university: UniversityType) => {
+ switch (university) {
+ case UniversityType.Cornell:
+ return require('../assets/universities/cornell.png');
+ 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 4293ff25..26f40b1b 100644
--- a/src/utils/search.ts
+++ b/src/utils/search.ts
@@ -1,14 +1,18 @@
import AsyncStorage from '@react-native-community/async-storage';
import {BADGE_DATA} from '../constants/badges';
-import {ProfilePreviewType, CategoryPreviewType} from '../types';
+import {
+ ProfilePreviewType,
+ CategoryPreviewType,
+ UniversityType,
+} from '../types';
/*
* Gets all possible search suggestions.
*/
-export const getSearchSuggestions = (): string[] => {
+export const getSearchSuggestions = (university: UniversityType): string[] => {
const suggestions: string[] = [];
- for (const category of BADGE_DATA) {
+ for (const category of BADGE_DATA[university]) {
for (const interest of category.data) {
suggestions.push(interest.badgeName);
}
@@ -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);
}