From 199bc75f5539532d6107dadfcfe086d830cbdcfb Mon Sep 17 00:00:00 2001 From: Ivan Chen Date: Wed, 12 May 2021 14:36:27 -0400 Subject: added 17 badges --- src/assets/badges/aap.png | Bin 0 -> 11531 bytes src/assets/badges/cals.png | Bin 0 -> 7488 bytes .../badges/college_of_arts_and_sciences .png | Bin 0 -> 9036 bytes src/assets/badges/college_of_engineering.png | Bin 0 -> 9201 bytes src/assets/badges/college_of_human_ecology.png | Bin 0 -> 10995 bytes src/assets/badges/cornell_law_school.png | Bin 0 -> 10366 bytes .../badges/cornell_of_veterinary_medicine.png | Bin 0 -> 10745 bytes src/assets/badges/cornell_tech.png | Bin 0 -> 7067 bytes src/assets/badges/dyson_school.png | Bin 0 -> 7879 bytes src/assets/badges/entrepreneurship_at_cornell.png | Bin 0 -> 8298 bytes src/assets/badges/graduate_school.png | Bin 0 -> 11612 bytes src/assets/badges/hotel_administration.png | Bin 0 -> 8738 bytes src/assets/badges/ilr.png | Bin 0 -> 7056 bytes .../badges/sc_johnson_school_of_management.png | Bin 0 -> 7149 bytes src/assets/badges/student_agencies.png | Bin 0 -> 14364 bytes .../badges/weill_cornell_medical_sciences.png | Bin 0 -> 14439 bytes src/assets/badges/weill_cornell_medicine.png | Bin 0 -> 13284 bytes src/constants/badges.ts | 110 ++++++++++++++++++++- 18 files changed, 105 insertions(+), 5 deletions(-) create mode 100644 src/assets/badges/aap.png create mode 100644 src/assets/badges/cals.png create mode 100644 src/assets/badges/college_of_arts_and_sciences .png create mode 100644 src/assets/badges/college_of_engineering.png create mode 100644 src/assets/badges/college_of_human_ecology.png create mode 100644 src/assets/badges/cornell_law_school.png create mode 100644 src/assets/badges/cornell_of_veterinary_medicine.png create mode 100644 src/assets/badges/cornell_tech.png create mode 100644 src/assets/badges/dyson_school.png create mode 100644 src/assets/badges/entrepreneurship_at_cornell.png create mode 100644 src/assets/badges/graduate_school.png create mode 100644 src/assets/badges/hotel_administration.png create mode 100644 src/assets/badges/ilr.png create mode 100644 src/assets/badges/sc_johnson_school_of_management.png create mode 100644 src/assets/badges/student_agencies.png create mode 100644 src/assets/badges/weill_cornell_medical_sciences.png create mode 100644 src/assets/badges/weill_cornell_medicine.png (limited to 'src') diff --git a/src/assets/badges/aap.png b/src/assets/badges/aap.png new file mode 100644 index 00000000..0f5515b8 Binary files /dev/null and b/src/assets/badges/aap.png differ diff --git a/src/assets/badges/cals.png b/src/assets/badges/cals.png new file mode 100644 index 00000000..ccdc7455 Binary files /dev/null and b/src/assets/badges/cals.png differ diff --git a/src/assets/badges/college_of_arts_and_sciences .png b/src/assets/badges/college_of_arts_and_sciences .png new file mode 100644 index 00000000..dad5ec4a Binary files /dev/null and b/src/assets/badges/college_of_arts_and_sciences .png differ diff --git a/src/assets/badges/college_of_engineering.png b/src/assets/badges/college_of_engineering.png new file mode 100644 index 00000000..a59447c9 Binary files /dev/null and b/src/assets/badges/college_of_engineering.png differ diff --git a/src/assets/badges/college_of_human_ecology.png b/src/assets/badges/college_of_human_ecology.png new file mode 100644 index 00000000..73b907c5 Binary files /dev/null and b/src/assets/badges/college_of_human_ecology.png differ diff --git a/src/assets/badges/cornell_law_school.png b/src/assets/badges/cornell_law_school.png new file mode 100644 index 00000000..ade38d88 Binary files /dev/null and b/src/assets/badges/cornell_law_school.png differ diff --git a/src/assets/badges/cornell_of_veterinary_medicine.png b/src/assets/badges/cornell_of_veterinary_medicine.png new file mode 100644 index 00000000..cab17c19 Binary files /dev/null and b/src/assets/badges/cornell_of_veterinary_medicine.png differ diff --git a/src/assets/badges/cornell_tech.png b/src/assets/badges/cornell_tech.png new file mode 100644 index 00000000..7dde3198 Binary files /dev/null and b/src/assets/badges/cornell_tech.png differ diff --git a/src/assets/badges/dyson_school.png b/src/assets/badges/dyson_school.png new file mode 100644 index 00000000..91eab0c5 Binary files /dev/null and b/src/assets/badges/dyson_school.png differ diff --git a/src/assets/badges/entrepreneurship_at_cornell.png b/src/assets/badges/entrepreneurship_at_cornell.png new file mode 100644 index 00000000..29207f6e Binary files /dev/null and b/src/assets/badges/entrepreneurship_at_cornell.png differ diff --git a/src/assets/badges/graduate_school.png b/src/assets/badges/graduate_school.png new file mode 100644 index 00000000..5852e498 Binary files /dev/null and b/src/assets/badges/graduate_school.png differ diff --git a/src/assets/badges/hotel_administration.png b/src/assets/badges/hotel_administration.png new file mode 100644 index 00000000..be2a4e32 Binary files /dev/null and b/src/assets/badges/hotel_administration.png differ diff --git a/src/assets/badges/ilr.png b/src/assets/badges/ilr.png new file mode 100644 index 00000000..fed6bd8d Binary files /dev/null and b/src/assets/badges/ilr.png differ diff --git a/src/assets/badges/sc_johnson_school_of_management.png b/src/assets/badges/sc_johnson_school_of_management.png new file mode 100644 index 00000000..f4b85471 Binary files /dev/null and b/src/assets/badges/sc_johnson_school_of_management.png differ diff --git a/src/assets/badges/student_agencies.png b/src/assets/badges/student_agencies.png new file mode 100644 index 00000000..d6acf243 Binary files /dev/null and b/src/assets/badges/student_agencies.png differ diff --git a/src/assets/badges/weill_cornell_medical_sciences.png b/src/assets/badges/weill_cornell_medical_sciences.png new file mode 100644 index 00000000..417f47f4 Binary files /dev/null and b/src/assets/badges/weill_cornell_medical_sciences.png differ diff --git a/src/assets/badges/weill_cornell_medicine.png b/src/assets/badges/weill_cornell_medicine.png new file mode 100644 index 00000000..2e310e02 Binary files /dev/null and b/src/assets/badges/weill_cornell_medicine.png differ diff --git a/src/constants/badges.ts b/src/constants/badges.ts index aca53f26..54979ecd 100644 --- a/src/constants/badges.ts +++ b/src/constants/badges.ts @@ -1,7 +1,7 @@ import {BadgeDataType} from '../types'; export const _badgeImages = { - iff: require('../assets/badges/iff.png'), + aap: require('../assets/badges/aap.png'), acacia: require('../assets/badges/acacia.png'), acapella: require('../assets/badges/acapella.png'), alpha_chi_omega: require('../assets/badges/alpha_chi_omega.png'), @@ -26,8 +26,15 @@ export const _badgeImages = { brown_womens_collective: require('../assets/badges/brown_womens_collective.png'), bsu: require('../assets/badges/bsu.png'), buxton_international: require('../assets/badges/buxton_international.png'), + cals: require('../assets/badges/cals.png'), chi_phi: require('../assets/badges/chi_phi.png'), chi_psi: require('../assets/badges/chi_psi.png'), + college_of_arts_and_sciences: require('../assets/badges/college_of_arts_and_sciences.png'), + college_of_engineering: require('../assets/badges/college_of_engineering.png'), + college_of_human_ecology: require('../assets/badges/college_of_human_ecology.png'), + college_of_veterinary_medicine: require('../assets/badges/college_of_veterinary_medicine.png'), + cornell_law_school: require('../assets/badges/cornell_law_school.png'), + cornell_tech: require('../assets/badges/cornell_tech.png'), delta_chi: require('../assets/badges/delta_chi.png'), delta_delta_delta: require('../assets/badges/delta_delta_delta.png'), delta_gamma: require('../assets/badges/delta_gamma.png'), @@ -36,13 +43,19 @@ export const _badgeImages = { delta_tau: require('../assets/badges/delta_tau.png'), delta_tau_delta: require('../assets/badges/delta_tau_delta.png'), delta_upsilon: require('../assets/badges/delta_upsilon.png'), + dyson_school: require('../assets/badges/dyson_school.png'), + entrepreneurship_at_cornell: require('../assets/badges/entrepreneurship_at_cornell.png'), fashion_at_brown: require('../assets/badges/fashion_at_brown.png'), fencing: require('../assets/badges/fencing.png'), field_hockey: require('../assets/badges/field_hockey.png'), football: require('../assets/badges/football.png'), golf: require('../assets/badges/golf.png'), + graduate_school: require('../assets/badges/graduate_school.png'), gymnastics: require('../assets/badges/gymnastics.png'), hockey: require('../assets/badges/hockey.png'), + hotel_administration: require('../assets/badges/hotel_administration.png'), + iff: require('../assets/badges/iff.png'), + ilr: require('../assets/badges/ilr.png'), impulse_and_mezcla: require('../assets/badges/impulse_and_mezcla.png'), kappa_alpha_theta: require('../assets/badges/kappa_alpha_theta.png'), kappa_delta: require('../assets/badges/kappa_delta.png'), @@ -69,6 +82,7 @@ export const _badgeImages = { polo: require('../assets/badges/polo.png'), rowing: require('../assets/badges/rowing.png'), sailing: require('../assets/badges/sailing.png'), + sc_johnson_school_of_management: require('../assets/badges/sc_johnson_school_of_management.png'), sigma_alpha_mu: require('../assets/badges/sigma_alpha_mu.png'), sigma_chi: require('../assets/badges/sigma_chi.png'), sigma_delta_tau: require('../assets/badges/sigma_delta_tau.png'), @@ -77,6 +91,7 @@ export const _badgeImages = { soccer: require('../assets/badges/soccer.png'), softball: require('../assets/badges/softball.png'), squash: require('../assets/badges/squash.png'), + student_agencies: require('../assets/badges/student_agencies.png'), swimming_and_diving: require('../assets/badges/swimming_and_diving.png'), tap: require('../assets/badges/tap.png'), tennis: require('../assets/badges/tennis.png'), @@ -86,6 +101,8 @@ export const _badgeImages = { track_and_field: require('../assets/badges/track_and_field.png'), ucs: require('../assets/badges/ucs.png'), volleyball: require('../assets/badges/volleyball.png'), + weill_cornell_medical_sciences: require('../assets/badges/weill_cornell_medical_sciences.png'), + weill_cornell_medicine: require('../assets/badges/weill_cornell_medicine.png'), women_in_business: require('../assets/badges/women_in_business.png'), wrestling: require('../assets/badges/wrestling.png'), zeta_beta_tau: require('../assets/badges/zeta_beta_tau.png'), @@ -243,14 +260,14 @@ const _brownUniversityBadges = [ badgeName: 'Fashion @ brown', badgeImage: _badgeImages.fashion_at_brown, }, - { - badgeName: 'Impulse', - badgeImage: _badgeImages.impulse_and_mezcla, - }, { badgeName: 'Ivy Film Festival ', badgeImage: _badgeImages.iff, }, + { + badgeName: 'Impulse', + badgeImage: _badgeImages.impulse_and_mezcla, + }, ], }, { @@ -629,6 +646,89 @@ const _cornellUniversityBadges = [ }, ], }, + { + title: 'School', + data: [ + { + badgeName: 'College of Agriculture and Life Sciences or (CALS)', + badgeImage: _badgeImages.cals, + }, + { + badgeName: 'College of Architecture, Art and Planning or (AAP)', + badgeImage: _badgeImages.aap, + }, + { + badgeName: 'College of Arts and Sciences ', + badgeImage: _badgeImages.college_of_arts_and_sciences, + }, + { + badgeName: 'Hotel Administration ', + badgeImage: _badgeImages.hotel_administration, + }, + { + badgeName: 'Dyson School', + badgeImage: _badgeImages.dyson_school, + }, + { + badgeName: 'College of Engineering ', + badgeImage: _badgeImages.college_of_engineering, + }, + { + badgeName: 'College of Human Ecology', + badgeImage: _badgeImages.college_of_human_ecology, + }, + { + badgeName: 'School of Industrial and Labor Relations or ILR', + badgeImage: _badgeImages.ilr, + }, + ], + }, + { + title: 'Graduate Program', + data: [ + { + badgeName: 'SC Johnson School of Management', + badgeImage: _badgeImages.sc_johnson_school_of_management, + }, + { + badgeName: 'Conrell Tech (NYC)', + badgeImage: _badgeImages.cornell_tech, + }, + { + badgeName: 'Cornell Law School', + badgeImage: _badgeImages.cornell_law_school, + }, + { + badgeName: 'College of Veterinary Medicine', + badgeImage: _badgeImages.college_of_veterinary_medicine, + }, + { + badgeName: 'Graduate School', + badgeImage: _badgeImages.graduate_school, + }, + { + badgeName: 'Weill Cornell Medicine (NYC)', + badgeImage: _badgeImages.weill_cornell_medicine, + }, + { + badgeName: 'Weill Cornell Medical Sciences (NYC)', + badgeImage: _badgeImages.weill_cornell_medical_sciences, + }, + ], + }, + { + title: 'Network', + data: [ + { + badgeName: 'Entrepreneurship @ Cornell ', + badgeImage: _badgeImages.entrepreneurship_at_cornell, + }, + { + badgeName: 'Student Agencies, INC', + badgeImage: _badgeImages.student_agencies, + }, + ], + }, ]; export const BADGE_DATA: BadgeDataType = { -- cgit v1.2.3-70-g09d2 From a1248fc2857850cf8e3a060de6cb47d803a30966 Mon Sep 17 00:00:00 2001 From: Ivan Chen Date: Wed, 12 May 2021 14:46:12 -0400 Subject: fixed typos --- src/assets/badges/college_of_arts_and_sciences .png | Bin 9036 -> 0 bytes src/assets/badges/college_of_arts_and_sciences.png | Bin 0 -> 9036 bytes src/assets/badges/college_of_veterinary_medicine.png | Bin 0 -> 10745 bytes src/assets/badges/cornell_of_veterinary_medicine.png | Bin 10745 -> 0 bytes 4 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/assets/badges/college_of_arts_and_sciences .png create mode 100644 src/assets/badges/college_of_arts_and_sciences.png create mode 100644 src/assets/badges/college_of_veterinary_medicine.png delete mode 100644 src/assets/badges/cornell_of_veterinary_medicine.png (limited to 'src') diff --git a/src/assets/badges/college_of_arts_and_sciences .png b/src/assets/badges/college_of_arts_and_sciences .png deleted file mode 100644 index dad5ec4a..00000000 Binary files a/src/assets/badges/college_of_arts_and_sciences .png and /dev/null differ diff --git a/src/assets/badges/college_of_arts_and_sciences.png b/src/assets/badges/college_of_arts_and_sciences.png new file mode 100644 index 00000000..dad5ec4a Binary files /dev/null and b/src/assets/badges/college_of_arts_and_sciences.png differ diff --git a/src/assets/badges/college_of_veterinary_medicine.png b/src/assets/badges/college_of_veterinary_medicine.png new file mode 100644 index 00000000..cab17c19 Binary files /dev/null and b/src/assets/badges/college_of_veterinary_medicine.png differ diff --git a/src/assets/badges/cornell_of_veterinary_medicine.png b/src/assets/badges/cornell_of_veterinary_medicine.png deleted file mode 100644 index cab17c19..00000000 Binary files a/src/assets/badges/cornell_of_veterinary_medicine.png and /dev/null differ -- cgit v1.2.3-70-g09d2 From 8fba03a97aa30e10b0a667a49a30c5191146dd49 Mon Sep 17 00:00:00 2001 From: Ivan Chen Date: Wed, 12 May 2021 14:57:02 -0400 Subject: fixed styling --- src/screens/badge/BadgeItem.tsx | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/screens/badge/BadgeItem.tsx b/src/screens/badge/BadgeItem.tsx index 1051d4a7..409cc429 100644 --- a/src/screens/badge/BadgeItem.tsx +++ b/src/screens/badge/BadgeItem.tsx @@ -44,7 +44,15 @@ const BadgeItem: React.FC = ({ - {title} + 30 + ? {fontSize: normalize(12), lineHeight: normalize(16)} + : {}, + ]}> + {title} + @@ -53,17 +61,19 @@ const BadgeItem: React.FC = ({ ); }; +const ITEM_WIDTH = SCREEN_WIDTH / 3 - 20; + const styles = StyleSheet.create({ border: { - width: SCREEN_WIDTH / 3 - 20 + 6, - height: 146, + width: ITEM_WIDTH + 6, + height: 156, marginLeft: 10, marginBottom: 12, borderRadius: 8, }, item: { - width: SCREEN_WIDTH / 3 - 20, - height: 140, + width: ITEM_WIDTH, + height: 150, borderRadius: 8, }, detailContainer: { -- cgit v1.2.3-70-g09d2 From d2f52e2fe19023d16fe72d750c5a1fc0f1bd4992 Mon Sep 17 00:00:00 2001 From: Shravya Ramesh Date: Wed, 12 May 2021 12:49:32 -0700 Subject: fixed moment caption size --- src/components/moments/MomentPostContent.tsx | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src') diff --git a/src/components/moments/MomentPostContent.tsx b/src/components/moments/MomentPostContent.tsx index 45186ba1..193bf40c 100644 --- a/src/components/moments/MomentPostContent.tsx +++ b/src/components/moments/MomentPostContent.tsx @@ -10,6 +10,7 @@ import { navigateToProfile, SCREEN_HEIGHT, SCREEN_WIDTH, + normalize, } from '../../utils'; import {mentionPartTypes, renderTextWithMentions} from '../../utils/comments'; import {CommentsCount} from '../comments'; @@ -103,6 +104,9 @@ const styles = StyleSheet.create({ marginRight: '5%', color: '#ffffff', fontWeight: '500', + fontSize: normalize(13), + lineHeight: normalize(15.51), + letterSpacing: normalize(0.6), }, }); export default MomentPostContent; -- cgit v1.2.3-70-g09d2 From c7fb6698d9c3d449f772e5c5bf9210075108618d Mon Sep 17 00:00:00 2001 From: Ivan Chen Date: Wed, 12 May 2021 18:03:06 -0400 Subject: updated assets to bigger ones --- src/assets/badges/aap.png | Bin 11531 -> 12696 bytes src/assets/badges/cals.png | Bin 7488 -> 13847 bytes src/assets/badges/college_of_arts_and_sciences.png | Bin 9036 -> 15938 bytes src/assets/badges/college_of_engineering.png | Bin 9201 -> 11172 bytes src/assets/badges/college_of_human_ecology.png | Bin 10995 -> 13524 bytes .../badges/college_of_veterinary_medicine.png | Bin 10745 -> 13496 bytes src/assets/badges/cornell_law_school.png | Bin 10366 -> 12782 bytes src/assets/badges/cornell_tech.png | Bin 7067 -> 8537 bytes src/assets/badges/dyson_school.png | Bin 7879 -> 14758 bytes src/assets/badges/entrepreneurship_at_cornell.png | Bin 8298 -> 10134 bytes src/assets/badges/graduate_school.png | Bin 11612 -> 14748 bytes src/assets/badges/hotel_administration.png | Bin 8738 -> 10646 bytes src/assets/badges/ilr.png | Bin 7056 -> 16628 bytes .../badges/sc_johnson_school_of_management.png | Bin 7149 -> 15983 bytes src/assets/badges/student_agencies.png | Bin 14364 -> 18373 bytes .../badges/weill_cornell_medical_sciences.png | Bin 14439 -> 18624 bytes src/assets/badges/weill_cornell_medicine.png | Bin 13284 -> 16821 bytes 17 files changed, 0 insertions(+), 0 deletions(-) (limited to 'src') diff --git a/src/assets/badges/aap.png b/src/assets/badges/aap.png index 0f5515b8..55d66295 100644 Binary files a/src/assets/badges/aap.png and b/src/assets/badges/aap.png differ diff --git a/src/assets/badges/cals.png b/src/assets/badges/cals.png index ccdc7455..04cbbeaa 100644 Binary files a/src/assets/badges/cals.png and b/src/assets/badges/cals.png differ diff --git a/src/assets/badges/college_of_arts_and_sciences.png b/src/assets/badges/college_of_arts_and_sciences.png index dad5ec4a..5f399c10 100644 Binary files a/src/assets/badges/college_of_arts_and_sciences.png and b/src/assets/badges/college_of_arts_and_sciences.png differ diff --git a/src/assets/badges/college_of_engineering.png b/src/assets/badges/college_of_engineering.png index a59447c9..0c50ccc8 100644 Binary files a/src/assets/badges/college_of_engineering.png and b/src/assets/badges/college_of_engineering.png differ diff --git a/src/assets/badges/college_of_human_ecology.png b/src/assets/badges/college_of_human_ecology.png index 73b907c5..14a9fd80 100644 Binary files a/src/assets/badges/college_of_human_ecology.png and b/src/assets/badges/college_of_human_ecology.png differ diff --git a/src/assets/badges/college_of_veterinary_medicine.png b/src/assets/badges/college_of_veterinary_medicine.png index cab17c19..1814aa97 100644 Binary files a/src/assets/badges/college_of_veterinary_medicine.png and b/src/assets/badges/college_of_veterinary_medicine.png differ diff --git a/src/assets/badges/cornell_law_school.png b/src/assets/badges/cornell_law_school.png index ade38d88..43104e41 100644 Binary files a/src/assets/badges/cornell_law_school.png and b/src/assets/badges/cornell_law_school.png differ diff --git a/src/assets/badges/cornell_tech.png b/src/assets/badges/cornell_tech.png index 7dde3198..c40d3889 100644 Binary files a/src/assets/badges/cornell_tech.png and b/src/assets/badges/cornell_tech.png differ diff --git a/src/assets/badges/dyson_school.png b/src/assets/badges/dyson_school.png index 91eab0c5..d17663b7 100644 Binary files a/src/assets/badges/dyson_school.png and b/src/assets/badges/dyson_school.png differ diff --git a/src/assets/badges/entrepreneurship_at_cornell.png b/src/assets/badges/entrepreneurship_at_cornell.png index 29207f6e..9e40b264 100644 Binary files a/src/assets/badges/entrepreneurship_at_cornell.png and b/src/assets/badges/entrepreneurship_at_cornell.png differ diff --git a/src/assets/badges/graduate_school.png b/src/assets/badges/graduate_school.png index 5852e498..f1c4006e 100644 Binary files a/src/assets/badges/graduate_school.png and b/src/assets/badges/graduate_school.png differ diff --git a/src/assets/badges/hotel_administration.png b/src/assets/badges/hotel_administration.png index be2a4e32..a92cfa3d 100644 Binary files a/src/assets/badges/hotel_administration.png and b/src/assets/badges/hotel_administration.png differ diff --git a/src/assets/badges/ilr.png b/src/assets/badges/ilr.png index fed6bd8d..2bdc5e19 100644 Binary files a/src/assets/badges/ilr.png and b/src/assets/badges/ilr.png differ diff --git a/src/assets/badges/sc_johnson_school_of_management.png b/src/assets/badges/sc_johnson_school_of_management.png index f4b85471..3e3acdfb 100644 Binary files a/src/assets/badges/sc_johnson_school_of_management.png and b/src/assets/badges/sc_johnson_school_of_management.png differ diff --git a/src/assets/badges/student_agencies.png b/src/assets/badges/student_agencies.png index d6acf243..ac31a1ee 100644 Binary files a/src/assets/badges/student_agencies.png and b/src/assets/badges/student_agencies.png differ diff --git a/src/assets/badges/weill_cornell_medical_sciences.png b/src/assets/badges/weill_cornell_medical_sciences.png index 417f47f4..3a28ae98 100644 Binary files a/src/assets/badges/weill_cornell_medical_sciences.png and b/src/assets/badges/weill_cornell_medical_sciences.png differ diff --git a/src/assets/badges/weill_cornell_medicine.png b/src/assets/badges/weill_cornell_medicine.png index 2e310e02..3e8a60b3 100644 Binary files a/src/assets/badges/weill_cornell_medicine.png and b/src/assets/badges/weill_cornell_medicine.png differ -- cgit v1.2.3-70-g09d2 From d8dfc057e31e334a3e67a5931a9040fb77acfc45 Mon Sep 17 00:00:00 2001 From: Ivan Chen Date: Wed, 12 May 2021 18:16:55 -0400 Subject: cleaned up and adjusted styles --- src/screens/badge/BadgeItem.tsx | 31 ++++++++++++------------------- 1 file changed, 12 insertions(+), 19 deletions(-) (limited to 'src') diff --git a/src/screens/badge/BadgeItem.tsx b/src/screens/badge/BadgeItem.tsx index 409cc429..e4f1b1da 100644 --- a/src/screens/badge/BadgeItem.tsx +++ b/src/screens/badge/BadgeItem.tsx @@ -43,17 +43,15 @@ const BadgeItem: React.FC = ({ style={styles.item}> - - 30 - ? {fontSize: normalize(12), lineHeight: normalize(16)} - : {}, - ]}> - {title} - - + 30 + ? {fontSize: normalize(12), lineHeight: normalize(16)} + : {}, + ]}> + {title} + @@ -78,18 +76,13 @@ const styles = StyleSheet.create({ }, detailContainer: { flexGrow: 1, - justifyContent: 'center', + justifyContent: 'space-evenly', alignItems: 'center', - borderWidth: 3, - borderRadius: 8, - borderColor: 'transparent', }, imageStyles: { - width: 40, - height: 40, - marginTop: '11%', + width: normalize(50), + height: normalize(50), }, - textContainer: {marginTop: '16%'}, title: { fontSize: normalize(15), fontWeight: '500', -- cgit v1.2.3-70-g09d2 From 3cfad768bc7d2369ff49d1b57771ac317dbae71e Mon Sep 17 00:00:00 2001 From: George Rusu Date: Wed, 12 May 2021 18:10:08 -0700 Subject: added functionality for individual sms for invites and updated api and strings to match --- src/components/friends/InviteFriendTile.tsx | 86 +++++++++++++++++++++++++---- src/constants/api.ts | 5 +- src/constants/strings.ts | 6 ++ src/services/UserProfileService.ts | 2 +- 4 files changed, 84 insertions(+), 15 deletions(-) (limited to 'src') diff --git a/src/components/friends/InviteFriendTile.tsx b/src/components/friends/InviteFriendTile.tsx index 5237389a..9967b365 100644 --- a/src/components/friends/InviteFriendTile.tsx +++ b/src/components/friends/InviteFriendTile.tsx @@ -1,17 +1,27 @@ +import AsyncStorage from '@react-native-community/async-storage'; import React, {useEffect, useState} from 'react'; import { Alert, + Linking, StyleSheet, Text, TouchableOpacity, TouchableWithoutFeedback, View, } from 'react-native'; -import {TAGG_LIGHT_BLUE} from '../../constants'; +import {useSelector} from 'react-redux'; +import {RootState} from 'src/store/rootReducer'; +import { + CREATE_INVITE_CODE, + GET_REMAINING_INVITES, + TAGG_LIGHT_BLUE, +} from '../../constants'; import { ERROR_NO_CONTACT_INVITE_LEFT, ERROR_SOMETHING_WENT_WRONG, - SUCCESS_INVITE_CONTACT, + INVITE_USER_SMS_BODY, + SUCCESS_CONFIRM_INVITE_CONTACT_MESSAGE, + SUCCESS_CONFIRM_INVITE_CONTACT_TITLE, SUCCESS_LAST_CONTACT_INVITE, } from '../../constants/strings'; import {InviteContactType} from '../../screens/profile/InviteFriendsScreen'; @@ -24,26 +34,78 @@ interface InviteFriendTileProps { const InviteFriendTile: React.FC = ({item}) => { const [invited, setInvited] = useState(false); + const {name} = useSelector((state: RootState) => state.user.profile); const [formatedPhoneNumber, setFormattedPhoneNumber] = useState(''); const handleInviteFriend = async () => { - const invites_left = await inviteFriendService( - item.phoneNumber, - item.firstName, - item.lastName, - ); + const invites_left = await getRemainingInviteCount(); if (invites_left > 0) { setInvited(true); - Alert.alert(SUCCESS_INVITE_CONTACT(invites_left)); - } else if (invites_left === 0) { - setInvited(true); - Alert.alert(SUCCESS_LAST_CONTACT_INVITE); - } else if (invites_left === -1) { + Alert.alert( + SUCCESS_CONFIRM_INVITE_CONTACT_TITLE(invites_left), + SUCCESS_CONFIRM_INVITE_CONTACT_MESSAGE, + [ + {text: 'No!', style: 'cancel'}, + { + text: 'Yes!', + onPress: async () => { + const inviteCode = await handleCreateInviteCode(); + await inviteFriendService( + item.phoneNumber, + item.firstName, + item.lastName, + ); + Linking.openURL( + `sms:${item.phoneNumber}&body=${INVITE_USER_SMS_BODY( + item.firstName, + name, + inviteCode, + )}`, + ); + if (invites_left === 1) { + Alert.alert(SUCCESS_LAST_CONTACT_INVITE); + } + }, + }, + ], + ); + } else if (invites_left === -1 || invites_left === 0) { Alert.alert(ERROR_NO_CONTACT_INVITE_LEFT); } else { Alert.alert(ERROR_SOMETHING_WENT_WRONG); } }; + const getRemainingInviteCount = async () => { + const firstName = name.split(' ')[0]; + const lastName = name.split(' ')[1]; + const token = await AsyncStorage.getItem('token'); + const response = await fetch(GET_REMAINING_INVITES, { + method: 'POST', + headers: { + Authorization: 'Token ' + token, + }, + body: JSON.stringify({ + invitee_first_name: firstName, + invitee_last_name: lastName, + }), + }); + if (response.status === 200) { + const data = await response.json(); + return data.invites_left; + } else if (response.status === 500) { + return -1; + } + }; + + const handleCreateInviteCode = async () => { + const response = await fetch(CREATE_INVITE_CODE, {method: 'POST'}); + if (response.status === 200) { + const data = await response.json(); + return data.code; + } else if (response.status === 500) { + return -1; + } + }; useEffect(() => { const formatPhoneNumer = () => { const unformatted_number: string = item.phoneNumber; diff --git a/src/constants/api.ts b/src/constants/api.ts index e5ce9e77..41c54d6f 100644 --- a/src/constants/api.ts +++ b/src/constants/api.ts @@ -49,7 +49,8 @@ export const USERS_FROM_CONTACTS_ENDPOINT: string = API_URL + 'user_contacts/find_friends/'; export const INVITE_FRIEND_ENDPOINT: string = API_URL + 'user_contacts/invite_friend/'; - +export const CREATE_INVITE_CODE = API_URL + 'create-code/'; +export const GET_REMAINING_INVITES = API_URL + 'user_contacts/check_invite_count/' // Suggested People export const SP_USERS_ENDPOINT: string = API_URL + 'suggested_people/'; export const SP_UPDATE_PICTURE_ENDPOINT: string = @@ -59,7 +60,7 @@ export const SP_MUTUAL_BADGE_HOLDERS_ENDPOINT: string = export const ADD_BADGES_ENDPOINT: string = SP_USERS_ENDPOINT + 'add_badges/'; export const UPDATE_BADGES_ENDPOINT: string = SP_USERS_ENDPOINT + 'update_badges/'; - export const REMOVE_BADGES_ENDPOINT: string = +export const REMOVE_BADGES_ENDPOINT: string = SP_USERS_ENDPOINT + 'remove_badges/'; export const GET_USER_BADGES_ENDPOINT: string = SP_USERS_ENDPOINT + 'get_badges/'; diff --git a/src/constants/strings.ts b/src/constants/strings.ts index 56d54d39..2ce64aed 100644 --- a/src/constants/strings.ts +++ b/src/constants/strings.ts @@ -2,6 +2,7 @@ // Below is the regex to convert this into a csv for the Google Sheet // export const (.*) = .*?(['|"|`])(.*)\2; // replace with: $1\t$3 +export const APP_STORE_LINK = 'https://apps.apple.com/us/app/tagg-discover-your-community/id1537853613' export const ADD_COMMENT_TEXT = (username?: string) => username ? `Reply to ${username}` : 'Add a comment...' 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!'; @@ -68,6 +69,11 @@ 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_INVITE_CONTACT = (str: string) => `Success! You now have ${str} invites left!`; +export const SUCCESS_CONFIRM_INVITE_CONTACT_TITLE = (str: string) => `You have ${str} invites left!`; +export const SUCCESS_CONFIRM_INVITE_CONTACT_MESSAGE = 'Use one now?'; +export const INVITE_USER_SMS_BODY = (invitedUserName: string, invitee: string, inviteCode: string) => `Hey ${invitedUserName}!\n +You've been tagged by ${invitee}. Follow the instructions below to skip the line and join them on Tagg!\n +Sign up and use this code to get in: ${inviteCode}\n ${APP_STORE_LINK}`; export const SUCCESS_LAST_CONTACT_INVITE = 'Done! That was your last invite, hope you used it wisely!'; export const SUCCESS_LINK = (str: string) => `Successfully linked ${str} 🎉`; export const SUCCESS_PIC_UPLOAD = 'Beautiful, the picture was uploaded successfully!'; diff --git a/src/services/UserProfileService.ts b/src/services/UserProfileService.ts index 8b7b78e1..624f0e2a 100644 --- a/src/services/UserProfileService.ts +++ b/src/services/UserProfileService.ts @@ -442,7 +442,7 @@ export const verifyExistingInformation = async ( const form = new FormData(); if (email) { form.append('email', email); - } + } if (username) { form.append('username', username); } -- cgit v1.2.3-70-g09d2 From ec2654b83796df88346a96a9ddd872ac07a67901 Mon Sep 17 00:00:00 2001 From: Shravya Ramesh Date: Wed, 12 May 2021 22:21:14 -0700 Subject: Refactored mesage button code on profile screen --- src/components/messages/MessageButton.tsx | 73 +++++++++++++++++++++++++++++++ src/components/messages/index.ts | 1 + 2 files changed, 74 insertions(+) create mode 100644 src/components/messages/MessageButton.tsx (limited to 'src') diff --git a/src/components/messages/MessageButton.tsx b/src/components/messages/MessageButton.tsx new file mode 100644 index 00000000..5ac42c4c --- /dev/null +++ b/src/components/messages/MessageButton.tsx @@ -0,0 +1,73 @@ +import React from 'react'; +import {Fragment, useContext} from 'react'; +import {useStore} from 'react-redux'; +import {ChatContext} from '../../App'; +import {RootState} from '../../store/rootReducer'; +import {FriendshipStatusType} from '../../types'; +import {createChannel} from '../../utils'; +import {Alert, StyleProp, TextStyle, ViewStyle} from 'react-native'; +import {BasicButton} from '../common'; +import {useNavigation} from '@react-navigation/native'; +import {ERROR_UNABLE_CONNECT_CHAT} from '../../constants/strings'; + +interface MessageButtonProps { + userXId: string; + isBlocked: boolean; + friendship_status: FriendshipStatusType; + friendship_requester_id?: string; + solid?: boolean; + externalStyles?: Record>; +} + +const MessageButton: React.FC = ({ + userXId, + isBlocked, + friendship_status, + friendship_requester_id, + solid, + externalStyles, +}) => { + const navigation = useNavigation(); + const {chatClient, setChannel} = useContext(ChatContext); + + const state: RootState = useStore().getState(); + const loggedInUserId = state.user.user.userId; + + const canMessage = () => { + if ( + userXId && + !isBlocked && + (friendship_status === 'no_record' || + friendship_status === 'friends' || + (friendship_status === 'requested' && + friendship_requester_id === loggedInUserId)) + ) { + return true; + } else { + return false; + } + }; + + const onPressMessage = async () => { + if (chatClient.user && userXId) { + const channel = await createChannel(loggedInUserId, userXId, chatClient); + setChannel(channel); + navigation.navigate('Chat'); + } else { + Alert.alert(ERROR_UNABLE_CONNECT_CHAT); + } + }; + + return canMessage() ? ( + + ) : ( + + ); +}; + +export default MessageButton; diff --git a/src/components/messages/index.ts b/src/components/messages/index.ts index b19067ca..7270e2e2 100644 --- a/src/components/messages/index.ts +++ b/src/components/messages/index.ts @@ -7,3 +7,4 @@ export {default as MessageAvatar} from './MessageAvatar'; export {default as TypingIndicator} from './TypingIndicator'; export {default as MessageFooter} from './MessageFooter'; export {default as DateHeader} from './DateHeader'; +export {default as MessageButton} from './MessageButton'; -- cgit v1.2.3-70-g09d2 From 29bfc68f90d1ca82c39765dc6c84816d2733a2fa Mon Sep 17 00:00:00 2001 From: Shravya Ramesh Date: Wed, 12 May 2021 22:21:45 -0700 Subject: styles, done --- src/components/common/BasicButton.tsx | 12 +++++- src/components/notifications/Notification.tsx | 40 ++++++++++++++---- src/components/profile/ProfileBody.tsx | 58 +++++---------------------- 3 files changed, 53 insertions(+), 57 deletions(-) (limited to 'src') diff --git a/src/components/common/BasicButton.tsx b/src/components/common/BasicButton.tsx index 1fe29cd9..e2274dbd 100644 --- a/src/components/common/BasicButton.tsx +++ b/src/components/common/BasicButton.tsx @@ -1,5 +1,12 @@ import React from 'react'; -import {StyleProp, StyleSheet, Text, View, ViewStyle} from 'react-native'; +import { + StyleProp, + StyleSheet, + Text, + TextStyle, + View, + ViewStyle, +} from 'react-native'; import {TAGG_LIGHT_BLUE} from '../../constants'; import {TouchableOpacity} from 'react-native-gesture-handler'; import {normalize} from '../../utils'; @@ -8,7 +15,7 @@ interface BasicButtonProps { title: string; onPress: () => void; solid?: boolean; - externalStyles?: Record>; + externalStyles?: Record>; } const BasicButton: React.FC = ({ title, @@ -27,6 +34,7 @@ const BasicButton: React.FC = ({ = (props) => { const [avatar, setAvatar] = useState(undefined); const [momentURI, setMomentURI] = useState(undefined); + const notification_title = + notification_type === 'FRD_ACPT' + ? `Say Hi to ${first_name}!` + : `${first_name} ${last_name}`; useEffect(() => { (async () => { @@ -246,9 +251,7 @@ const Notification: React.FC = (props) => { {/* Text content: Actor name and verbage*/} - - {first_name} {last_name} - + {notification_title} = (props) => { /> )} + {notification_type === 'FRD_ACPT' && ( + + + + )} {/* Moment Image Preview */} {(notification_type === 'CMT' || notification_type === 'MOM_3+' || @@ -306,7 +332,7 @@ const styles = StyleSheet.create({ flex: 1, alignSelf: 'center', alignItems: 'center', - paddingHorizontal: '8%', + paddingHorizontal: '7%', }, avatarContainer: { height: 42, @@ -348,9 +374,9 @@ const styles = StyleSheet.create({ lineHeight: normalize(13.13), }, timeStampStyles: { - fontWeight: '700', - fontSize: normalize(12), - lineHeight: normalize(14.32), + fontWeight: '500', + fontSize: normalize(11), + lineHeight: normalize(13.13), marginHorizontal: 2, color: '#828282', textAlignVertical: 'center', diff --git a/src/components/profile/ProfileBody.tsx b/src/components/profile/ProfileBody.tsx index 3d654724..7557de00 100644 --- a/src/components/profile/ProfileBody.tsx +++ b/src/components/profile/ProfileBody.tsx @@ -1,17 +1,7 @@ -import {useNavigation} from '@react-navigation/core'; -import React, {useContext} from 'react'; -import { - Alert, - LayoutChangeEvent, - Linking, - StyleSheet, - Text, - View, -} from 'react-native'; +import React from 'react'; +import {LayoutChangeEvent, Linking, StyleSheet, Text, View} from 'react-native'; import {useDispatch, useSelector, useStore} from 'react-redux'; -import {ChatContext} from '../../App'; import {TAGG_DARK_BLUE, TOGGLE_BUTTON_TYPE} from '../../constants'; -import {ERROR_UNABLE_CONNECT_CHAT} from '../../constants/strings'; import { acceptFriendRequest, declineFriendRequest, @@ -22,14 +12,14 @@ import {NO_PROFILE} from '../../store/initialStates'; import {RootState} from '../../store/rootReducer'; import {ScreenType} from '../../types'; import { - createChannel, getUserAsProfilePreviewType, normalize, SCREEN_HEIGHT, SCREEN_WIDTH, } from '../../utils'; import {canViewProfile} from '../../utils/users'; -import {BasicButton, FriendsButton} from '../common'; +import {FriendsButton} from '../common'; +import {MessageButton} from '../messages'; import ToggleButton from './ToggleButton'; interface ProfileBodyProps { @@ -47,7 +37,6 @@ const ProfileBody: React.FC = ({ screenType, }) => { const dispatch = useDispatch(); - const navigation = useNavigation(); const {profile = NO_PROFILE, user} = useSelector((state: RootState) => userXId ? state.userX[screenType][userXId] : state.user, @@ -65,10 +54,7 @@ const ProfileBody: React.FC = ({ profile, ); - const {chatClient, setChannel} = useContext(ChatContext); - const state: RootState = useStore().getState(); - const loggedInUserId = state.user.user.userId; const handleAcceptRequest = async () => { await dispatch(acceptFriendRequest({id, username, first_name, last_name})); @@ -81,32 +67,6 @@ const ProfileBody: React.FC = ({ dispatch(updateUserXProfileAllScreens(id, state)); }; - const canMessage = () => { - if ( - userXId && - !isBlocked && - (friendship_status === 'no_record' || - friendship_status === 'friends' || - (friendship_status === 'requested' && - friendship_requester_id === loggedInUserId)) && - canViewProfile(state, userXId, screenType) - ) { - return true; - } else { - return false; - } - }; - - const onPressMessage = async () => { - if (chatClient.user && userXId) { - const channel = await createChannel(loggedInUserId, userXId, chatClient); - setChannel(channel); - navigation.navigate('Chat'); - } else { - Alert.alert(ERROR_UNABLE_CONNECT_CHAT); - } - }; - return ( {`@${username}`} @@ -142,10 +102,12 @@ const ProfileBody: React.FC = ({ onAcceptRequest={handleAcceptRequest} onRejectRequest={handleDeclineFriendRequest} /> - {canMessage() && ( - Date: Wed, 12 May 2021 22:35:02 -0700 Subject: button position --- src/components/notifications/Notification.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/components/notifications/Notification.tsx b/src/components/notifications/Notification.tsx index 179daa57..cb62047a 100644 --- a/src/components/notifications/Notification.tsx +++ b/src/components/notifications/Notification.tsx @@ -286,6 +286,7 @@ const Notification: React.FC = (props) => { container: { width: normalize(63), height: normalize(21), + marginTop: '7%', }, buttonTitle: { fontSize: normalize(11), @@ -332,7 +333,7 @@ const styles = StyleSheet.create({ flex: 1, alignSelf: 'center', alignItems: 'center', - paddingHorizontal: '7%', + paddingHorizontal: '6.3%', }, avatarContainer: { height: 42, -- cgit v1.2.3-70-g09d2 From 45331d92a7c9f0a82b5799dba71b0e2f117156b3 Mon Sep 17 00:00:00 2001 From: Ivan Chen Date: Thu, 13 May 2021 12:53:14 -0400 Subject: added adjustment to images --- src/assets/badges/aap.png | Bin 12696 -> 11184 bytes src/assets/badges/cals.png | Bin 13847 -> 11952 bytes src/assets/badges/college_of_arts_and_sciences.png | Bin 15938 -> 13632 bytes src/assets/badges/college_of_engineering.png | Bin 11172 -> 10165 bytes src/assets/badges/entrepreneurship_at_cornell.png | Bin 10134 -> 12587 bytes src/assets/badges/ilr.png | Bin 16628 -> 17000 bytes .../badges/sc_johnson_school_of_management.png | Bin 15983 -> 11346 bytes .../badges/weill_cornell_medical_sciences.png | Bin 18624 -> 17096 bytes 8 files changed, 0 insertions(+), 0 deletions(-) (limited to 'src') diff --git a/src/assets/badges/aap.png b/src/assets/badges/aap.png index 55d66295..dd150b8f 100644 Binary files a/src/assets/badges/aap.png and b/src/assets/badges/aap.png differ diff --git a/src/assets/badges/cals.png b/src/assets/badges/cals.png index 04cbbeaa..fbf0717b 100644 Binary files a/src/assets/badges/cals.png and b/src/assets/badges/cals.png differ diff --git a/src/assets/badges/college_of_arts_and_sciences.png b/src/assets/badges/college_of_arts_and_sciences.png index 5f399c10..146a06ed 100644 Binary files a/src/assets/badges/college_of_arts_and_sciences.png and b/src/assets/badges/college_of_arts_and_sciences.png differ diff --git a/src/assets/badges/college_of_engineering.png b/src/assets/badges/college_of_engineering.png index 0c50ccc8..c3f9e889 100644 Binary files a/src/assets/badges/college_of_engineering.png and b/src/assets/badges/college_of_engineering.png differ diff --git a/src/assets/badges/entrepreneurship_at_cornell.png b/src/assets/badges/entrepreneurship_at_cornell.png index 9e40b264..6b86abd4 100644 Binary files a/src/assets/badges/entrepreneurship_at_cornell.png and b/src/assets/badges/entrepreneurship_at_cornell.png differ diff --git a/src/assets/badges/ilr.png b/src/assets/badges/ilr.png index 2bdc5e19..549d6955 100644 Binary files a/src/assets/badges/ilr.png and b/src/assets/badges/ilr.png differ diff --git a/src/assets/badges/sc_johnson_school_of_management.png b/src/assets/badges/sc_johnson_school_of_management.png index 3e3acdfb..3fc24aa4 100644 Binary files a/src/assets/badges/sc_johnson_school_of_management.png and b/src/assets/badges/sc_johnson_school_of_management.png differ diff --git a/src/assets/badges/weill_cornell_medical_sciences.png b/src/assets/badges/weill_cornell_medical_sciences.png index 3a28ae98..2167df79 100644 Binary files a/src/assets/badges/weill_cornell_medical_sciences.png and b/src/assets/badges/weill_cornell_medical_sciences.png differ -- cgit v1.2.3-70-g09d2 From 0d92d8b60550c86ce95a7f481a2599f8f9469219 Mon Sep 17 00:00:00 2001 From: Ivan Chen Date: Thu, 13 May 2021 14:57:36 -0400 Subject: removed useDerivedValue --- src/components/taggs/TaggsBar.tsx | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/components/taggs/TaggsBar.tsx b/src/components/taggs/TaggsBar.tsx index 4d567b25..a7e8fc7a 100644 --- a/src/components/taggs/TaggsBar.tsx +++ b/src/components/taggs/TaggsBar.tsx @@ -113,13 +113,11 @@ const TaggsBar: React.FC = ({ loadData(); } }, [taggsNeedUpdate, user]); - const paddingTopStylesProgress = useDerivedValue(() => - interpolate( - y.value, - [PROFILE_CUTOUT_BOTTOM_Y, PROFILE_CUTOUT_BOTTOM_Y + profileBodyHeight], - [0, 1], - Extrapolate.CLAMP, - ), + const paddingTopStylesProgress = interpolate( + y.value, + [PROFILE_CUTOUT_BOTTOM_Y, PROFILE_CUTOUT_BOTTOM_Y + profileBodyHeight], + [0, 1], + Extrapolate.CLAMP, ); const shadowOpacityStylesProgress = useDerivedValue(() => interpolate( @@ -134,7 +132,7 @@ const TaggsBar: React.FC = ({ ); const animatedStyles = useAnimatedStyle(() => ({ shadowOpacity: shadowOpacityStylesProgress.value / 5, - paddingTop: paddingTopStylesProgress.value * insetTop, + paddingTop: paddingTopStylesProgress + insetTop, })); return taggs.length > 0 ? ( -- cgit v1.2.3-70-g09d2 From 10c3fc8fa7e01105bcde394ef9629b40541f60ff Mon Sep 17 00:00:00 2001 From: George Rusu Date: Thu, 13 May 2021 13:46:19 -0700 Subject: simplified call to backend and refactored into service file --- src/components/friends/InviteFriendTile.tsx | 44 +++---------------- src/services/UserFriendsService.ts | 65 ++++++++++++++++++++++------- 2 files changed, 55 insertions(+), 54 deletions(-) (limited to 'src') diff --git a/src/components/friends/InviteFriendTile.tsx b/src/components/friends/InviteFriendTile.tsx index 9967b365..c47c8764 100644 --- a/src/components/friends/InviteFriendTile.tsx +++ b/src/components/friends/InviteFriendTile.tsx @@ -1,4 +1,3 @@ -import AsyncStorage from '@react-native-community/async-storage'; import React, {useEffect, useState} from 'react'; import { Alert, @@ -11,11 +10,7 @@ import { } from 'react-native'; import {useSelector} from 'react-redux'; import {RootState} from 'src/store/rootReducer'; -import { - CREATE_INVITE_CODE, - GET_REMAINING_INVITES, - TAGG_LIGHT_BLUE, -} from '../../constants'; +import {TAGG_LIGHT_BLUE} from '../../constants'; import { ERROR_NO_CONTACT_INVITE_LEFT, ERROR_SOMETHING_WENT_WRONG, @@ -25,7 +20,11 @@ import { SUCCESS_LAST_CONTACT_INVITE, } from '../../constants/strings'; import {InviteContactType} from '../../screens/profile/InviteFriendsScreen'; -import {inviteFriendService} from '../../services'; +import { + getRemainingInviteCount, + handleCreateInviteCode, + inviteFriendService, +} from '../../services'; import {normalize} from '../../utils'; interface InviteFriendTileProps { @@ -75,37 +74,6 @@ const InviteFriendTile: React.FC = ({item}) => { } }; - const getRemainingInviteCount = async () => { - const firstName = name.split(' ')[0]; - const lastName = name.split(' ')[1]; - const token = await AsyncStorage.getItem('token'); - const response = await fetch(GET_REMAINING_INVITES, { - method: 'POST', - headers: { - Authorization: 'Token ' + token, - }, - body: JSON.stringify({ - invitee_first_name: firstName, - invitee_last_name: lastName, - }), - }); - if (response.status === 200) { - const data = await response.json(); - return data.invites_left; - } else if (response.status === 500) { - return -1; - } - }; - - const handleCreateInviteCode = async () => { - const response = await fetch(CREATE_INVITE_CODE, {method: 'POST'}); - if (response.status === 200) { - const data = await response.json(); - return data.code; - } else if (response.status === 500) { - return -1; - } - }; useEffect(() => { const formatPhoneNumer = () => { const unformatted_number: string = item.phoneNumber; diff --git a/src/services/UserFriendsService.ts b/src/services/UserFriendsService.ts index deb3ec6d..453f35a5 100644 --- a/src/services/UserFriendsService.ts +++ b/src/services/UserFriendsService.ts @@ -1,7 +1,9 @@ import AsyncStorage from '@react-native-community/async-storage'; import {Alert} from 'react-native'; import { + CREATE_INVITE_CODE, FRIENDS_ENDPOINT, + GET_REMAINING_INVITES, INVITE_FRIEND_ENDPOINT, USERS_FROM_CONTACTS_ENDPOINT, } from '../constants'; @@ -220,23 +222,54 @@ export const inviteFriendService = async ( inviteeFirstName: string, inviteeLastName: string, ) => { - const token = await AsyncStorage.getItem('token'); - const response = await fetch(INVITE_FRIEND_ENDPOINT, { - method: 'POST', - headers: { - Authorization: 'Token ' + token, - }, - body: JSON.stringify({ - invitee_phone_number: phoneNumber, - invitee_first_name: inviteeFirstName, - invitee_last_name: inviteeLastName, - }), - }); - if (response.status === 201 || response.status === 200) { + try { + const token = await AsyncStorage.getItem('token'); + const response = await fetch(INVITE_FRIEND_ENDPOINT, { + method: 'POST', + headers: { + Authorization: 'Token ' + token, + }, + body: JSON.stringify({ + invitee_phone_number: phoneNumber, + invitee_first_name: inviteeFirstName, + invitee_last_name: inviteeLastName, + }), + }); + return response.status === 201 || response.status === 200; + } catch (error) { + console.log(error); + Alert.alert(ERROR_SOMETHING_WENT_WRONG_REFRESH); + return false; + } +}; + +export const handleCreateInviteCode = async () => { + const response = await fetch(CREATE_INVITE_CODE, {method: 'POST'}); + if (response.status === 200) { const data = await response.json(); - return data.invites_left; - } else if (response.status === 400) { + return data.code; + } else if (response.status === 500) { return -1; } - return false; +}; + +export const getRemainingInviteCount = async () => { + const token = await AsyncStorage.getItem('token'); + try { + const response = await fetch(GET_REMAINING_INVITES, { + method: 'GET', + headers: { + Authorization: 'Token ' + token, + }, + }); + if (response.status === 200) { + const data = await response.json(); + return data.invites_left; + } else if (response.status === 500) { + return -1; + } + } catch (error) { + console.log(error); + Alert.alert(ERROR_SOMETHING_WENT_WRONG_REFRESH); + } }; -- cgit v1.2.3-70-g09d2 From 8db9bb83850e8e368700cb9006b8666741360653 Mon Sep 17 00:00:00 2001 From: Ivan Chen Date: Thu, 13 May 2021 17:46:39 -0400 Subject: fixed pending state bug --- src/components/friends/InviteFriendTile.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/components/friends/InviteFriendTile.tsx b/src/components/friends/InviteFriendTile.tsx index c47c8764..abd017d0 100644 --- a/src/components/friends/InviteFriendTile.tsx +++ b/src/components/friends/InviteFriendTile.tsx @@ -38,7 +38,6 @@ const InviteFriendTile: React.FC = ({item}) => { const handleInviteFriend = async () => { const invites_left = await getRemainingInviteCount(); if (invites_left > 0) { - setInvited(true); Alert.alert( SUCCESS_CONFIRM_INVITE_CONTACT_TITLE(invites_left), SUCCESS_CONFIRM_INVITE_CONTACT_MESSAGE, @@ -47,6 +46,7 @@ const InviteFriendTile: React.FC = ({item}) => { { text: 'Yes!', onPress: async () => { + setInvited(true); const inviteCode = await handleCreateInviteCode(); await inviteFriendService( item.phoneNumber, -- cgit v1.2.3-70-g09d2 From 1e948b556fd53c02d7462576b183cdd6c4c793bb Mon Sep 17 00:00:00 2001 From: Ivan Chen Date: Thu, 13 May 2021 17:59:29 -0400 Subject: Revert "[TMA-844] Plus sign for profile and header in profile, ability to add on the sc…" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/icons/grey-purple-plus.svg | 5 -- src/assets/icons/purple-plus.svg | 15 ----- src/components/profile/Cover.tsx | 108 +++++----------------------------- src/components/profile/TaggAvatar.tsx | 67 ++------------------- src/utils/common.ts | 17 ------ src/utils/users.ts | 82 -------------------------- 6 files changed, 18 insertions(+), 276 deletions(-) delete mode 100644 src/assets/icons/grey-purple-plus.svg delete mode 100644 src/assets/icons/purple-plus.svg (limited to 'src') diff --git a/src/assets/icons/grey-purple-plus.svg b/src/assets/icons/grey-purple-plus.svg deleted file mode 100644 index 2053d4a7..00000000 --- a/src/assets/icons/grey-purple-plus.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/assets/icons/purple-plus.svg b/src/assets/icons/purple-plus.svg deleted file mode 100644 index 20949b6d..00000000 --- a/src/assets/icons/purple-plus.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/src/components/profile/Cover.tsx b/src/components/profile/Cover.tsx index 5d5b4234..27777b64 100644 --- a/src/components/profile/Cover.tsx +++ b/src/components/profile/Cover.tsx @@ -1,93 +1,28 @@ -import React, {useState, useEffect} from 'react'; -import { - Image, - StyleSheet, - View, - TouchableOpacity, - Text, - ImageBackground, -} from 'react-native'; +import React from 'react'; +import {Image, StyleSheet, View} from 'react-native'; +import {useSelector} from 'react-redux'; import {COVER_HEIGHT, IMAGE_WIDTH} from '../../constants'; -import {ScreenType} from '../../types'; -import GreyPurplePlus from '../../assets/icons/grey-purple-plus.svg'; -import {useDispatch, useSelector} from 'react-redux'; -import {loadUserData, resetHeaderAndProfileImage} from '../../store/actions'; import {RootState} from '../../store/rootreducer'; -import {normalize, patchProfile, validateImageLink} from '../../utils'; +import {ScreenType} from '../../types'; interface CoverProps { userXId: string | undefined; screenType: ScreenType; } const Cover: React.FC = ({userXId, screenType}) => { - const dispatch = useDispatch(); - const {cover, user} = useSelector((state: RootState) => + const {cover} = useSelector((state: RootState) => userXId ? state.userX[screenType][userXId] : state.user, ); - const [needsUpdate, setNeedsUpdate] = useState(false); - const [loading, setLoading] = useState(false); - const [validImage, setValidImage] = useState(true); - - useEffect(() => { - checkAvatar(cover); - }, []); - - useEffect(() => { - if (needsUpdate) { - const userId = user.userId; - const username = user.username; - dispatch(resetHeaderAndProfileImage()); - dispatch(loadUserData({userId, username})); - } - }, [dispatch, needsUpdate]); - - const handleNewImage = async () => { - setLoading(true); - const result = await patchProfile('header', user.userId); - setLoading(true); - if (result) { - setNeedsUpdate(true); - } else { - setLoading(false); - } - }; - - const checkAvatar = async (url: string | undefined) => { - const valid = await validateImageLink(url); - if (valid !== validImage) { - setValidImage(valid); - } - }; - - if (!validImage && userXId === undefined && !loading) { - return ( - - - handleNewImage()}> - - Add Picture - - - - ); - } else { - return ( - - - - ); - } + return ( + + + + ); }; const styles = StyleSheet.create({ @@ -98,20 +33,5 @@ const styles = StyleSheet.create({ width: IMAGE_WIDTH, height: COVER_HEIGHT, }, - plus: { - position: 'absolute', - top: 75, - right: 125, - }, - text: { - color: 'white', - position: 'absolute', - fontSize: normalize(16), - top: 80, - right: 20, - }, - touch: { - flex: 1, - }, }); export default Cover; diff --git a/src/components/profile/TaggAvatar.tsx b/src/components/profile/TaggAvatar.tsx index 304b9e3a..ea0bdb65 100644 --- a/src/components/profile/TaggAvatar.tsx +++ b/src/components/profile/TaggAvatar.tsx @@ -1,12 +1,9 @@ -import React, {useState, useEffect} from 'react'; -import {StyleSheet, TouchableOpacity} from 'react-native'; +import React from 'react'; +import {StyleSheet} from 'react-native'; +import {useSelector} from 'react-redux'; import {RootState} from '../../store/rootreducer'; import {ScreenType} from '../../types'; import {Avatar} from '../common'; -import {useDispatch, useSelector} from 'react-redux'; -import {loadUserData, resetHeaderAndProfileImage} from '../../store/actions'; -import PurplePlus from '../../assets/icons/purple-plus.svg'; -import {patchProfile, validateImageLink} from '../../utils'; const PROFILE_DIM = 100; @@ -23,59 +20,8 @@ const TaggAvatar: React.FC = ({ const {avatar} = useSelector((state: RootState) => userXId ? state.userX[screenType][userXId] : state.user, ); - const dispatch = useDispatch(); - const [needsUpdate, setNeedsUpdate] = useState(false); - const [loading, setLoading] = useState(false); - const [validImage, setValidImage] = useState(true); - const {user} = useSelector((state: RootState) => - userXId ? state.userX[screenType][userXId] : state.user, - ); - - useEffect(() => { - checkAvatar(avatar); - }, []); - - useEffect(() => { - if (needsUpdate) { - const userId = user.userId; - const username = user.username; - dispatch(resetHeaderAndProfileImage()); - dispatch(loadUserData({userId, username})); - } - }, [dispatch, needsUpdate]); - const handleNewImage = async () => { - setLoading(true); - const result = await patchProfile('profile', user.userId); - if (result) { - setNeedsUpdate(true); - } else { - setLoading(false); - } - }; - - const checkAvatar = async (url: string | undefined) => { - const valid = await validateImageLink(url); - if (valid !== validImage) { - setValidImage(valid); - } - }; - - if (!validImage && userXId === undefined && !loading) { - return ( - <> - - handleNewImage()}> - - - - ); - } else { - return ; - } + return ; }; const styles = StyleSheet.create({ @@ -84,11 +30,6 @@ const styles = StyleSheet.create({ width: PROFILE_DIM, borderRadius: PROFILE_DIM / 2, }, - plus: { - position: 'absolute', - bottom: 35, - right: 0, - }, }); export default TaggAvatar; diff --git a/src/utils/common.ts b/src/utils/common.ts index 95e77f64..ce4ab7d1 100644 --- a/src/utils/common.ts +++ b/src/utils/common.ts @@ -180,20 +180,3 @@ const _crestIcon = (university: UniversityType) => { return require('../assets/images/bwbadges.png'); } }; - -export const validateImageLink = async (url: string | undefined) => { - if (!url) { - return false; - } - return fetch(url) - .then((res) => { - if (res.status === 200) { - return true; - } else { - return false; - } - }) - .catch((_) => { - return false; - }); -}; diff --git a/src/utils/users.ts b/src/utils/users.ts index 430c843f..334cb3c0 100644 --- a/src/utils/users.ts +++ b/src/utils/users.ts @@ -1,4 +1,3 @@ -import {Alert} from 'react-native'; import AsyncStorage from '@react-native-community/async-storage'; import {INTEGRATED_SOCIAL_LIST} from '../constants'; import {isUserBlocked, loadSocialPosts, removeBadgesService} from '../services'; @@ -25,8 +24,6 @@ import { UserType, UniversityBadge, } from './../types/types'; -import ImagePicker from 'react-native-image-crop-picker'; -import {patchEditProfile} from '../services'; const loadData = async (dispatch: AppDispatch, user: UserType) => { await Promise.all([ @@ -243,82 +240,3 @@ export const navigateToProfile = async ( screenType, }); }; - -export const patchProfile = async ( - title: 'profile' | 'header', - userId: string, -) => { - let imageSettings = {}; - let screenTitle: string; - let requestTitle: string; - let fileName: string; - switch (title) { - case 'header': - screenTitle = 'Select Header Picture'; - requestTitle = 'largeProfilePicture'; - fileName = 'large_profile_pic.jpg'; - imageSettings = { - smartAlbums: [ - 'Favorites', - 'RecentlyAdded', - 'SelfPortraits', - 'Screenshots', - 'UserLibrary', - ], - width: 580, - height: 580, - cropping: true, - cropperToolbarTitle: screenTitle, - mediaType: 'photo', - }; - break; - case 'profile': - screenTitle = 'Select Profile Picture'; - requestTitle = 'smallProfilePicture'; - fileName = 'small_profile_pic.jpg'; - imageSettings = { - smartAlbums: [ - 'Favorites', - 'RecentlyAdded', - 'SelfPortraits', - 'Screenshots', - 'UserLibrary', - ], - width: 580, - height: 580, - cropping: true, - cropperToolbarTitle: screenTitle, - mediaType: 'photo', - cropperCircleOverlay: true, - }; - break; - default: - screenTitle = ''; - requestTitle = ''; - fileName = ''; - } - - return await ImagePicker.openPicker(imageSettings) - .then((picture) => { - if ('path' in picture) { - const request = new FormData(); - request.append(requestTitle, { - uri: picture.path, - name: fileName, - type: 'image/jpg', - }); - - return patchEditProfile(request, userId) - .then((_) => { - return true; - }) - .catch((error) => { - Alert.alert(error); - return false; - }); - } - }) - .catch((_) => { - return false; - }); -}; -- cgit v1.2.3-70-g09d2 From 3262626f8beffaa8ee0f4a7a643bcf0c01ee694a Mon Sep 17 00:00:00 2001 From: Brian Kim Date: Thu, 13 May 2021 15:24:28 -0700 Subject: Tiny change to push not navigate, no longer goes back --- src/components/profile/FriendsCount.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/components/profile/FriendsCount.tsx b/src/components/profile/FriendsCount.tsx index 8252266e..a299e9a1 100644 --- a/src/components/profile/FriendsCount.tsx +++ b/src/components/profile/FriendsCount.tsx @@ -37,7 +37,7 @@ const FriendsCount: React.FC = ({ return ( - navigation.navigate('FriendsListScreen', { + navigation.push('FriendsListScreen', { userXId, screenType, }) -- cgit v1.2.3-70-g09d2