aboutsummaryrefslogtreecommitdiff
path: root/src/utils/users.ts
diff options
context:
space:
mode:
authorIvan Chen <ivan@tagg.id>2021-03-26 15:33:37 -0400
committerIvan Chen <ivan@tagg.id>2021-03-26 15:33:37 -0400
commit9be7248ba54eeb2ad4d19edd4c01ee736b58bfcd (patch)
tree6f66b86bbe9adaffb7d866b22a89e0e3f78f26a3 /src/utils/users.ts
parent883a6c51d4c3e442df5e6c0f3dc6fada2f370f8e (diff)
parent99de9c8402f470ead242a81510dc2764ae7d9e66 (diff)
Merge branch 'master' into tma728-select-school-onboarding
# Conflicts: # src/services/UserProfileService.ts # src/types/types.ts
Diffstat (limited to 'src/utils/users.ts')
-rw-r--r--src/utils/users.ts24
1 files changed, 16 insertions, 8 deletions
diff --git a/src/utils/users.ts b/src/utils/users.ts
index 82bcb309..d5e44b36 100644
--- a/src/utils/users.ts
+++ b/src/utils/users.ts
@@ -20,7 +20,7 @@ import {RootState} from './../store/rootReducer';
import {
ProfilePreviewType,
CategoryPreviewType,
- ProfileType,
+ ProfileInfoType,
ScreenType,
UserType,
} from './../types/types';
@@ -103,13 +103,22 @@ export const userXInStore = (
* Abstracted the code to laod all socials out.
* @param userId userId for whom socials should be fetched
*/
-export const loadAllSocialsForUser = async (userId: string) => {
+export const loadAllSocialsForUser = async (userId: string, token?: string) => {
+ if (!token) {
+ token = (await AsyncStorage.getItem('token')) ?? '';
+ }
let socials = NO_SOCIAL_ACCOUNTS;
try {
- let socialNeedsUpdate = INTEGRATED_SOCIAL_LIST;
- for (let socialType of socialNeedsUpdate) {
- const social = await loadSocialPosts(userId, socialType);
- socials = {...socials, [socialType]: social};
+ const fetchedSocials = await Promise.all(
+ INTEGRATED_SOCIAL_LIST.map((socialType) =>
+ loadSocialPosts(userId, socialType, token).then((data) => ({
+ key: socialType,
+ data,
+ })),
+ ),
+ );
+ for (const fetchedSocial of fetchedSocials) {
+ socials = {...socials, [fetchedSocial.key]: fetchedSocial.data};
}
return socials;
} catch (error) {
@@ -137,7 +146,7 @@ export const getTokenOrLogout = async (dispatch: Function): Promise<string> => {
*/
export const getUserAsProfilePreviewType = (
passedInUser: UserType,
- passedInProfile: ProfileType,
+ passedInProfile: ProfileInfoType,
): ProfilePreviewType => {
const fullName = passedInProfile.name.split(' ');
return {
@@ -165,4 +174,3 @@ export const defaultUserProfile = () => {
const defaultImage = require('../assets/images/avatar-placeholder.png');
return defaultImage;
};
-