@selfcommunity/react-core 0.6.0-alpha.7 → 0.6.0-alpha.9

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.
@@ -43,15 +43,13 @@ function useSCFetchEvent({ id = null, event = null, autoSubscribe = true, cacheS
43
43
  utils_1.LRUCache.set(__eventCacheKey, updatedEvent);
44
44
  })
45
45
  .catch(() => {
46
- const updatedEvent = authUserId ? e : (0, utils_1.objectWithoutProperties)(e, ['subscription_status']);
47
- setScEvent(updatedEvent);
48
- utils_1.LRUCache.set(__eventCacheKey, updatedEvent);
46
+ setScEvent(e);
47
+ utils_1.LRUCache.set(__eventCacheKey, e);
49
48
  });
50
49
  }
51
50
  else {
52
- const updatedEvent = authUserId ? e : (0, utils_1.objectWithoutProperties)(e, ['subscription_status']);
53
- setScEvent(updatedEvent);
54
- utils_1.LRUCache.set(__eventCacheKey, updatedEvent);
51
+ setScEvent(e);
52
+ utils_1.LRUCache.set(__eventCacheKey, e);
55
53
  }
56
54
  }, [autoSubscribe, authUserId, setScEvent]);
57
55
  /**
@@ -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, userId?: number) => Promise<any>;
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, userId) => {
118
+ const toggleEventAttendance = (0, react_1.useMemo)(() => (event) => {
119
119
  setLoading(event.id);
120
- if (userId) {
121
- return api_services_1.http
122
- .request({
123
- url: api_services_1.Endpoints.InviteOrAcceptEventRequest.url({ id: event.id }),
124
- method: api_services_1.Endpoints.InviteOrAcceptEventRequest.method,
125
- data: { users: [userId] },
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.SubscribeToEvent.url({ id: event.id }),
141
- method: api_services_1.Endpoints.SubscribeToEvent.method,
127
+ url: api_services_1.Endpoints.RemoveGoingToEvent.url({ id: event.id }),
128
+ method: api_services_1.Endpoints.RemoveGoingToEvent.method,
142
129
  }
143
- : event.subscription_status === types_1.SCEventSubscriptionStatusType.GOING
144
- ? {
145
- url: api_services_1.Endpoints.RemoveGoingToEvent.url({ id: event.id }),
146
- method: api_services_1.Endpoints.RemoveGoingToEvent.method,
147
- }
148
- : {
149
- url: api_services_1.Endpoints.GoToEvent.url({ id: event.id }),
150
- method: api_services_1.Endpoints.GoToEvent.method,
151
- };
152
- return api_services_1.http.request(requestConfig).then((res) => {
153
- if (res.status >= 300) {
154
- return Promise.reject(res);
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);
@@ -41,15 +41,13 @@ export default function useSCFetchEvent({ id = null, event = null, autoSubscribe
41
41
  LRUCache.set(__eventCacheKey, updatedEvent);
42
42
  })
43
43
  .catch(() => {
44
- const updatedEvent = authUserId ? e : objectWithoutProperties(e, ['subscription_status']);
45
- setScEvent(updatedEvent);
46
- LRUCache.set(__eventCacheKey, updatedEvent);
44
+ setScEvent(e);
45
+ LRUCache.set(__eventCacheKey, e);
47
46
  });
48
47
  }
49
48
  else {
50
- const updatedEvent = authUserId ? e : objectWithoutProperties(e, ['subscription_status']);
51
- setScEvent(updatedEvent);
52
- LRUCache.set(__eventCacheKey, updatedEvent);
49
+ setScEvent(e);
50
+ LRUCache.set(__eventCacheKey, e);
53
51
  }
54
52
  }, [autoSubscribe, authUserId, setScEvent]);
55
53
  /**
@@ -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, userId?: number) => Promise<any>;
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, userId) => {
115
+ const toggleEventAttendance = useMemo(() => (event) => {
116
116
  setLoading(event.id);
117
- if (userId) {
118
- return http
119
- .request({
120
- url: Endpoints.InviteOrAcceptEventRequest.url({ id: event.id }),
121
- method: Endpoints.InviteOrAcceptEventRequest.method,
122
- data: { users: [userId] },
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.SubscribeToEvent.url({ id: event.id }),
138
- method: Endpoints.SubscribeToEvent.method,
124
+ url: Endpoints.RemoveGoingToEvent.url({ id: event.id }),
125
+ method: Endpoints.RemoveGoingToEvent.method,
139
126
  }
140
- : event.subscription_status === SCEventSubscriptionStatusType.GOING
141
- ? {
142
- url: Endpoints.RemoveGoingToEvent.url({ id: event.id }),
143
- method: Endpoints.RemoveGoingToEvent.method,
144
- }
145
- : {
146
- url: Endpoints.GoToEvent.url({ id: event.id }),
147
- method: Endpoints.GoToEvent.method,
148
- };
149
- return http.request(requestConfig).then((res) => {
150
- if (res.status >= 300) {
151
- return Promise.reject(res);
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);