@selfcommunity/react-core 0.6.0-alpha.6 → 0.6.0-alpha.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/constants/Preferences.d.ts +2 -0
- package/lib/cjs/constants/Preferences.js +6 -2
- package/lib/cjs/hooks/useSCSubscribedEventsManager.d.ts +1 -1
- package/lib/cjs/hooks/useSCSubscribedEventsManager.js +37 -42
- package/lib/esm/constants/Preferences.d.ts +2 -0
- package/lib/esm/constants/Preferences.js +4 -0
- package/lib/esm/hooks/useSCSubscribedEventsManager.d.ts +1 -1
- package/lib/esm/hooks/useSCSubscribedEventsManager.js +37 -42
- package/lib/umd/react-core.js +1 -1
- package/package.json +5 -5
|
@@ -134,6 +134,8 @@ export declare const CONFIGURATIONS_EVENTS_ENABLED: string;
|
|
|
134
134
|
export declare const CONFIGURATIONS_EVENTS_ONLY_STAFF_ENABLED: string;
|
|
135
135
|
export declare const CONFIGURATIONS_EVENTS_VISIBILITY_ENABLED: string;
|
|
136
136
|
export declare const CONFIGURATIONS_EVENTS_PRIVATE_ENABLED: string;
|
|
137
|
+
export declare const CONFIGURATIONS_ONBOARDING_ENABLED: string;
|
|
138
|
+
export declare const CONFIGURATIONS_ONBOARDING_HIDDEN: string;
|
|
137
139
|
/**
|
|
138
140
|
* PROVIDERS
|
|
139
141
|
*/
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ADDONS_SHARE_POST_ON_FACEBOOK_ENABLED = exports.ADDONS_POST_GEOLOCATION_ENABLED = exports.ADDONS_REGISTRATION_WIZARD = exports.ADDONS_POLLS_ENABLED = exports.ADDONS_LOYALTY_POINTS_COLLECTION = exports.ADDONS_INCUBATOR_SUBSCRIBERS = exports.ADDONS_INCUBATOR_ENABLED = exports.ADDONS_CLOSED_COMMUNITY = exports.ADDONS_AFFINITY_ENABLED = exports.POINTS_DAILY_VISIT = exports.POINTS_APP_USED = exports.POINTS_SOCIAL_SHARE = exports.POINTS_CONNECTION_OR_FOLLOWER = exports.POINTS_RECEIVE_VOTE = exports.POINTS_MAKE_COMMENT = exports.POINTS_MAKE_POST = exports.POINTS_MAKE_DISCUSSION = exports.LOYALTY_PRIZE_C_IMAGE = exports.LOYALTY_PRIZE_B_IMAGE = exports.LOYALTY_PRIZE_A_IMAGE = exports.STAFF_STAFF_BADGE_LABEL = exports.STAFF_STAFF_BADGE_ICON = exports.IMAGES_ERRORPAGES_IMAGE = exports.IMAGES_ERROR_503 = exports.IMAGES_ERROR_404 = exports.IMAGES_USER_DEFAULT_COVER = exports.IMAGES_APP_ICON = exports.COVERS_VISIBILITY = exports.COVERS_COVER_4_HP_M1920 = exports.COVERS_COVER_3_HP_M1920 = exports.COVERS_COVER_2_HP_M1920 = exports.COVERS_COVER_1_HP_M1920 = exports.COLORS_COLORFONTSECONDARY = exports.COLORS_COLORFONT = exports.COLORS_NAVBARBACK = exports.COLORS_COLORSECONDARY = exports.COLORS_COLORPRIMARY = exports.COLORS_COLORBACK = exports.LOGO_NAVBAR_LOGO_MOBILE = exports.LOGO_NAVBAR_LOGO = exports.STYLE_FONT_FAMILY = exports.TEXT_ERROR_PAGES_SUBTITLE = exports.TEXT_ERROR_PAGES_TITLE = exports.TEXT_APPLICATION_COPYRIGHT = exports.TEXT_APPLICATION_SLOGAN2 = exports.TEXT_APPLICATION_SLOGAN1 = exports.TEXT_APPLICATION_NAME = exports.DEFAULT_GLOBAL_PREFERENCES_OPTION = exports.GLOBAL_PREFERENCES_OPTION = exports.PREFERENCES_OPTION = void 0;
|
|
4
|
-
exports.
|
|
5
|
-
exports.DATA_TYPES = exports.getPreference = exports.getPreferenceName = exports.getPreferenceSection = exports.WEBMASTER_META_DESCRIPTION = exports.WEBMASTER_META_TITLE_HOME_NOT_LOGGED = exports.WEBMASTER_META_ROBOTS = exports.PROVIDERS_WEB_PUSH_ENABLED = exports.PROVIDERS_WEB_PUSH_PUBLIC_KEY = exports.PROVIDERS_GOOGLE_APP_SECRET = exports.PROVIDERS_GOOGLE_APP_KEY = exports.PROVIDERS_GOOGLE_SIGNIN_ENABLED = exports.PROVIDERS_GOOGLE_GEOCODING_API_KEY = exports.PROVIDERS_TWITTER_APP_SECRET = exports.PROVIDERS_TWITTER_APP_KEY = exports.PROVIDERS_TWITTER_SIGNIN_ENABLED = exports.PROVIDERS_LINKEDIN_APP_SECRET = exports.PROVIDERS_LINKEDIN_APP_KEY = exports.PROVIDERS_LINKEDIN_SIGNIN_ENABLED = exports.PROVIDERS_FACEBOOK_APP_SECRET = exports.PROVIDERS_FACEBOOK_APP_KEY = exports.PROVIDERS_FACEBOOK_SIGNIN_ENABLED = exports.PROVIDERS_APP_URL_ON_GOOGLE_PLAY = void 0;
|
|
4
|
+
exports.CONFIGURATIONS_ONBOARDING_ENABLED = exports.CONFIGURATIONS_EVENTS_PRIVATE_ENABLED = exports.CONFIGURATIONS_EVENTS_VISIBILITY_ENABLED = exports.CONFIGURATIONS_EVENTS_ONLY_STAFF_ENABLED = exports.CONFIGURATIONS_EVENTS_ENABLED = exports.CONFIGURATIONS_GROUPS_PRIVATE_ENABLED = exports.CONFIGURATIONS_GROUPS_VISIBILITY_ENABLED = exports.CONFIGURATIONS_GROUPS_ONLY_STAFF_ENABLED = exports.CONFIGURATIONS_GROUPS_ENABLED = exports.CONFIGURATIONS_CUSTOM_NAVBAR_ITEM_IMAGE = exports.CONFIGURATIONS_CUSTOM_NAVBAR_ITEM_URL = exports.CONFIGURATIONS_CUSTOM_NAVBAR_ITEM_TEXT = exports.CONFIGURATIONS_CUSTOM_NAVBAR_ITEM_ENABLED = exports.CONFIGURATIONS_GDPR_SIGNUP_ACCEPT_HTML = exports.CONFIGURATIONS_GDPR_COOKIE_CONSENT_EXTERNAL_HTML = exports.CONFIGURATIONS_TAG_MANAGER_CONTAINER_ID = exports.CONFIGURATIONS_USER_METADATA_DEFINITIONS = exports.CONFIGURATIONS_APP_URL = exports.CONFIGURATIONS_URL_TEMPLATE_INCUBATOR = exports.CONFIGURATIONS_URL_TEMPLATE_USER_PRIVATE_MESSAGES = exports.CONFIGURATIONS_URL_TEMPLATE_NOTIFICATIONS = exports.CONFIGURATIONS_URL_TEMPLATE_USER_PROFILE_SETTINGS = exports.CONFIGURATIONS_URL_TEMPLATE_USER_PROFILE = exports.CONFIGURATIONS_URL_TEMPLATE_CATEGORIES_LIST = exports.CONFIGURATIONS_URL_TEMPLATE_CATEGORY = exports.CONFIGURATIONS_URL_TEMPLATE_COMMENT = exports.CONFIGURATIONS_URL_TEMPLATE_STATUS = exports.CONFIGURATIONS_URL_TEMPLATE_DISCUSSION = exports.CONFIGURATIONS_URL_TEMPLATE_POST = exports.CONFIGURATIONS_URL_TEMPLATE_VERIFY_EMAIL = exports.CONFIGURATIONS_URL_TEMPLATE_PASSWORD_RECOVER = exports.CONFIGURATIONS_URL_TEMPLATE_EMAIL_UNSUBSCRIBE = exports.CONFIGURATIONS_URL_TEMPLATE_EMAIL_SETTINGS = exports.CONFIGURATIONS_STATUS_TYPE_ENABLED = exports.CONFIGURATIONS_DISCUSSION_TYPE_ENABLED = exports.CONFIGURATIONS_POST_TYPE_ENABLED = exports.CONFIGURATIONS_USERS_APPROVAL_ENABLED = exports.CONFIGURATIONS_CONTENT_AVAILABILITY = exports.CONFIGURATIONS_STREAM_QUALITY = exports.CONFIGURATIONS_POST_ONLY_STAFF_ENABLED = exports.CONFIGURATIONS_PEOPLE_SEARCH_ENABLED = exports.CONFIGURATIONS_MANUAL_CATEGORIES_ORDER_ENABLED = exports.CONFIGURATIONS_HOME_STREAM_ORDER_BY = exports.CONFIGURATIONS_EXPLORE_STREAM_ORDER_BY = exports.CONFIGURATIONS_EXPLORE_STREAM_ENABLED = exports.CONFIGURATIONS_FOLLOW_ENABLED = exports.ADVERTISING_CUSTOM_ADV_ONLY_FOR_ANONYMOUS_USERS_ENABLED = exports.ADVERTISING_CUSTOM_ADV_ENABLED = exports.ADDONS_SHARE_POST_ON_LINKEDIN_ENABLED = exports.ADDONS_SHARE_POST_ON_TWITTER_ENABLED = void 0;
|
|
5
|
+
exports.DATA_TYPES = exports.getPreference = exports.getPreferenceName = exports.getPreferenceSection = exports.WEBMASTER_META_DESCRIPTION = exports.WEBMASTER_META_TITLE_HOME_NOT_LOGGED = exports.WEBMASTER_META_ROBOTS = exports.PROVIDERS_WEB_PUSH_ENABLED = exports.PROVIDERS_WEB_PUSH_PUBLIC_KEY = exports.PROVIDERS_GOOGLE_APP_SECRET = exports.PROVIDERS_GOOGLE_APP_KEY = exports.PROVIDERS_GOOGLE_SIGNIN_ENABLED = exports.PROVIDERS_GOOGLE_GEOCODING_API_KEY = exports.PROVIDERS_TWITTER_APP_SECRET = exports.PROVIDERS_TWITTER_APP_KEY = exports.PROVIDERS_TWITTER_SIGNIN_ENABLED = exports.PROVIDERS_LINKEDIN_APP_SECRET = exports.PROVIDERS_LINKEDIN_APP_KEY = exports.PROVIDERS_LINKEDIN_SIGNIN_ENABLED = exports.PROVIDERS_FACEBOOK_APP_SECRET = exports.PROVIDERS_FACEBOOK_APP_KEY = exports.PROVIDERS_FACEBOOK_SIGNIN_ENABLED = exports.PROVIDERS_APP_URL_ON_GOOGLE_PLAY = exports.PROVIDERS_APP_URL_ON_APP_STORE = exports.CONFIGURATIONS_ONBOARDING_HIDDEN = void 0;
|
|
6
6
|
const types_1 = require("@selfcommunity/types");
|
|
7
7
|
/**
|
|
8
8
|
* DEFAULT CONF VALIDATION OPTION
|
|
@@ -140,6 +140,8 @@ exports.CONFIGURATIONS_EVENTS_ENABLED = `${types_1.SCPreferenceSection.CONFIGURA
|
|
|
140
140
|
exports.CONFIGURATIONS_EVENTS_ONLY_STAFF_ENABLED = `${types_1.SCPreferenceSection.CONFIGURATIONS}.${types_1.SCPreferenceName.EVENTS_ONLY_STAFF_ENABLED}`;
|
|
141
141
|
exports.CONFIGURATIONS_EVENTS_VISIBILITY_ENABLED = `${types_1.SCPreferenceSection.CONFIGURATIONS}.${types_1.SCPreferenceName.EVENTS_VISIBILITY_ENABLED}`;
|
|
142
142
|
exports.CONFIGURATIONS_EVENTS_PRIVATE_ENABLED = `${types_1.SCPreferenceSection.CONFIGURATIONS}.${types_1.SCPreferenceName.EVENTS_PRIVATE_ENABLED}`;
|
|
143
|
+
exports.CONFIGURATIONS_ONBOARDING_ENABLED = `${types_1.SCPreferenceSection.CONFIGURATIONS}.${types_1.SCPreferenceName.ONBOARDING_ENABLED}`;
|
|
144
|
+
exports.CONFIGURATIONS_ONBOARDING_HIDDEN = `${types_1.SCPreferenceSection.CONFIGURATIONS}.${types_1.SCPreferenceName.ONBOARDING_HIDDEN}`;
|
|
143
145
|
/**
|
|
144
146
|
* PROVIDERS
|
|
145
147
|
*/
|
|
@@ -287,6 +289,8 @@ exports.DATA_TYPES = {
|
|
|
287
289
|
[exports.CONFIGURATIONS_EVENTS_ONLY_STAFF_ENABLED]: booleanType,
|
|
288
290
|
[exports.CONFIGURATIONS_EVENTS_VISIBILITY_ENABLED]: booleanType,
|
|
289
291
|
[exports.CONFIGURATIONS_EVENTS_PRIVATE_ENABLED]: booleanType,
|
|
292
|
+
[exports.CONFIGURATIONS_ONBOARDING_ENABLED]: booleanType,
|
|
293
|
+
[exports.CONFIGURATIONS_ONBOARDING_HIDDEN]: booleanType,
|
|
290
294
|
[exports.PROVIDERS_APP_URL_ON_APP_STORE]: stringType,
|
|
291
295
|
[exports.PROVIDERS_APP_URL_ON_GOOGLE_PLAY]: stringType,
|
|
292
296
|
[exports.PROVIDERS_FACEBOOK_SIGNIN_ENABLED]: stringType,
|
|
@@ -30,7 +30,7 @@ export default function useSCSubscribedEventsManager(user?: SCUserType): {
|
|
|
30
30
|
isLoading: (v: number | {
|
|
31
31
|
id: number;
|
|
32
32
|
}) => boolean;
|
|
33
|
-
toggleEventAttendance: (event: SCEventType
|
|
33
|
+
toggleEventAttendance: (event: SCEventType) => Promise<any>;
|
|
34
34
|
toggleEventNonattendance: (event: SCEventType) => Promise<any>;
|
|
35
35
|
subscriptionStatus: (event?: SCEventType) => string;
|
|
36
36
|
refresh: () => void;
|
|
@@ -10,9 +10,9 @@ const use_deep_compare_effect_1 = require("use-deep-compare-effect");
|
|
|
10
10
|
const SCPreferencesProvider_1 = require("../components/provider/SCPreferencesProvider");
|
|
11
11
|
const Errors_1 = require("../constants/Errors");
|
|
12
12
|
const Notification_1 = require("../constants/Notification");
|
|
13
|
-
const useSCCachingManager_1 = tslib_1.__importDefault(require("./useSCCachingManager"));
|
|
14
|
-
const event_1 = require("../utils/event");
|
|
15
13
|
const Preferences_1 = require("../constants/Preferences");
|
|
14
|
+
const event_1 = require("../utils/event");
|
|
15
|
+
const useSCCachingManager_1 = tslib_1.__importDefault(require("./useSCCachingManager"));
|
|
16
16
|
/**
|
|
17
17
|
:::info
|
|
18
18
|
This custom hook is used to manage the events followed.
|
|
@@ -115,50 +115,38 @@ function useSCSubscribedEventsManager(user) {
|
|
|
115
115
|
* Memoized toggleEventAttendance Event
|
|
116
116
|
* Toggle action
|
|
117
117
|
*/
|
|
118
|
-
const toggleEventAttendance = (0, react_1.useMemo)(() => (event
|
|
118
|
+
const toggleEventAttendance = (0, react_1.useMemo)(() => (event) => {
|
|
119
119
|
setLoading(event.id);
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
.
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
})
|
|
127
|
-
.then((res) => {
|
|
128
|
-
if (res.status >= 300) {
|
|
129
|
-
return Promise.reject(res);
|
|
130
|
-
}
|
|
131
|
-
updateCache([event.id]);
|
|
132
|
-
setData((prev) => getDataUpdated(prev, event.id, types_1.SCEventSubscriptionStatusType.SUBSCRIBED));
|
|
133
|
-
setUnLoading(event.id);
|
|
134
|
-
return Promise.resolve(res.data);
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
else {
|
|
138
|
-
const requestConfig = !event.subscription_status || event.subscription_status === types_1.SCEventSubscriptionStatusType.INVITED
|
|
120
|
+
const requestConfig = !event.subscription_status || event.subscription_status === types_1.SCEventSubscriptionStatusType.INVITED
|
|
121
|
+
? {
|
|
122
|
+
url: api_services_1.Endpoints.SubscribeToEvent.url({ id: event.id }),
|
|
123
|
+
method: api_services_1.Endpoints.SubscribeToEvent.method,
|
|
124
|
+
}
|
|
125
|
+
: event.subscription_status === types_1.SCEventSubscriptionStatusType.GOING
|
|
139
126
|
? {
|
|
140
|
-
url: api_services_1.Endpoints.
|
|
141
|
-
method: api_services_1.Endpoints.
|
|
127
|
+
url: api_services_1.Endpoints.RemoveGoingToEvent.url({ id: event.id }),
|
|
128
|
+
method: api_services_1.Endpoints.RemoveGoingToEvent.method,
|
|
142
129
|
}
|
|
143
|
-
:
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
updateCache([event.id]);
|
|
157
|
-
setData((prev) => getDataUpdated(prev, event.id, (0, event_1.getEventStatus)(event, true)));
|
|
158
|
-
setUnLoading(event.id);
|
|
130
|
+
: {
|
|
131
|
+
url: api_services_1.Endpoints.GoToEvent.url({ id: event.id }),
|
|
132
|
+
method: api_services_1.Endpoints.GoToEvent.method,
|
|
133
|
+
};
|
|
134
|
+
return api_services_1.http.request(requestConfig).then((res) => {
|
|
135
|
+
if (res.status >= 300) {
|
|
136
|
+
return Promise.reject(res);
|
|
137
|
+
}
|
|
138
|
+
if (event.subscription_status === types_1.SCEventSubscriptionStatusType.NOT_GOING) {
|
|
139
|
+
const newEvent = Object.assign({}, event, { subscription_status: types_1.SCEventSubscriptionStatusType.SUBSCRIBED });
|
|
140
|
+
setData((prev) => getDataUpdated(prev, newEvent.id, (0, event_1.getEventStatus)(newEvent, true)));
|
|
141
|
+
updateCache([newEvent.id]);
|
|
142
|
+
setUnLoading(newEvent.id);
|
|
159
143
|
return Promise.resolve(res.data);
|
|
160
|
-
}
|
|
161
|
-
|
|
144
|
+
}
|
|
145
|
+
updateCache([event.id]);
|
|
146
|
+
setData((prev) => getDataUpdated(prev, event.id, (0, event_1.getEventStatus)(event, true)));
|
|
147
|
+
setUnLoading(event.id);
|
|
148
|
+
return Promise.resolve(res.data);
|
|
149
|
+
});
|
|
162
150
|
}, [data, loading, cache]);
|
|
163
151
|
/**
|
|
164
152
|
* Memoized toggleEventNonattendance Event
|
|
@@ -180,6 +168,13 @@ function useSCSubscribedEventsManager(user) {
|
|
|
180
168
|
if (res.status >= 300) {
|
|
181
169
|
return Promise.reject(res);
|
|
182
170
|
}
|
|
171
|
+
if (event.subscription_status === types_1.SCEventSubscriptionStatusType.GOING) {
|
|
172
|
+
const newEvent = Object.assign({}, event, { subscription_status: types_1.SCEventSubscriptionStatusType.SUBSCRIBED });
|
|
173
|
+
setData((prev) => getDataUpdated(prev, newEvent.id, (0, event_1.getEventStatus)(newEvent, false)));
|
|
174
|
+
updateCache([newEvent.id]);
|
|
175
|
+
setUnLoading(newEvent.id);
|
|
176
|
+
return Promise.resolve(res.data);
|
|
177
|
+
}
|
|
183
178
|
updateCache([event.id]);
|
|
184
179
|
setData((prev) => getDataUpdated(prev, event.id, (0, event_1.getEventStatus)(event, false)));
|
|
185
180
|
setUnLoading(event.id);
|
|
@@ -134,6 +134,8 @@ export declare const CONFIGURATIONS_EVENTS_ENABLED: string;
|
|
|
134
134
|
export declare const CONFIGURATIONS_EVENTS_ONLY_STAFF_ENABLED: string;
|
|
135
135
|
export declare const CONFIGURATIONS_EVENTS_VISIBILITY_ENABLED: string;
|
|
136
136
|
export declare const CONFIGURATIONS_EVENTS_PRIVATE_ENABLED: string;
|
|
137
|
+
export declare const CONFIGURATIONS_ONBOARDING_ENABLED: string;
|
|
138
|
+
export declare const CONFIGURATIONS_ONBOARDING_HIDDEN: string;
|
|
137
139
|
/**
|
|
138
140
|
* PROVIDERS
|
|
139
141
|
*/
|
|
@@ -135,6 +135,8 @@ export const CONFIGURATIONS_EVENTS_ENABLED = `${SCPreferenceSection.CONFIGURATIO
|
|
|
135
135
|
export const CONFIGURATIONS_EVENTS_ONLY_STAFF_ENABLED = `${SCPreferenceSection.CONFIGURATIONS}.${SCPreferenceName.EVENTS_ONLY_STAFF_ENABLED}`;
|
|
136
136
|
export const CONFIGURATIONS_EVENTS_VISIBILITY_ENABLED = `${SCPreferenceSection.CONFIGURATIONS}.${SCPreferenceName.EVENTS_VISIBILITY_ENABLED}`;
|
|
137
137
|
export const CONFIGURATIONS_EVENTS_PRIVATE_ENABLED = `${SCPreferenceSection.CONFIGURATIONS}.${SCPreferenceName.EVENTS_PRIVATE_ENABLED}`;
|
|
138
|
+
export const CONFIGURATIONS_ONBOARDING_ENABLED = `${SCPreferenceSection.CONFIGURATIONS}.${SCPreferenceName.ONBOARDING_ENABLED}`;
|
|
139
|
+
export const CONFIGURATIONS_ONBOARDING_HIDDEN = `${SCPreferenceSection.CONFIGURATIONS}.${SCPreferenceName.ONBOARDING_HIDDEN}`;
|
|
138
140
|
/**
|
|
139
141
|
* PROVIDERS
|
|
140
142
|
*/
|
|
@@ -279,6 +281,8 @@ export const DATA_TYPES = {
|
|
|
279
281
|
[CONFIGURATIONS_EVENTS_ONLY_STAFF_ENABLED]: booleanType,
|
|
280
282
|
[CONFIGURATIONS_EVENTS_VISIBILITY_ENABLED]: booleanType,
|
|
281
283
|
[CONFIGURATIONS_EVENTS_PRIVATE_ENABLED]: booleanType,
|
|
284
|
+
[CONFIGURATIONS_ONBOARDING_ENABLED]: booleanType,
|
|
285
|
+
[CONFIGURATIONS_ONBOARDING_HIDDEN]: booleanType,
|
|
282
286
|
[PROVIDERS_APP_URL_ON_APP_STORE]: stringType,
|
|
283
287
|
[PROVIDERS_APP_URL_ON_GOOGLE_PLAY]: stringType,
|
|
284
288
|
[PROVIDERS_FACEBOOK_SIGNIN_ENABLED]: stringType,
|
|
@@ -30,7 +30,7 @@ export default function useSCSubscribedEventsManager(user?: SCUserType): {
|
|
|
30
30
|
isLoading: (v: number | {
|
|
31
31
|
id: number;
|
|
32
32
|
}) => boolean;
|
|
33
|
-
toggleEventAttendance: (event: SCEventType
|
|
33
|
+
toggleEventAttendance: (event: SCEventType) => Promise<any>;
|
|
34
34
|
toggleEventNonattendance: (event: SCEventType) => Promise<any>;
|
|
35
35
|
subscriptionStatus: (event?: SCEventType) => string;
|
|
36
36
|
refresh: () => void;
|
|
@@ -7,9 +7,9 @@ import { useDeepCompareEffectNoCheck } from 'use-deep-compare-effect';
|
|
|
7
7
|
import { useSCPreferences } from '../components/provider/SCPreferencesProvider';
|
|
8
8
|
import { SCOPE_SC_CORE } from '../constants/Errors';
|
|
9
9
|
import { SCNotificationMapping } from '../constants/Notification';
|
|
10
|
-
import useSCCachingManager from './useSCCachingManager';
|
|
11
|
-
import { getEventStatus } from '../utils/event';
|
|
12
10
|
import { CONFIGURATIONS_EVENTS_ENABLED } from '../constants/Preferences';
|
|
11
|
+
import { getEventStatus } from '../utils/event';
|
|
12
|
+
import useSCCachingManager from './useSCCachingManager';
|
|
13
13
|
/**
|
|
14
14
|
:::info
|
|
15
15
|
This custom hook is used to manage the events followed.
|
|
@@ -112,50 +112,38 @@ export default function useSCSubscribedEventsManager(user) {
|
|
|
112
112
|
* Memoized toggleEventAttendance Event
|
|
113
113
|
* Toggle action
|
|
114
114
|
*/
|
|
115
|
-
const toggleEventAttendance = useMemo(() => (event
|
|
115
|
+
const toggleEventAttendance = useMemo(() => (event) => {
|
|
116
116
|
setLoading(event.id);
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
.
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
})
|
|
124
|
-
.then((res) => {
|
|
125
|
-
if (res.status >= 300) {
|
|
126
|
-
return Promise.reject(res);
|
|
127
|
-
}
|
|
128
|
-
updateCache([event.id]);
|
|
129
|
-
setData((prev) => getDataUpdated(prev, event.id, SCEventSubscriptionStatusType.SUBSCRIBED));
|
|
130
|
-
setUnLoading(event.id);
|
|
131
|
-
return Promise.resolve(res.data);
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
else {
|
|
135
|
-
const requestConfig = !event.subscription_status || event.subscription_status === SCEventSubscriptionStatusType.INVITED
|
|
117
|
+
const requestConfig = !event.subscription_status || event.subscription_status === SCEventSubscriptionStatusType.INVITED
|
|
118
|
+
? {
|
|
119
|
+
url: Endpoints.SubscribeToEvent.url({ id: event.id }),
|
|
120
|
+
method: Endpoints.SubscribeToEvent.method,
|
|
121
|
+
}
|
|
122
|
+
: event.subscription_status === SCEventSubscriptionStatusType.GOING
|
|
136
123
|
? {
|
|
137
|
-
url: Endpoints.
|
|
138
|
-
method: Endpoints.
|
|
124
|
+
url: Endpoints.RemoveGoingToEvent.url({ id: event.id }),
|
|
125
|
+
method: Endpoints.RemoveGoingToEvent.method,
|
|
139
126
|
}
|
|
140
|
-
:
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
updateCache([event.id]);
|
|
154
|
-
setData((prev) => getDataUpdated(prev, event.id, getEventStatus(event, true)));
|
|
155
|
-
setUnLoading(event.id);
|
|
127
|
+
: {
|
|
128
|
+
url: Endpoints.GoToEvent.url({ id: event.id }),
|
|
129
|
+
method: Endpoints.GoToEvent.method,
|
|
130
|
+
};
|
|
131
|
+
return http.request(requestConfig).then((res) => {
|
|
132
|
+
if (res.status >= 300) {
|
|
133
|
+
return Promise.reject(res);
|
|
134
|
+
}
|
|
135
|
+
if (event.subscription_status === SCEventSubscriptionStatusType.NOT_GOING) {
|
|
136
|
+
const newEvent = Object.assign({}, event, { subscription_status: SCEventSubscriptionStatusType.SUBSCRIBED });
|
|
137
|
+
setData((prev) => getDataUpdated(prev, newEvent.id, getEventStatus(newEvent, true)));
|
|
138
|
+
updateCache([newEvent.id]);
|
|
139
|
+
setUnLoading(newEvent.id);
|
|
156
140
|
return Promise.resolve(res.data);
|
|
157
|
-
}
|
|
158
|
-
|
|
141
|
+
}
|
|
142
|
+
updateCache([event.id]);
|
|
143
|
+
setData((prev) => getDataUpdated(prev, event.id, getEventStatus(event, true)));
|
|
144
|
+
setUnLoading(event.id);
|
|
145
|
+
return Promise.resolve(res.data);
|
|
146
|
+
});
|
|
159
147
|
}, [data, loading, cache]);
|
|
160
148
|
/**
|
|
161
149
|
* Memoized toggleEventNonattendance Event
|
|
@@ -177,6 +165,13 @@ export default function useSCSubscribedEventsManager(user) {
|
|
|
177
165
|
if (res.status >= 300) {
|
|
178
166
|
return Promise.reject(res);
|
|
179
167
|
}
|
|
168
|
+
if (event.subscription_status === SCEventSubscriptionStatusType.GOING) {
|
|
169
|
+
const newEvent = Object.assign({}, event, { subscription_status: SCEventSubscriptionStatusType.SUBSCRIBED });
|
|
170
|
+
setData((prev) => getDataUpdated(prev, newEvent.id, getEventStatus(newEvent, false)));
|
|
171
|
+
updateCache([newEvent.id]);
|
|
172
|
+
setUnLoading(newEvent.id);
|
|
173
|
+
return Promise.resolve(res.data);
|
|
174
|
+
}
|
|
180
175
|
updateCache([event.id]);
|
|
181
176
|
setData((prev) => getDataUpdated(prev, event.id, getEventStatus(event, false)));
|
|
182
177
|
setUnLoading(event.id);
|