aboutsummaryrefslogtreecommitdiff
path: root/src/utils
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils')
-rw-r--r--src/utils/moments.ts34
-rw-r--r--src/utils/users.ts21
2 files changed, 54 insertions, 1 deletions
diff --git a/src/utils/moments.ts b/src/utils/moments.ts
index 87f062af..90d69519 100644
--- a/src/utils/moments.ts
+++ b/src/utils/moments.ts
@@ -37,3 +37,37 @@ export const getTimePosted = (date_time: string) => {
}
return time;
};
+
+export const getTimeInShorthand = (date_time: string) => {
+ const datePosted = moment(date_time);
+ const now = moment();
+ var time = date_time;
+ var difference = now.diff(datePosted, 's');
+
+ // Creating elapsedTime string to display to user
+ // 0 to less than 1 minute
+ if (difference < 60) {
+ time = difference + 's';
+ }
+ // 1 minute to less than 1 hour
+ else if (difference >= 60 && difference < 60 * 60) {
+ difference = now.diff(datePosted, 'm');
+ time = difference + 'm';
+ }
+ // 1 hour to less than 1 day
+ else if (difference >= 60 * 60 && difference < 24 * 60 * 60) {
+ difference = now.diff(datePosted, 'h');
+ time = difference + 'h';
+ }
+ // Any number of days
+ else if (difference >= 24 * 60 * 60 && difference < 24 * 60 * 60 * 7) {
+ difference = now.diff(datePosted, 'd');
+ time = difference + 'd';
+ }
+ // More than 7 days
+ else if (difference >= 24 * 60 * 60 * 7) {
+ difference = now.diff(datePosted, 'w');
+ time = difference + 'w';
+ }
+ return time;
+};
diff --git a/src/utils/users.ts b/src/utils/users.ts
index 754382b3..334cb3c0 100644
--- a/src/utils/users.ts
+++ b/src/utils/users.ts
@@ -1,6 +1,6 @@
import AsyncStorage from '@react-native-community/async-storage';
import {INTEGRATED_SOCIAL_LIST} from '../constants';
-import {isUserBlocked, loadSocialPosts} from '../services';
+import {isUserBlocked, loadSocialPosts, removeBadgesService} from '../services';
import {
loadAllSocials,
loadBlockedList,
@@ -10,6 +10,7 @@ import {
loadUserMoments,
loadUserNotifications,
logout,
+ updateUserBadges,
} from '../store/actions';
import {NO_SOCIAL_ACCOUNTS} from '../store/initialStates';
import {loadUserMomentCategories} from './../store/actions/momentCategories';
@@ -21,6 +22,7 @@ import {
ProfilePreviewType,
ScreenType,
UserType,
+ UniversityBadge,
} from './../types/types';
const loadData = async (dispatch: AppDispatch, user: UserType) => {
@@ -200,6 +202,23 @@ export const canViewProfile = (
return false;
};
+/* Function to call remove badge service,
+ * remove selected badge from list passed in and
+ * dispatch thunk action to update store
+ */
+export const removeUserBadge = async (
+ badges: UniversityBadge[],
+ badgeName: string,
+ userId: string,
+ dispatch: AppDispatch,
+) => {
+ const success = await removeBadgesService([badgeName], userId);
+ if (success === true) {
+ badges = badges.filter((badge) => badge.name !== badgeName);
+ dispatch(updateUserBadges(badges));
+ }
+};
+
export const navigateToProfile = async (
state: RootState,
dispatch: any,