From 5cfced8a33a5f8eaa14e0549ee4b013bafa0833c Mon Sep 17 00:00:00 2001 From: Shravya Ramesh Date: Tue, 27 Apr 2021 16:38:20 -0700 Subject: Added badges to store --- src/store/initialStates.ts | 1 + src/store/reducers/userReducer.ts | 5 +++++ 2 files changed, 6 insertions(+) (limited to 'src/store') diff --git a/src/store/initialStates.ts b/src/store/initialStates.ts index 7fd3ac5a..e0f9d776 100644 --- a/src/store/initialStates.ts +++ b/src/store/initialStates.ts @@ -18,6 +18,7 @@ export const NO_PROFILE: ProfileInfoType = { birthday: undefined, university_class: 2021, university: undefined, + badges: [], //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/store/reducers/userReducer.ts b/src/store/reducers/userReducer.ts index a8789c1d..97bf845c 100644 --- a/src/store/reducers/userReducer.ts +++ b/src/store/reducers/userReducer.ts @@ -42,6 +42,10 @@ const userDataSlice = createSlice({ } }, + profileBadgesUpdated: (state, action) => { + state.profile.badges = action.payload.badges; + }, + profileCompletionStageUpdated: (state, action) => { state.profile.profile_completion_stage = action.payload.stage; }, @@ -90,6 +94,7 @@ export const { setReplyPosted, setSuggestedPeopleImage, clearHeaderAndProfileImages, + profileBadgesUpdated, // setChatClientReady, } = userDataSlice.actions; export const userDataReducer = userDataSlice.reducer; -- cgit v1.2.3-70-g09d2 From 20d2c580dd9576a3cfd95543300d7735157a3494 Mon Sep 17 00:00:00 2001 From: Shravya Ramesh Date: Tue, 27 Apr 2021 17:51:55 -0700 Subject: Added action to update badges --- src/store/actions/user.ts | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'src/store') diff --git a/src/store/actions/user.ts b/src/store/actions/user.ts index 3ebd4190..96e636f6 100644 --- a/src/store/actions/user.ts +++ b/src/store/actions/user.ts @@ -6,10 +6,11 @@ import { loadProfileInfo, sendSuggestedPeopleLinked, } from '../../services'; -import {UserType} from '../../types/types'; +import {UniversityBadge, UserType} from '../../types/types'; import {getTokenOrLogout} from '../../utils'; import { clearHeaderAndProfileImages, + profileBadgesUpdated, profileCompletionStageUpdated, setIsOnboardedUser, setNewNotificationReceived, @@ -90,6 +91,25 @@ export const updateSocial = ( } }; +/** + * To update new user badges + * @param badges current selection of badges + */ +export const updateUserBadges = ( + badges: UniversityBadge[], +): ThunkAction, RootState, unknown, Action> => async ( + dispatch, +) => { + try { + dispatch({ + type: profileBadgesUpdated.type, + payload: {badges}, + }); + } catch (error) { + console.log(error); + } +}; + export const updateProfileCompletionStage = ( stage: number, ): ThunkAction, RootState, unknown, Action> => async ( -- cgit v1.2.3-70-g09d2