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

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 +117 -82
  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 +117 -82
  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,62 @@ 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]);
42
+ const notificationSubscriber = (msg, dataMsg) => {
43
+ if (dataMsg.data.connection !== undefined) {
50
44
  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
- }));
45
+ let _upd;
46
+ switch (SCNotificationMapping[dataMsg.data.activity_type]) {
47
+ case SCNotificationTypologyType.CONNECTION_REQUEST:
48
+ _upd = { user: 'request_user', state: SCConnectionStatus.CONNECTION_REQUEST_RECEIVED };
49
+ break;
50
+ case SCNotificationTypologyType.CONNECTION_CANCEL_REQUEST:
51
+ _upd = { user: 'cancel_request_user', state: null };
52
+ break;
53
+ case SCNotificationTypologyType.CONNECTION_ACCEPT:
54
+ _upd = { user: 'accept_user', state: SCConnectionStatus.CONNECTED };
55
+ break;
56
+ case SCNotificationTypologyType.CONNECTION_REMOVE:
57
+ _upd = { user: 'remove_user', state: null };
58
+ break;
60
59
  }
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);
60
+ updateCache([dataMsg.data[_upd.user].id]);
61
+ _data = data.map((k) => {
62
+ if (parseInt(Object.keys(k)[0]) === dataMsg.data[_upd.user].id) {
63
+ return { [Object.keys(k)[0]]: _upd.state };
64
+ }
65
+ return { [Object.keys(k)[0]]: data[Object.keys(k)[0]] };
66
+ });
67
+ setData([..._data]);
67
68
  }
68
69
  };
69
70
  /**
70
71
  * Subscribe to notification types user_follow, user_unfollow
71
72
  */
72
- useEffect(() => {
73
+ useDeepCompareEffectNoCheck(() => {
73
74
  notificationConnAcceptSubscription.current = PubSub.subscribe(`${SCNotificationTopicType.INTERACTION}.${SCNotificationTypologyType.CONNECTION_ACCEPT}`, notificationSubscriber);
74
75
  notificationConnRequestSubscription.current = PubSub.subscribe(`${SCNotificationTopicType.INTERACTION}.${SCNotificationTypologyType.CONNECTION_REQUEST}`, notificationSubscriber);
76
+ notificationConnRequestCancelSubscription.current = PubSub.subscribe(`${SCNotificationTopicType.INTERACTION}.${SCNotificationTypologyType.CONNECTION_CANCEL_REQUEST}`, notificationSubscriber);
75
77
  notificationConnRemoveSubscription.current = PubSub.subscribe(`${SCNotificationTopicType.INTERACTION}.${SCNotificationTypologyType.CONNECTION_REMOVE}`, notificationSubscriber);
76
78
  return () => {
77
79
  PubSub.unsubscribe(notificationConnAcceptSubscription.current);
78
80
  PubSub.unsubscribe(notificationConnRequestSubscription.current);
81
+ PubSub.unsubscribe(notificationConnRequestCancelSubscription.current);
79
82
  PubSub.unsubscribe(notificationConnRemoveSubscription.current);
80
83
  };
81
- }, []);
84
+ }, [data]);
82
85
  /**
83
86
  * Memoized refresh all connections
84
87
  * It makes a single request to the server and retrieves
@@ -87,7 +90,7 @@ export default function useSCConnectionsManager(user) {
87
90
  */
88
91
  const refresh = useMemo(() => () => {
89
92
  emptyCache();
90
- if (user && cache.length > 0) {
93
+ if (authUserId && cache.length > 0) {
91
94
  // Only if user is authenticated
92
95
  http
93
96
  .request({
@@ -100,9 +103,7 @@ export default function useSCConnectionsManager(user) {
100
103
  return Promise.reject(res);
101
104
  }
102
105
  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 })));
106
+ setData(Object.keys(res.data.connection_statuses).map((k) => ({ [k]: res.data.connection_statuses[k] })));
106
107
  return Promise.resolve(res.data);
107
108
  })
108
109
  .catch((e) => {
@@ -110,64 +111,62 @@ export default function useSCConnectionsManager(user) {
110
111
  Logger.error(SCOPE_SC_CORE, e);
111
112
  });
112
113
  }
113
- }, [data, user, cache]);
114
+ }, [data, authUserId, cache]);
114
115
  /**
115
116
  * Memoized Request connection
116
117
  */
117
- const requestConnection = useMemo(() => (user) => {
118
- setLoading((prev) => [...prev, ...[user.id]]);
119
- if (getCurrentStatus(user) === STATUS_CONNECTION_REQUEST_RECEIVED) {
120
- return acceptConnection(user);
121
- }
118
+ const handleRequest = useMemo(() => (user, endpoint) => {
119
+ setLoading(user.id);
122
120
  return http
123
121
  .request({
124
- url: Endpoints.UserRequestConnection.url({ id: user.id }),
125
- method: Endpoints.UserRequestConnection.method,
122
+ url: endpoint.url({ id: user.id }),
123
+ method: endpoint.method,
126
124
  })
127
125
  .then((res) => {
128
126
  if (res.status >= 300) {
129
127
  return Promise.reject(res);
130
128
  }
131
129
  updateCache([user.id]);
132
- const _data = data.map(([k, v]) => ({
133
- k: k === user.id ? STATUS_CONNECTION_REQUEST_SENT : v,
134
- }));
130
+ const _data = data.map((k) => {
131
+ if (parseInt(Object.keys(k)[0]) === user.id) {
132
+ return { [Object.keys(k)[0]]: res.data.connection_status };
133
+ }
134
+ });
135
135
  setData(_data);
136
- setLoading((prev) => prev.filter((u) => u !== user.id));
136
+ setUnLoading(user.id);
137
137
  return Promise.resolve(res.data);
138
138
  });
139
139
  }, [data, loading, cache]);
140
+ /**
141
+ * Memoized Request connection
142
+ */
143
+ const requestConnection = useMemo(() => (user) => {
144
+ return handleRequest(user, Endpoints.UserRequestConnection);
145
+ }, [handleRequest]);
146
+ /**
147
+ * Memoized cancel request connection
148
+ */
149
+ const cancelRequestConnection = useMemo(() => (user) => {
150
+ return handleRequest(user, Endpoints.UserCancelRequestConnection);
151
+ }, [handleRequest]);
152
+ /**
153
+ * Memoized Remove connection
154
+ */
155
+ const removeConnection = useMemo(() => (user) => {
156
+ return handleRequest(user, Endpoints.UserRemoveConnection);
157
+ }, [handleRequest]);
140
158
  /**
141
159
  * Memoized Accept Request connection
142
160
  */
143
161
  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]);
162
+ return handleRequest(user, Endpoints.UserAcceptRequestConnection);
163
+ }, [handleRequest]);
165
164
  /**
166
- * Return current user status if exist,
165
+ * Return current user status if exists,
167
166
  * otherwise return null
168
167
  */
169
- const getCurrentStatus = useMemo(() => (user) => {
170
- const d = data.filter(([id, v]) => id === user.id);
168
+ const getCurrentUserCacheStatus = useMemo(() => (user) => {
169
+ const d = data.filter((k) => parseInt(Object.keys(k)[0]) === user.id);
171
170
  return d.length ? d[0][user.id] : null;
172
171
  }, [data]);
173
172
  /**
@@ -177,39 +176,75 @@ export default function useSCConnectionsManager(user) {
177
176
  * @param user
178
177
  */
179
178
  const checkUserConnectionStatus = (user) => {
180
- setLoading((prev) => (prev.includes(user.id) ? prev : [...prev, ...[user.id]]));
179
+ setLoading(user.id);
181
180
  http
182
181
  .request({
183
- url: Endpoints.UserCheckConnection.url({ id: user.id }),
184
- method: Endpoints.UserCheckConnection.method,
182
+ url: Endpoints.UserCheckConnectionStatus.url({ id: user.id }),
183
+ method: Endpoints.UserCheckConnectionStatus.method,
185
184
  })
186
185
  .then((res) => {
187
186
  if (res.status >= 300) {
188
187
  return Promise.reject(res);
189
188
  }
189
+ const e = { [user.id]: res.data.connection_status };
190
+ setData((prev) => [...prev, ...[e]]);
190
191
  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));
192
+ setUnLoading(user.id);
193
193
  return Promise.resolve(res.data);
194
194
  });
195
195
  };
196
+ /**
197
+ * Bypass remote check if the user is followed
198
+ */
199
+ const getConnectionStatus = useMemo(() => (user) => {
200
+ updateCache([user.id]);
201
+ setData((prev) => [...prev, ...[{ [user.id]: user.connection_status }]]);
202
+ return user.connection_status;
203
+ }, [data, cache]);
196
204
  /**
197
205
  * Memoized status
198
206
  * If user is already in cache -> check data user statuses,
199
207
  * otherwise, check if auth user is connected with user
200
208
  */
201
- const status = useMemo(() => (user) => {
209
+ const status = (user) => {
202
210
  if (cache.includes(user.id)) {
203
- return data.filter((k, v) => k === user.id)[0][user.id];
211
+ const _d = data.filter((k) => parseInt(Object.keys(k)[0]) === user.id);
212
+ if (_d.length) {
213
+ return _d[0][user.id];
214
+ }
204
215
  }
205
- if (!loading.includes(user.id)) {
206
- checkUserConnectionStatus(user);
216
+ if (authUserId) {
217
+ if ('connection_status' in user) {
218
+ return getConnectionStatus(user);
219
+ }
220
+ if (!isLoading(user)) {
221
+ checkUserConnectionStatus(user);
222
+ }
207
223
  }
208
224
  return null;
209
- }, [data, loading, cache]);
225
+ };
226
+ /**
227
+ * Empty cache on logout
228
+ */
229
+ useEffect(() => {
230
+ if (!authUserId) {
231
+ emptyCache();
232
+ }
233
+ }, [authUserId]);
210
234
  if (connectionsDisabled || !user) {
211
235
  return { connections: data, loading, isLoading };
212
236
  }
213
- return { connections: data, loading, isLoading, status, requestConnection, acceptConnection, refresh, emptyCache };
237
+ return {
238
+ connections: data,
239
+ loading,
240
+ isLoading,
241
+ status,
242
+ requestConnection,
243
+ cancelRequestConnection,
244
+ acceptConnection,
245
+ removeConnection,
246
+ refresh,
247
+ emptyCache,
248
+ };
214
249
  }
215
250
  //# 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,KAAK,GAAG,EAAE,CAAC;YACf,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,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,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE;oBAC9D,OAAO,EAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAC,CAAC;iBAC1C;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;YACH,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;SACrB;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,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC3B,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,EAAE;oBAC3C,OAAO,EAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAC,CAAC;iBAC1D;YACH,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,KAAK,CAAC,CAAC;YACf,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtB,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,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,EAAQ,EAAE;QAC3D,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpB,IAAI;aACD,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,MAAM,CAAC,GAAG,EAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAC,CAAC;YAClD,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,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;;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,GAAG,IAAI,EAAE,GAAG,CAAC,EAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAC,CAAC,CAAC,CAAC,CAAC;QACvE,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,MAAM,EAAE,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;YACvE,IAAI,EAAE,CAAC,MAAM,EAAE;gBACb,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aACvB;SACF;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":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAC,IAAI,EAAE,SAAS,EAAe,MAAM,6BAA6B,CAAC;AAE1E,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC;AAE5C;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,OAAO,UAAU,8BAA8B,CAAC,IAAiB,EAAE,UAA2B;IACnG,MAAM,EAAC,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAC,GAAG,mBAAmB,EAAE,CAAC;IAC9G,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAEzC;;;;;OAKG;IACH,MAAM,OAAO,GAAG,OAAO,CACrB,GAAG,EAAE,CAAC,GAAS,EAAE;QACf,UAAU,EAAE,CAAC;QACb,IAAI,IAAI,EAAE;YACR,gCAAgC;YAChC,IAAI;iBACD,OAAO,CAAC;gBACP,GAAG,EAAE,SAAS,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAC,CAAC;gBACpD,MAAM,EAAE,SAAS,CAAC,kBAAkB,CAAC,MAAM;aAC5C,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,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC9D,WAAW,CAAC,WAAW,CAAC,CAAC;gBACzB,OAAO,CAAC,WAAW,CAAC,CAAC;gBACrB,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,kEAAkE,CAAC,CAAC;gBAChG,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;SACN;IACH,CAAC,EACD,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CACpB,CAAC;IAEF;;;OAGG;IACH,MAAM,MAAM,GAAG,OAAO,CACpB,GAAG,EAAE,CACH,CAAC,QAAwB,EAAgB,EAAE;QACzC,UAAU,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAClD,OAAO,IAAI;aACR,OAAO,CAAC;YACP,GAAG,EAAE,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,EAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAC,CAAC;YACpD,MAAM,EAAE,SAAS,CAAC,cAAc,CAAC,MAAM;SACxC,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,WAAW,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC9C,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACxG,UAAU,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5D,UAAU,CAAC,EAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAC,CAAC,CAAC;YACjF,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACP,CAAC,EACH,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CACvB,CAAC;IAEF;;;;;OAKG;IACH,MAAM,uBAAuB,GAAG,CAAC,QAAwB,EAAQ,EAAE;QACjE,UAAU,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACxF,IAAI;aACD,OAAO,CAAC;YACP,GAAG,EAAE,SAAS,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAC,CAAC;YAC7D,MAAM,EAAE,SAAS,CAAC,uBAAuB,CAAC,MAAM;SACjD,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,WAAW,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3B,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAClH,UAAU,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5D,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF;;OAEG;IACH,MAAM,eAAe,GAAG,OAAO,CAC7B,GAAG,EAAE,CAAC,CAAC,QAAwB,EAAE,EAAE;QACjC,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,IAAI,KAAK,CAAC;QAC9C,WAAW,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3B,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACrE,OAAO,UAAU,CAAC;IACpB,CAAC,EACD,CAAC,IAAI,EAAE,KAAK,CAAC,CACd,CAAC;IAEF;;;;OAIG;IACH,MAAM,UAAU,GAAG,OAAO,CACxB,GAAG,EAAE,CACH,CAAC,QAAwB,EAAW,EAAE;QACpC,yCAAyC;QACzC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;YAC/B,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;SAC5C;QACD,IAAI,UAAU,EAAE;YACd,IAAI,UAAU,IAAI,QAAQ,EAAE;gBAC1B,OAAO,eAAe,CAAC,QAAQ,CAAC,CAAC;aAClC;YACD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;gBAClC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;aACnC;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC,EACH,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,CACnC,CAAC;IAEF,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,EAAC,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAC,CAAC;KAC/C;IACD,OAAO,EAAC,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAC,CAAC;AACzF,CAAC"}
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
  }