aboutsummaryrefslogtreecommitdiff
path: root/src/screens
diff options
context:
space:
mode:
Diffstat (limited to 'src/screens')
-rw-r--r--src/screens/badge/BadgeSelection.tsx71
-rw-r--r--src/screens/suggestedPeople/SPBody.tsx2
2 files changed, 10 insertions, 63 deletions
diff --git a/src/screens/badge/BadgeSelection.tsx b/src/screens/badge/BadgeSelection.tsx
index 7088821a..ed3f199d 100644
--- a/src/screens/badge/BadgeSelection.tsx
+++ b/src/screens/badge/BadgeSelection.tsx
@@ -1,4 +1,3 @@
-import AsyncStorage from '@react-native-community/async-storage';
import {RouteProp} from '@react-navigation/core';
import {StackNavigationProp} from '@react-navigation/stack';
import React, {useEffect, useState} from 'react';
@@ -7,17 +6,11 @@ import {Text} from 'react-native-animatable';
import {TouchableOpacity} from 'react-native-gesture-handler';
import LinearGradient from 'react-native-linear-gradient';
import {useDispatch} from 'react-redux';
-import {MainStackParams} from 'src/routes';
-import {
- ADD_USER_BADGES,
- BACKGROUND_GRADIENT_MAP,
- UPDATE_USER_BADGES,
-} from '../../constants';
+import {MainStackParams} from '../../routes';
+import {addBadgesService, updateBadgesService} from '../../services';
+import {BACKGROUND_GRADIENT_MAP} from '../../constants';
import {BADGE_DATA} from '../../constants/badges';
-import {
- ERROR_BADGES_EXCEED_LIMIT,
- ERROR_UPLOAD_BADGES,
-} from '../../constants/strings';
+import {ERROR_BADGES_EXCEED_LIMIT} from '../../constants/strings';
import {suggestedPeopleBadgesFinished} from '../../store/actions';
import {BackgroundGradientType, UniversityBadge} from '../../types';
import {SCREEN_HEIGHT, StatusBarHeight} from '../../utils';
@@ -52,11 +45,14 @@ const BadgeSelection: React.FC<BadgeSelectionProps> = ({navigation, route}) => {
style={styles.rightButtonContainer}
onPress={async () => {
if (route?.params.editing) {
- updateBadgesService();
+ updateBadgesService(selectedBadges);
navigation.goBack();
} else {
if (selectedBadges.length !== 0) {
- uploadUserSelection();
+ const success = await addBadgesService(selectedBadges);
+ if (success) {
+ dispatch(suggestedPeopleBadgesFinished());
+ }
} else {
dispatch(suggestedPeopleBadgesFinished());
}
@@ -103,55 +99,6 @@ const BadgeSelection: React.FC<BadgeSelectionProps> = ({navigation, route}) => {
}
};
- const uploadUserSelection = async () => {
- try {
- const token = await AsyncStorage.getItem('token');
- const form = new FormData();
- form.append('badges', JSON.stringify(selectedBadges));
- const response = await fetch(ADD_USER_BADGES, {
- method: 'POST',
- headers: {
- 'Content-Type': 'multipart/form-data',
- Authorization: 'Token ' + token,
- },
- body: form,
- });
- if (response.status === 400) {
- Alert.alert(ERROR_BADGES_EXCEED_LIMIT);
- return;
- }
- dispatch(suggestedPeopleBadgesFinished());
- } catch (error) {
- console.log(error);
- Alert.alert(ERROR_UPLOAD_BADGES);
- }
- };
-
- const updateBadgesService = async () => {
- try {
- const token = await AsyncStorage.getItem('token');
- const form = new FormData();
- console.log('selectedBadges: ', selectedBadges);
- form.append('badges', JSON.stringify(selectedBadges));
- const response = await fetch(UPDATE_USER_BADGES, {
- method: 'POST',
- headers: {
- 'Content-Type': 'multipart/form-data',
- Authorization: 'Token ' + token,
- },
- body: form,
- });
- if (response.status === 400) {
- Alert.alert(ERROR_BADGES_EXCEED_LIMIT);
- return;
- }
- console.log('response: ', response);
- } catch (error) {
- console.log(error);
- Alert.alert(ERROR_UPLOAD_BADGES);
- }
- };
-
return (
<LinearGradient
colors={BACKGROUND_GRADIENT_MAP[BackgroundGradientType.Dark]}
diff --git a/src/screens/suggestedPeople/SPBody.tsx b/src/screens/suggestedPeople/SPBody.tsx
index 6572dc55..bba137c0 100644
--- a/src/screens/suggestedPeople/SPBody.tsx
+++ b/src/screens/suggestedPeople/SPBody.tsx
@@ -50,7 +50,7 @@ const SPBody: React.FC<SPBodyProps> = ({
let array = [];
useEffect(() => {
const findBadgeIcons = (badge: UniversityBadge) => {
- DATA.forEach((item) => {
+ DATA?.forEach((item) => {
if (item.title === badge.category) {
item.data.forEach((object) => {
if (object.badgeName === badge.name) {