@selfcommunity/react-core 0.4.0-alpha.52 → 0.4.0-alpha.54

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.
Files changed (52) hide show
  1. package/lib/cjs/hooks/useSCCachingManager.d.ts +5 -4
  2. package/lib/cjs/hooks/useSCCachingManager.d.ts.map +1 -1
  3. package/lib/cjs/hooks/useSCCachingManager.js +21 -5
  4. package/lib/cjs/hooks/useSCCachingManager.js.map +1 -1
  5. package/lib/cjs/hooks/useSCConnectionsManager.d.ts +8 -4
  6. package/lib/cjs/hooks/useSCConnectionsManager.d.ts.map +1 -1
  7. package/lib/cjs/hooks/useSCConnectionsManager.js +130 -85
  8. package/lib/cjs/hooks/useSCConnectionsManager.js.map +1 -1
  9. package/lib/cjs/hooks/useSCFollowedCategoriesManager.d.ts +4 -4
  10. package/lib/cjs/hooks/useSCFollowedCategoriesManager.d.ts.map +1 -1
  11. package/lib/cjs/hooks/useSCFollowedCategoriesManager.js +14 -6
  12. package/lib/cjs/hooks/useSCFollowedCategoriesManager.js.map +1 -1
  13. package/lib/cjs/hooks/useSCFollowedManager.d.ts +4 -4
  14. package/lib/cjs/hooks/useSCFollowedManager.d.ts.map +1 -1
  15. package/lib/cjs/hooks/useSCFollowedManager.js +28 -18
  16. package/lib/cjs/hooks/useSCFollowedManager.js.map +1 -1
  17. package/lib/cjs/hooks/useSCFollowersManager.d.ts +4 -4
  18. package/lib/cjs/hooks/useSCFollowersManager.js +4 -4
  19. package/lib/cjs/hooks/useSCFollowersManager.js.map +1 -1
  20. package/lib/cjs/hooks/useSCSubscribedIncubatorsManager.d.ts +4 -4
  21. package/lib/cjs/hooks/useSCSubscribedIncubatorsManager.d.ts.map +1 -1
  22. package/lib/cjs/hooks/useSCSubscribedIncubatorsManager.js +14 -6
  23. package/lib/cjs/hooks/useSCSubscribedIncubatorsManager.js.map +1 -1
  24. package/lib/cjs/types/context.d.ts +8 -0
  25. package/lib/cjs/types/context.d.ts.map +1 -1
  26. package/lib/esm/hooks/useSCCachingManager.d.ts +5 -4
  27. package/lib/esm/hooks/useSCCachingManager.d.ts.map +1 -1
  28. package/lib/esm/hooks/useSCCachingManager.js +21 -5
  29. package/lib/esm/hooks/useSCCachingManager.js.map +1 -1
  30. package/lib/esm/hooks/useSCConnectionsManager.d.ts +8 -4
  31. package/lib/esm/hooks/useSCConnectionsManager.d.ts.map +1 -1
  32. package/lib/esm/hooks/useSCConnectionsManager.js +130 -85
  33. package/lib/esm/hooks/useSCConnectionsManager.js.map +1 -1
  34. package/lib/esm/hooks/useSCFollowedCategoriesManager.d.ts +4 -4
  35. package/lib/esm/hooks/useSCFollowedCategoriesManager.d.ts.map +1 -1
  36. package/lib/esm/hooks/useSCFollowedCategoriesManager.js +15 -7
  37. package/lib/esm/hooks/useSCFollowedCategoriesManager.js.map +1 -1
  38. package/lib/esm/hooks/useSCFollowedManager.d.ts +4 -4
  39. package/lib/esm/hooks/useSCFollowedManager.d.ts.map +1 -1
  40. package/lib/esm/hooks/useSCFollowedManager.js +29 -19
  41. package/lib/esm/hooks/useSCFollowedManager.js.map +1 -1
  42. package/lib/esm/hooks/useSCFollowersManager.d.ts +4 -4
  43. package/lib/esm/hooks/useSCFollowersManager.js +4 -4
  44. package/lib/esm/hooks/useSCFollowersManager.js.map +1 -1
  45. package/lib/esm/hooks/useSCSubscribedIncubatorsManager.d.ts +4 -4
  46. package/lib/esm/hooks/useSCSubscribedIncubatorsManager.d.ts.map +1 -1
  47. package/lib/esm/hooks/useSCSubscribedIncubatorsManager.js +15 -7
  48. package/lib/esm/hooks/useSCSubscribedIncubatorsManager.js.map +1 -1
  49. package/lib/esm/types/context.d.ts +8 -0
  50. package/lib/esm/types/context.d.ts.map +1 -1
  51. package/lib/umd/react-core.js +1 -1
  52. package/package.json +5 -5
@@ -8,15 +8,8 @@ import { CONFIGURATIONS_FOLLOW_ENABLED } from '../constants/Preferences';
8
8
  import useSCCachingManager from './useSCCachingManager';
9
9
  import PubSub from 'pubsub-js';
10
10
  import { SCNotificationMapping } from '../constants/Notification';
11
- /**
12
- * Used on refresh and in status method
13
- * Check if the user status is 'connected', 'sent_connection_request'
14
- * 'received_connection_request', to update the cache and data
15
- */
16
- const STATUS_CONNECTED = 'connected';
17
- const STATUS_DISCONNECTED = 'disconnected';
18
- const STATUS_CONNECTION_REQUEST_SENT = 'sent_connection_request';
19
- const STATUS_CONNECTION_REQUEST_RECEIVED = 'received_connection_request';
11
+ import { SCConnectionStatus } from '@selfcommunity/types';
12
+ import { useDeepCompareEffectNoCheck } from 'use-deep-compare-effect';
20
13
  /**
21
14
  :::info
22
15
  This custom hook is used to manage to manage friends.
@@ -33,52 +26,55 @@ const STATUS_CONNECTION_REQUEST_RECEIVED = 'received_connection_request';
33
26
  :::
34
27
  */
35
28
  export default function useSCConnectionsManager(user) {
36
- const { cache, updateCache, emptyCache, data, setData, loading, setLoading, isLoading } = useSCCachingManager();
29
+ const { cache, updateCache, emptyCache, data, setData, loading, setLoading, setUnLoading, isLoading } = useSCCachingManager();
37
30
  const scPreferencesContext = useSCPreferences();
31
+ const authUserId = user ? user.id : null;
38
32
  const connectionsDisabled = CONFIGURATIONS_FOLLOW_ENABLED in scPreferencesContext.preferences && scPreferencesContext.preferences[CONFIGURATIONS_FOLLOW_ENABLED].value;
39
33
  const notificationConnAcceptSubscription = useRef(null);
40
34
  const notificationConnRequestSubscription = useRef(null);
41
35
  const notificationConnRemoveSubscription = useRef(null);
36
+ const notificationConnRequestCancelSubscription = useRef(null);
42
37
  /**
43
- * Notification subscriber only for FOLLOW
38
+ * Notification subscriber handler
44
39
  * @param msg
45
40
  * @param data
46
41
  */
47
- const notificationSubscriber = (msg, data) => {
48
- if (data.connection && data.connection_id !== undefined) {
49
- updateCache([data.data.connection.id]);
50
- let _data = [];
51
- if (SCNotificationMapping[data.data.activity_type] === SCNotificationTypologyType.CONNECTION_REQUEST) {
52
- _data = data.map(([k, v]) => ({
53
- k: k === data.data.connection_id ? STATUS_CONNECTION_REQUEST_SENT : v,
54
- }));
55
- }
56
- else if (SCNotificationMapping[data.data.activity_type] === SCNotificationTypologyType.CONNECTION_ACCEPT) {
57
- _data = data.map(([k, v]) => ({
58
- k: k === data.data.connection_id ? STATUS_CONNECTED : v,
59
- }));
42
+ const notificationSubscriber = (msg, dataMsg) => {
43
+ if (dataMsg.data.connection !== undefined) {
44
+ let _upd;
45
+ switch (SCNotificationMapping[dataMsg.data.activity_type]) {
46
+ case SCNotificationTypologyType.CONNECTION_REQUEST:
47
+ _upd = { user: 'request_user', state: SCConnectionStatus.CONNECTION_REQUEST_RECEIVED };
48
+ break;
49
+ case SCNotificationTypologyType.CONNECTION_CANCEL_REQUEST:
50
+ _upd = { user: 'cancel_request_user', state: null };
51
+ break;
52
+ case SCNotificationTypologyType.CONNECTION_ACCEPT:
53
+ _upd = { user: 'accept_user', state: SCConnectionStatus.CONNECTED };
54
+ break;
55
+ case SCNotificationTypologyType.CONNECTION_REMOVE:
56
+ _upd = { user: 'remove_user', state: null };
57
+ break;
60
58
  }
61
- else if (SCNotificationMapping[data.data.activity_type] === SCNotificationTypologyType.CONNECTION_REMOVE) {
62
- _data = data.map(([k, v]) => ({
63
- k: k === data.data.connection_id ? STATUS_DISCONNECTED : v,
64
- }));
65
- }
66
- setData(_data);
59
+ updateCache([dataMsg.data[_upd.user].id]);
60
+ setData((prev) => getDataUpdated(prev, dataMsg.data[_upd.user].id, _upd.state));
67
61
  }
68
62
  };
69
63
  /**
70
64
  * Subscribe to notification types user_follow, user_unfollow
71
65
  */
72
- useEffect(() => {
66
+ useDeepCompareEffectNoCheck(() => {
73
67
  notificationConnAcceptSubscription.current = PubSub.subscribe(`${SCNotificationTopicType.INTERACTION}.${SCNotificationTypologyType.CONNECTION_ACCEPT}`, notificationSubscriber);
74
68
  notificationConnRequestSubscription.current = PubSub.subscribe(`${SCNotificationTopicType.INTERACTION}.${SCNotificationTypologyType.CONNECTION_REQUEST}`, notificationSubscriber);
69
+ notificationConnRequestCancelSubscription.current = PubSub.subscribe(`${SCNotificationTopicType.INTERACTION}.${SCNotificationTypologyType.CONNECTION_CANCEL_REQUEST}`, notificationSubscriber);
75
70
  notificationConnRemoveSubscription.current = PubSub.subscribe(`${SCNotificationTopicType.INTERACTION}.${SCNotificationTypologyType.CONNECTION_REMOVE}`, notificationSubscriber);
76
71
  return () => {
77
72
  PubSub.unsubscribe(notificationConnAcceptSubscription.current);
78
73
  PubSub.unsubscribe(notificationConnRequestSubscription.current);
74
+ PubSub.unsubscribe(notificationConnRequestCancelSubscription.current);
79
75
  PubSub.unsubscribe(notificationConnRemoveSubscription.current);
80
76
  };
81
- }, []);
77
+ }, [data]);
82
78
  /**
83
79
  * Memoized refresh all connections
84
80
  * It makes a single request to the server and retrieves
@@ -87,7 +83,7 @@ export default function useSCConnectionsManager(user) {
87
83
  */
88
84
  const refresh = useMemo(() => () => {
89
85
  emptyCache();
90
- if (user && cache.length > 0) {
86
+ if (authUserId && cache.length > 0) {
91
87
  // Only if user is authenticated
92
88
  http
93
89
  .request({
@@ -100,9 +96,7 @@ export default function useSCConnectionsManager(user) {
100
96
  return Promise.reject(res);
101
97
  }
102
98
  updateCache(Object.keys(res.data.connection_statuses).map((id) => parseInt(id)));
103
- setData(Object.entries(res.data.connection_statuses)
104
- .filter(([k, v]) => v !== null)
105
- .map(([k, v]) => ({ [parseInt(k)]: v })));
99
+ setData(Object.keys(res.data.connection_statuses).map((k) => ({ [k]: res.data.connection_statuses[k] })));
106
100
  return Promise.resolve(res.data);
107
101
  })
108
102
  .catch((e) => {
@@ -110,64 +104,61 @@ export default function useSCConnectionsManager(user) {
110
104
  Logger.error(SCOPE_SC_CORE, e);
111
105
  });
112
106
  }
113
- }, [data, user, cache]);
107
+ }, [data, authUserId, cache]);
114
108
  /**
115
109
  * Memoized Request connection
116
110
  */
117
- const requestConnection = useMemo(() => (user) => {
118
- setLoading((prev) => [...prev, ...[user.id]]);
119
- if (getCurrentStatus(user) === STATUS_CONNECTION_REQUEST_RECEIVED) {
120
- return acceptConnection(user);
121
- }
111
+ const handleRequest = useMemo(() => (user, endpoint) => {
112
+ setLoading(user.id);
122
113
  return http
123
114
  .request({
124
- url: Endpoints.UserRequestConnection.url({ id: user.id }),
125
- method: Endpoints.UserRequestConnection.method,
115
+ url: endpoint.url({ id: user.id }),
116
+ method: endpoint.method,
126
117
  })
127
118
  .then((res) => {
128
119
  if (res.status >= 300) {
129
120
  return Promise.reject(res);
130
121
  }
131
122
  updateCache([user.id]);
132
- const _data = data.map(([k, v]) => ({
133
- k: k === user.id ? STATUS_CONNECTION_REQUEST_SENT : v,
134
- }));
135
- setData(_data);
136
- setLoading((prev) => prev.filter((u) => u !== user.id));
123
+ setData((prev) => getDataUpdated(prev, user.id, res.data.connection_status));
124
+ setUnLoading(user.id);
137
125
  return Promise.resolve(res.data);
126
+ })
127
+ .catch((error) => {
128
+ Logger.error(SCOPE_SC_CORE, error);
129
+ return checkUserConnectionStatus(user);
138
130
  });
139
131
  }, [data, loading, cache]);
132
+ /**
133
+ * Memoized Request connection
134
+ */
135
+ const requestConnection = useMemo(() => (user) => {
136
+ return handleRequest(user, Endpoints.UserRequestConnection);
137
+ }, [handleRequest]);
138
+ /**
139
+ * Memoized cancel request connection
140
+ */
141
+ const cancelRequestConnection = useMemo(() => (user) => {
142
+ return handleRequest(user, Endpoints.UserCancelRequestConnection);
143
+ }, [handleRequest]);
144
+ /**
145
+ * Memoized Remove connection
146
+ */
147
+ const removeConnection = useMemo(() => (user) => {
148
+ return handleRequest(user, Endpoints.UserRemoveConnection);
149
+ }, [handleRequest]);
140
150
  /**
141
151
  * Memoized Accept Request connection
142
152
  */
143
153
  const acceptConnection = useMemo(() => (user) => {
144
- setLoading((prev) => [...prev, ...[user.id]]);
145
- if (getCurrentStatus(user) === STATUS_CONNECTION_REQUEST_RECEIVED) {
146
- return http
147
- .request({
148
- url: Endpoints.UserAcceptRequestConnection.url({ id: user.id }),
149
- method: Endpoints.UserAcceptRequestConnection.method,
150
- })
151
- .then((res) => {
152
- if (res.status >= 300) {
153
- return Promise.reject(res);
154
- }
155
- updateCache([user.id]);
156
- const _data = data.map(([k, v]) => ({
157
- k: k === user.id ? STATUS_CONNECTED : v,
158
- }));
159
- setData(_data);
160
- setLoading((prev) => prev.filter((u) => u !== user.id));
161
- return Promise.resolve(res.data);
162
- });
163
- }
164
- }, [data, loading, cache]);
154
+ return handleRequest(user, Endpoints.UserAcceptRequestConnection);
155
+ }, [handleRequest]);
165
156
  /**
166
- * Return current user status if exist,
157
+ * Return current user status if exists,
167
158
  * otherwise return null
168
159
  */
169
- const getCurrentStatus = useMemo(() => (user) => {
170
- const d = data.filter(([id, v]) => id === user.id);
160
+ const getCurrentUserCacheStatus = useMemo(() => (user) => {
161
+ const d = data.filter((k) => parseInt(Object.keys(k)[0]) === user.id);
171
162
  return d.length ? d[0][user.id] : null;
172
163
  }, [data]);
173
164
  /**
@@ -177,39 +168,93 @@ export default function useSCConnectionsManager(user) {
177
168
  * @param user
178
169
  */
179
170
  const checkUserConnectionStatus = (user) => {
180
- setLoading((prev) => (prev.includes(user.id) ? prev : [...prev, ...[user.id]]));
181
- http
171
+ setLoading(user.id);
172
+ return http
182
173
  .request({
183
- url: Endpoints.UserCheckConnection.url({ id: user.id }),
184
- method: Endpoints.UserCheckConnection.method,
174
+ url: Endpoints.UserCheckConnectionStatus.url({ id: user.id }),
175
+ method: Endpoints.UserCheckConnectionStatus.method,
185
176
  })
186
177
  .then((res) => {
187
178
  if (res.status >= 300) {
188
179
  return Promise.reject(res);
189
180
  }
181
+ setData((prev) => getDataUpdated(prev, user.id, res.data.connection_status));
190
182
  updateCache([user.id]);
191
- setData((prev) => (res.data.is_connection ? [...prev, ...[{ [user.id]: STATUS_CONNECTED }]] : prev.filter(([id, v]) => id !== user.id)));
192
- setLoading((prev) => prev.filter((u) => u !== user.id));
183
+ setUnLoading(user.id);
193
184
  return Promise.resolve(res.data);
194
185
  });
195
186
  };
187
+ /**
188
+ * Get updated data
189
+ * @param data
190
+ * @param userId
191
+ * @param connectionStatus
192
+ */
193
+ const getDataUpdated = (data, userId, connectionStatus) => {
194
+ const _index = data.findIndex((k) => parseInt(Object.keys(k)[0]) === userId);
195
+ let _data;
196
+ if (_index < 0) {
197
+ _data = [...data, ...[{ [userId]: connectionStatus }]];
198
+ }
199
+ else {
200
+ _data = data.map((k) => {
201
+ if (parseInt(Object.keys(k)[0]) === userId) {
202
+ return { [Object.keys(k)[0]]: connectionStatus };
203
+ }
204
+ return { [Object.keys(k)[0]]: data[Object.keys(k)[0]] };
205
+ });
206
+ }
207
+ return _data;
208
+ };
209
+ /**
210
+ * Bypass remote check if the user is followed
211
+ */
212
+ const getConnectionStatus = useMemo(() => (user) => {
213
+ updateCache([user.id]);
214
+ setData((prev) => getDataUpdated(prev, user.id, user.connection_status));
215
+ return user.connection_status;
216
+ }, [data, cache]);
196
217
  /**
197
218
  * Memoized status
198
219
  * If user is already in cache -> check data user statuses,
199
220
  * otherwise, check if auth user is connected with user
200
221
  */
201
- const status = useMemo(() => (user) => {
222
+ const status = (user) => {
202
223
  if (cache.includes(user.id)) {
203
- return data.filter((k, v) => k === user.id)[0][user.id];
224
+ return getCurrentUserCacheStatus(user);
204
225
  }
205
- if (!loading.includes(user.id)) {
206
- checkUserConnectionStatus(user);
226
+ if (authUserId) {
227
+ if ('connection_status' in user) {
228
+ return getConnectionStatus(user);
229
+ }
230
+ if (!isLoading(user)) {
231
+ checkUserConnectionStatus(user);
232
+ }
207
233
  }
208
234
  return null;
209
- }, [data, loading, cache]);
235
+ };
236
+ /**
237
+ * Empty cache on logout
238
+ */
239
+ useEffect(() => {
240
+ if (!authUserId) {
241
+ emptyCache();
242
+ }
243
+ }, [authUserId]);
210
244
  if (connectionsDisabled || !user) {
211
245
  return { connections: data, loading, isLoading };
212
246
  }
213
- return { connections: data, loading, isLoading, status, requestConnection, acceptConnection, refresh, emptyCache };
247
+ return {
248
+ connections: data,
249
+ loading,
250
+ isLoading,
251
+ status,
252
+ requestConnection,
253
+ cancelRequestConnection,
254
+ acceptConnection,
255
+ removeConnection,
256
+ refresh,
257
+ emptyCache,
258
+ };
214
259
  }
215
260
  //# sourceMappingURL=useSCConnectionsManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSCConnectionsManager.js","sourceRoot":"","sources":["../../../src/hooks/useSCConnectionsManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useSCConnectionsManager.js","sourceRoot":"","sources":["../../../src/hooks/useSCConnectionsManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAC,MAAM,OAAO,CAAC;AACjD,OAAO,EAAC,IAAI,EAAE,SAAS,EAA6B,MAAM,6BAA6B,CAAC;AAExF,OAAO,EAAC,uBAAuB,EAAE,0BAA0B,EAAa,MAAM,sBAAsB,CAAC;AACrG,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAC,gBAAgB,EAAC,MAAM,8CAA8C,CAAC;AAC9E,OAAO,EAAC,6BAA6B,EAAC,MAAM,0BAA0B,CAAC;AACvE,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAC,qBAAqB,EAAC,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAC,2BAA2B,EAAC,MAAM,yBAAyB,CAAC;AAEpE;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,IAAiB;IAC/D,MAAM,EAAC,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAC,GAAG,mBAAmB,EAAE,CAAC;IAC5H,MAAM,oBAAoB,GAA6B,gBAAgB,EAAE,CAAC;IAC1E,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACzC,MAAM,mBAAmB,GACvB,6BAA6B,IAAI,oBAAoB,CAAC,WAAW,IAAI,oBAAoB,CAAC,WAAW,CAAC,6BAA6B,CAAC,CAAC,KAAK,CAAC;IAC7I,MAAM,kCAAkC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACxD,MAAM,mCAAmC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACzD,MAAM,kCAAkC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACxD,MAAM,yCAAyC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAE/D;;;;OAIG;IACH,MAAM,sBAAsB,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;QAC9C,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;YACzC,IAAI,IAAmC,CAAC;YACxC,QAAQ,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;gBACzD,KAAK,0BAA0B,CAAC,kBAAkB;oBAChD,IAAI,GAAG,EAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,kBAAkB,CAAC,2BAA2B,EAAC,CAAC;oBACrF,MAAM;gBACR,KAAK,0BAA0B,CAAC,yBAAyB;oBACvD,IAAI,GAAG,EAAC,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,IAAI,EAAC,CAAC;oBAClD,MAAM;gBACR,KAAK,0BAA0B,CAAC,iBAAiB;oBAC/C,IAAI,GAAG,EAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,kBAAkB,CAAC,SAAS,EAAC,CAAC;oBAClE,MAAM;gBACR,KAAK,0BAA0B,CAAC,iBAAiB;oBAC/C,IAAI,GAAG,EAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAC,CAAC;oBAC1C,MAAM;aACT;YACD,WAAW,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1C,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;SACjF;IACH,CAAC,CAAC;IAEF;;OAEG;IACH,2BAA2B,CAAC,GAAG,EAAE;QAC/B,kCAAkC,CAAC,OAAO,GAAG,MAAM,CAAC,SAAS,CAC3D,GAAG,uBAAuB,CAAC,WAAW,IAAI,0BAA0B,CAAC,iBAAiB,EAAE,EACxF,sBAAsB,CACvB,CAAC;QACF,mCAAmC,CAAC,OAAO,GAAG,MAAM,CAAC,SAAS,CAC5D,GAAG,uBAAuB,CAAC,WAAW,IAAI,0BAA0B,CAAC,kBAAkB,EAAE,EACzF,sBAAsB,CACvB,CAAC;QACF,yCAAyC,CAAC,OAAO,GAAG,MAAM,CAAC,SAAS,CAClE,GAAG,uBAAuB,CAAC,WAAW,IAAI,0BAA0B,CAAC,yBAAyB,EAAE,EAChG,sBAAsB,CACvB,CAAC;QACF,kCAAkC,CAAC,OAAO,GAAG,MAAM,CAAC,SAAS,CAC3D,GAAG,uBAAuB,CAAC,WAAW,IAAI,0BAA0B,CAAC,iBAAiB,EAAE,EACxF,sBAAsB,CACvB,CAAC;QACF,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,WAAW,CAAC,kCAAkC,CAAC,OAAO,CAAC,CAAC;YAC/D,MAAM,CAAC,WAAW,CAAC,mCAAmC,CAAC,OAAO,CAAC,CAAC;YAChE,MAAM,CAAC,WAAW,CAAC,yCAAyC,CAAC,OAAO,CAAC,CAAC;YACtE,MAAM,CAAC,WAAW,CAAC,kCAAkC,CAAC,OAAO,CAAC,CAAC;QACjE,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX;;;;;OAKG;IACH,MAAM,OAAO,GAAG,OAAO,CACrB,GAAG,EAAE,CAAC,GAAS,EAAE;QACf,UAAU,EAAE,CAAC;QACb,IAAI,UAAU,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAClC,gCAAgC;YAChC,IAAI;iBACD,OAAO,CAAC;gBACP,GAAG,EAAE,SAAS,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7C,MAAM,EAAE,SAAS,CAAC,sBAAsB,CAAC,MAAM;gBAC/C,IAAI,EAAE,EAAC,KAAK,EAAE,KAAK,EAAC;aACrB,CAAC;iBACD,IAAI,CAAC,CAAC,GAAsB,EAAE,EAAE;gBAC/B,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE;oBACrB,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;iBAC5B;gBACD,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACjF,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC;gBACxG,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACnC,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;gBACX,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,gEAAgE,CAAC,CAAC;gBAC9F,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;SACN;IACH,CAAC,EACD,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAC1B,CAAC;IAEF;;OAEG;IACH,MAAM,aAAa,GAAG,OAAO,CAC3B,GAAG,EAAE,CACH,CAAC,IAAgB,EAAE,QAAsB,EAAgB,EAAE;QACzD,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpB,OAAO,IAAI;aACR,OAAO,CAAC;YACP,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAC,CAAC;YAChC,MAAM,EAAE,QAAQ,CAAC,MAAM;SACxB,CAAC;aACD,IAAI,CAAC,CAAC,GAA8C,EAAE,EAAE;YACvD,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE;gBACrB,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aAC5B;YACD,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACvB,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC7E,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtB,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACf,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;YACnC,OAAO,yBAAyB,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACP,CAAC,EACH,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CACvB,CAAC;IAEF;;OAEG;IACH,MAAM,iBAAiB,GAAG,OAAO,CAC/B,GAAG,EAAE,CACH,CAAC,IAAgB,EAAgB,EAAE;QACjC,OAAO,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAC9D,CAAC,EACH,CAAC,aAAa,CAAC,CAChB,CAAC;IAEF;;OAEG;IACH,MAAM,uBAAuB,GAAG,OAAO,CACrC,GAAG,EAAE,CACH,CAAC,IAAgB,EAAgB,EAAE;QACjC,OAAO,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,2BAA2B,CAAC,CAAC;IACpE,CAAC,EACH,CAAC,aAAa,CAAC,CAChB,CAAC;IAEF;;OAEG;IACH,MAAM,gBAAgB,GAAG,OAAO,CAC9B,GAAG,EAAE,CACH,CAAC,IAAgB,EAAgB,EAAE;QACjC,OAAO,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,oBAAoB,CAAC,CAAC;IAC7D,CAAC,EACH,CAAC,aAAa,CAAC,CAChB,CAAC;IAEF;;OAEG;IACH,MAAM,gBAAgB,GAAG,OAAO,CAC9B,GAAG,EAAE,CACH,CAAC,IAAgB,EAAgB,EAAE;QACjC,OAAO,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,2BAA2B,CAAC,CAAC;IACpE,CAAC,EACH,CAAC,aAAa,CAAC,CAChB,CAAC;IAEF;;;OAGG;IACH,MAAM,yBAAyB,GAAG,OAAO,CACvC,GAAG,EAAE,CACH,CAAC,IAAgB,EAAU,EAAE;QAC3B,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;QACtE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzC,CAAC,EACH,CAAC,IAAI,CAAC,CACP,CAAC;IAEF;;;;;OAKG;IACH,MAAM,yBAAyB,GAAG,CAAC,IAAgB,EAAgB,EAAE;QACnE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpB,OAAO,IAAI;aACR,OAAO,CAAC;YACP,GAAG,EAAE,SAAS,CAAC,yBAAyB,CAAC,GAAG,CAAC,EAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAC,CAAC;YAC3D,MAAM,EAAE,SAAS,CAAC,yBAAyB,CAAC,MAAM;SACnD,CAAC;aACD,IAAI,CAAC,CAAC,GAAsB,EAAE,EAAE;YAC/B,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE;gBACrB,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aAC5B;YACD,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC7E,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACvB,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtB,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF;;;;;OAKG;IACH,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE;QACxD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;QAC7E,IAAI,KAAK,CAAC;QACV,IAAI,MAAM,GAAG,CAAC,EAAE;YACd,KAAK,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAC,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAC,CAAC,CAAC,CAAC;SACtD;aAAM;YACL,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACrB,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;oBAC1C,OAAO,EAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAC,CAAC;iBAChD;gBACD,OAAO,EAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC;YACxD,CAAC,CAAC,CAAC;SACJ;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF;;OAEG;IACH,MAAM,mBAAmB,GAAG,OAAO,CACjC,GAAG,EAAE,CAAC,CAAC,IAAgB,EAAE,EAAE;QACzB,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACvB,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC,EACD,CAAC,IAAI,EAAE,KAAK,CAAC,CACd,CAAC;IAEF;;;;OAIG;IACH,MAAM,MAAM,GAAG,CAAC,IAAgB,EAAU,EAAE;QAC1C,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YAC3B,OAAO,yBAAyB,CAAC,IAAI,CAAC,CAAC;SACxC;QACD,IAAI,UAAU,EAAE;YACd,IAAI,mBAAmB,IAAI,IAAI,EAAE;gBAC/B,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC;aAClC;YACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBACpB,yBAAyB,CAAC,IAAI,CAAC,CAAC;aACjC;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF;;OAEG;IACH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,UAAU,EAAE;YACf,UAAU,EAAE,CAAC;SACd;IACH,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,IAAI,mBAAmB,IAAI,CAAC,IAAI,EAAE;QAChC,OAAO,EAAC,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAC,CAAC;KAChD;IACD,OAAO;QACL,WAAW,EAAE,IAAI;QACjB,OAAO;QACP,SAAS;QACT,MAAM;QACN,iBAAiB;QACjB,uBAAuB;QACvB,gBAAgB;QAChB,gBAAgB;QAChB,OAAO;QACP,UAAU;KACX,CAAC;AACJ,CAAC"}
@@ -15,8 +15,8 @@ import { SCCategoryType, SCUserType } from '@selfcommunity/types';
15
15
  */
16
16
  export default function useSCFollowedCategoriesManager(user?: SCUserType, updateUser?: (info: any) => void): {
17
17
  categories: any[];
18
- loading: number[];
19
- isLoading: (obj: {
18
+ loading: any[];
19
+ isLoading: (v: number | {
20
20
  id: number;
21
21
  }) => boolean;
22
22
  follow?: undefined;
@@ -25,8 +25,8 @@ export default function useSCFollowedCategoriesManager(user?: SCUserType, update
25
25
  emptyCache?: undefined;
26
26
  } | {
27
27
  categories: any[];
28
- loading: number[];
29
- isLoading: (obj: {
28
+ loading: any[];
29
+ isLoading: (v: number | {
30
30
  id: number;
31
31
  }) => boolean;
32
32
  follow: (category: SCCategoryType) => Promise<any>;
@@ -1 +1 @@
1
- {"version":3,"file":"useSCFollowedCategoriesManager.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSCFollowedCategoriesManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,cAAc,EAAE,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAKhE;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,OAAO,UAAU,8BAA8B,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,IAAI,KAAA,KAAK,IAAI;;;;;;;;;;;;;;;;uBA4CpF,cAAc,KAAG,QAAQ,GAAG,CAAC;2BAkE7B,cAAc,KAAG,OAAO;mBAnG3B,IAAI;;EAyHjB"}
1
+ {"version":3,"file":"useSCFollowedCategoriesManager.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSCFollowedCategoriesManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,cAAc,EAAE,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAKhE;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,OAAO,UAAU,8BAA8B,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,IAAI,KAAA,KAAK,IAAI;;;;;;;;;;;;;;;;uBA4CpF,cAAc,KAAG,QAAQ,GAAG,CAAC;2BAkE7B,cAAc,KAAG,OAAO;mBAnG3B,IAAI;;EAkIjB"}
@@ -1,4 +1,4 @@
1
- import { useMemo } from 'react';
1
+ import { useEffect, useMemo } from "react";
2
2
  import { http, Endpoints } from '@selfcommunity/api-services';
3
3
  import useSCCachingManager from './useSCCachingManager';
4
4
  import { SCOPE_SC_CORE } from '../constants/Errors';
@@ -18,7 +18,7 @@ import { Logger } from '@selfcommunity/utils';
18
18
  :::
19
19
  */
20
20
  export default function useSCFollowedCategoriesManager(user, updateUser) {
21
- const { cache, updateCache, emptyCache, data, setData, loading, setLoading, isLoading } = useSCCachingManager();
21
+ const { cache, updateCache, emptyCache, data, setData, loading, setLoading, setUnLoading, isLoading } = useSCCachingManager();
22
22
  const authUserId = user ? user.id : null;
23
23
  /**
24
24
  * Memoized refresh all categories
@@ -55,7 +55,7 @@ export default function useSCFollowedCategoriesManager(user, updateUser) {
55
55
  * Toggle action
56
56
  */
57
57
  const follow = useMemo(() => (category) => {
58
- setLoading((prev) => [...prev, ...[category.id]]);
58
+ setLoading(category.id);
59
59
  return http
60
60
  .request({
61
61
  url: Endpoints.FollowCategory.url({ id: category.id }),
@@ -68,7 +68,7 @@ export default function useSCFollowedCategoriesManager(user, updateUser) {
68
68
  updateCache([category.id]);
69
69
  const isFollowed = data.includes(category.id);
70
70
  setData((prev) => (isFollowed ? prev.filter((id) => id !== category.id) : [...[category.id], ...prev]));
71
- setLoading((prev) => prev.filter((c) => c !== category.id));
71
+ setUnLoading(category.id);
72
72
  updateUser({ categories_counter: isFollowed ? data.length - 1 : data.length + 1 });
73
73
  return Promise.resolve(res.data);
74
74
  });
@@ -80,7 +80,7 @@ export default function useSCFollowedCategoriesManager(user, updateUser) {
80
80
  * @param category
81
81
  */
82
82
  const checkIsCategoryFollowed = (category) => {
83
- setLoading((prev) => (prev.includes(category.id) ? prev : [...prev, ...[category.id]]));
83
+ setLoading(category.id);
84
84
  http
85
85
  .request({
86
86
  url: Endpoints.CheckCategoryIsFollowed.url({ id: category.id }),
@@ -92,7 +92,7 @@ export default function useSCFollowedCategoriesManager(user, updateUser) {
92
92
  }
93
93
  updateCache([category.id]);
94
94
  setData((prev) => (res.data.is_followed ? [...[category.id], ...prev] : prev.filter((id) => id !== category.id)));
95
- setLoading((prev) => prev.filter((c) => c !== category.id));
95
+ setUnLoading(category.id);
96
96
  return Promise.resolve(res.data);
97
97
  });
98
98
  };
@@ -119,12 +119,20 @@ export default function useSCFollowedCategoriesManager(user, updateUser) {
119
119
  if ('followed' in category) {
120
120
  return getFollowStatus(category);
121
121
  }
122
- if (!loading.includes(category.id)) {
122
+ if (!isLoading(category)) {
123
123
  checkIsCategoryFollowed(category);
124
124
  }
125
125
  }
126
126
  return false;
127
127
  }, [data, loading, cache, authUserId]);
128
+ /**
129
+ * Empty cache on logout
130
+ */
131
+ useEffect(() => {
132
+ if (!authUserId) {
133
+ emptyCache();
134
+ }
135
+ }, [authUserId]);
128
136
  if (!user) {
129
137
  return { categories: data, loading, isLoading };
130
138
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useSCFollowedCategoriesManager.js","sourceRoot":"","sources":["../../../src/hooks/useSCFollowedCategoriesManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useSCFollowedCategoriesManager.js","sourceRoot":"","sources":["../../../src/hooks/useSCFollowedCategoriesManager.ts"],"names":[],"mappings":"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"}
@@ -15,8 +15,8 @@ import { SCUserType } from '@selfcommunity/types';
15
15
  */
16
16
  export default function useSCFollowedManager(user?: SCUserType): {
17
17
  followed: any[];
18
- loading: number[];
19
- isLoading: (obj: {
18
+ loading: any[];
19
+ isLoading: (v: number | {
20
20
  id: number;
21
21
  }) => boolean;
22
22
  follow?: undefined;
@@ -25,8 +25,8 @@ export default function useSCFollowedManager(user?: SCUserType): {
25
25
  emptyCache?: undefined;
26
26
  } | {
27
27
  followed: any[];
28
- loading: number[];
29
- isLoading: (obj: {
28
+ loading: any[];
29
+ isLoading: (v: number | {
30
30
  id: number;
31
31
  }) => boolean;
32
32
  follow: (user: SCUserType) => Promise<any>;
@@ -1 +1 @@
1
- {"version":3,"file":"useSCFollowedManager.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSCFollowedManager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAchD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,IAAI,CAAC,EAAE,UAAU;;;;;;;;;;;;;;;;mBAmDjD,UAAU,KAAG,QAAQ,GAAG,CAAC;uBAiEzB,UAAU,KAAG,OAAO;mBAtGnB,IAAI;;EA2HjB"}
1
+ {"version":3,"file":"useSCFollowedManager.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSCFollowedManager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAchD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,IAAI,CAAC,EAAE,UAAU;;;;;;;;;;;;;;;;mBAmDjD,UAAU,KAAG,QAAQ,GAAG,CAAC;uBAiEpB,UAAU,KAAG,OAAO;mBAtGxB,IAAI;;EAmIjB"}
@@ -1,4 +1,4 @@
1
- import { useMemo } from 'react';
1
+ import { useEffect, useMemo } from 'react';
2
2
  import { http, Endpoints } from '@selfcommunity/api-services';
3
3
  import { Logger } from '@selfcommunity/utils';
4
4
  import { SCOPE_SC_CORE } from '../constants/Errors';
@@ -26,7 +26,7 @@ const STATUS_FOLLOWED = 'followed';
26
26
  :::
27
27
  */
28
28
  export default function useSCFollowedManager(user) {
29
- const { cache, updateCache, emptyCache, data, setData, loading, setLoading, isLoading } = useSCCachingManager();
29
+ const { cache, updateCache, emptyCache, data, setData, loading, setLoading, setUnLoading, isLoading } = useSCCachingManager();
30
30
  const scPreferencesContext = useSCPreferences();
31
31
  const authUserId = user ? user.id : null;
32
32
  const followEnabled = CONFIGURATIONS_FOLLOW_ENABLED in scPreferencesContext.preferences && scPreferencesContext.preferences[CONFIGURATIONS_FOLLOW_ENABLED].value;
@@ -52,8 +52,8 @@ export default function useSCFollowedManager(user) {
52
52
  }
53
53
  updateCache(Object.keys(res.data.connection_statuses).map((id) => parseInt(id)));
54
54
  setData(Object.entries(res.data.connection_statuses)
55
- .filter(([k, v]) => v === STATUS_FOLLOWED)
56
- .map(([k, v]) => parseInt(k)));
55
+ .filter(([, v]) => v === STATUS_FOLLOWED)
56
+ .map(([k]) => parseInt(k)));
57
57
  return Promise.resolve(res.data);
58
58
  })
59
59
  .catch((e) => {
@@ -67,7 +67,7 @@ export default function useSCFollowedManager(user) {
67
67
  * Toggle action
68
68
  */
69
69
  const follow = useMemo(() => (user) => {
70
- setLoading((prev) => [...prev, ...[user.id]]);
70
+ setLoading(user.id);
71
71
  return http
72
72
  .request({
73
73
  url: Endpoints.FollowUser.url({ id: user.id }),
@@ -80,7 +80,7 @@ export default function useSCFollowedManager(user) {
80
80
  updateCache([user.id]);
81
81
  const isFollowed = data.includes(user.id);
82
82
  setData((prev) => (isFollowed ? prev.filter((id) => id !== user.id) : [...[user.id], ...prev]));
83
- setLoading((prev) => prev.filter((u) => u !== user.id));
83
+ setUnLoading(user.id);
84
84
  return Promise.resolve(res.data);
85
85
  });
86
86
  }, [data, loading, cache]);
@@ -91,7 +91,7 @@ export default function useSCFollowedManager(user) {
91
91
  * @param user
92
92
  */
93
93
  const checkIsUserFollowed = (user) => {
94
- setLoading((prev) => (prev.includes(user.id) ? prev : [...prev, ...[user.id]]));
94
+ setLoading(user.id);
95
95
  http
96
96
  .request({
97
97
  url: Endpoints.CheckUserFollowed.url({ id: user.id }),
@@ -103,7 +103,7 @@ export default function useSCFollowedManager(user) {
103
103
  }
104
104
  updateCache([user.id]);
105
105
  setData((prev) => (res.data.is_followed ? [...prev, ...[user.id]] : prev.filter((id) => id !== user.id)));
106
- setLoading((prev) => prev.filter((u) => u !== user.id));
106
+ setUnLoading(user.id);
107
107
  return Promise.resolve(res.data);
108
108
  });
109
109
  };
@@ -121,20 +121,30 @@ export default function useSCFollowedManager(user) {
121
121
  * If user is already in cache -> check if the user is in followed,
122
122
  * otherwise, check if auth user follow the user
123
123
  */
124
- const isFollowed = useMemo(() => (user) => {
125
- if (cache.includes(user.id)) {
126
- return Boolean(data.includes(user.id));
127
- }
128
- if (authUserId) {
129
- if ('connection_status' in user) {
130
- return getConnectionStatus(user);
124
+ const isFollowed = useMemo(() => {
125
+ return (user) => {
126
+ if (cache.includes(user.id)) {
127
+ return Boolean(data.includes(user.id));
131
128
  }
132
- if (!loading.includes(user.id)) {
133
- checkIsUserFollowed(user);
129
+ if (authUserId) {
130
+ if ('connection_status' in user) {
131
+ return getConnectionStatus(user);
132
+ }
133
+ if (!isLoading(user)) {
134
+ checkIsUserFollowed(user);
135
+ }
134
136
  }
135
- }
136
- return false;
137
+ return false;
138
+ };
137
139
  }, [data, loading, cache, authUserId]);
140
+ /**
141
+ * Empty cache on logout
142
+ */
143
+ useEffect(() => {
144
+ if (!authUserId) {
145
+ emptyCache();
146
+ }
147
+ }, [authUserId]);
138
148
  if (!followEnabled || !user) {
139
149
  return { followed: data, loading, isLoading };
140
150
  }