@selfcommunity/react-core 0.1.18 → 0.1.19-alpha.2

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 (68) hide show
  1. package/lib/cjs/components/provider/SCRoutingProvider/index.d.ts.map +1 -1
  2. package/lib/cjs/constants/Cache.d.ts +28 -0
  3. package/lib/cjs/constants/Cache.d.ts.map +1 -0
  4. package/lib/cjs/constants/Cache.js +41 -0
  5. package/lib/cjs/constants/Cache.js.map +1 -0
  6. package/lib/cjs/hooks/useSCFetchCategory.d.ts +3 -1
  7. package/lib/cjs/hooks/useSCFetchCategory.d.ts.map +1 -1
  8. package/lib/cjs/hooks/useSCFetchCategory.js +19 -6
  9. package/lib/cjs/hooks/useSCFetchCategory.js.map +1 -1
  10. package/lib/cjs/hooks/useSCFetchCommentObject.d.ts +4 -1
  11. package/lib/cjs/hooks/useSCFetchCommentObject.d.ts.map +1 -1
  12. package/lib/cjs/hooks/useSCFetchCommentObject.js +20 -6
  13. package/lib/cjs/hooks/useSCFetchCommentObject.js.map +1 -1
  14. package/lib/cjs/hooks/useSCFetchCommentObjects.d.ts +2 -0
  15. package/lib/cjs/hooks/useSCFetchCommentObjects.d.ts.map +1 -1
  16. package/lib/cjs/hooks/useSCFetchCommentObjects.js +48 -4
  17. package/lib/cjs/hooks/useSCFetchCommentObjects.js.map +1 -1
  18. package/lib/cjs/hooks/useSCFetchContributors.d.ts +51 -0
  19. package/lib/cjs/hooks/useSCFetchContributors.d.ts.map +1 -0
  20. package/lib/cjs/hooks/useSCFetchContributors.js +237 -0
  21. package/lib/cjs/hooks/useSCFetchContributors.js.map +1 -0
  22. package/lib/cjs/hooks/useSCFetchFeed.d.ts +50 -0
  23. package/lib/cjs/hooks/useSCFetchFeed.d.ts.map +1 -0
  24. package/lib/cjs/hooks/useSCFetchFeed.js +251 -0
  25. package/lib/cjs/hooks/useSCFetchFeed.js.map +1 -0
  26. package/lib/cjs/hooks/useSCFetchFeedObject.d.ts +4 -1
  27. package/lib/cjs/hooks/useSCFetchFeedObject.d.ts.map +1 -1
  28. package/lib/cjs/hooks/useSCFetchFeedObject.js +21 -9
  29. package/lib/cjs/hooks/useSCFetchFeedObject.js.map +1 -1
  30. package/lib/cjs/index.d.ts +4 -1
  31. package/lib/cjs/index.d.ts.map +1 -1
  32. package/lib/cjs/index.js +7 -1
  33. package/lib/cjs/index.js.map +1 -1
  34. package/lib/esm/components/provider/SCRoutingProvider/index.d.ts.map +1 -1
  35. package/lib/esm/constants/Cache.d.ts +28 -0
  36. package/lib/esm/constants/Cache.d.ts.map +1 -0
  37. package/lib/esm/constants/Cache.js +28 -0
  38. package/lib/esm/constants/Cache.js.map +1 -0
  39. package/lib/esm/hooks/useSCFetchCategory.d.ts +3 -1
  40. package/lib/esm/hooks/useSCFetchCategory.d.ts.map +1 -1
  41. package/lib/esm/hooks/useSCFetchCategory.js +20 -7
  42. package/lib/esm/hooks/useSCFetchCategory.js.map +1 -1
  43. package/lib/esm/hooks/useSCFetchCommentObject.d.ts +4 -1
  44. package/lib/esm/hooks/useSCFetchCommentObject.d.ts.map +1 -1
  45. package/lib/esm/hooks/useSCFetchCommentObject.js +21 -7
  46. package/lib/esm/hooks/useSCFetchCommentObject.js.map +1 -1
  47. package/lib/esm/hooks/useSCFetchCommentObjects.d.ts +2 -0
  48. package/lib/esm/hooks/useSCFetchCommentObjects.d.ts.map +1 -1
  49. package/lib/esm/hooks/useSCFetchCommentObjects.js +50 -6
  50. package/lib/esm/hooks/useSCFetchCommentObjects.js.map +1 -1
  51. package/lib/esm/hooks/useSCFetchContributors.d.ts +51 -0
  52. package/lib/esm/hooks/useSCFetchContributors.d.ts.map +1 -0
  53. package/lib/esm/hooks/useSCFetchContributors.js +230 -0
  54. package/lib/esm/hooks/useSCFetchContributors.js.map +1 -0
  55. package/lib/esm/hooks/useSCFetchFeed.d.ts +50 -0
  56. package/lib/esm/hooks/useSCFetchFeed.d.ts.map +1 -0
  57. package/lib/esm/hooks/useSCFetchFeed.js +247 -0
  58. package/lib/esm/hooks/useSCFetchFeed.js.map +1 -0
  59. package/lib/esm/hooks/useSCFetchFeedObject.d.ts +4 -1
  60. package/lib/esm/hooks/useSCFetchFeedObject.d.ts.map +1 -1
  61. package/lib/esm/hooks/useSCFetchFeedObject.js +22 -10
  62. package/lib/esm/hooks/useSCFetchFeedObject.js.map +1 -1
  63. package/lib/esm/index.d.ts +4 -1
  64. package/lib/esm/index.d.ts.map +1 -1
  65. package/lib/esm/index.js +4 -1
  66. package/lib/esm/index.js.map +1 -1
  67. package/lib/umd/react-core.js +1 -1
  68. package/package.json +6 -6
@@ -6,6 +6,8 @@ const utils_1 = require("@selfcommunity/utils");
6
6
  const Errors_1 = require("../constants/Errors");
7
7
  const types_1 = require("@selfcommunity/types");
8
8
  const use_deep_compare_effect_1 = require("use-deep-compare-effect");
9
+ const utils_2 = require("@selfcommunity/utils");
10
+ const Cache_1 = require("../constants/Cache");
9
11
  /**
10
12
  :::info
11
13
  This custom hook is used to fetch a feed object.
@@ -14,17 +16,22 @@ const use_deep_compare_effect_1 = require("use-deep-compare-effect");
14
16
  * @param object.id
15
17
  * @param object.feedObject
16
18
  * @param object.feedObjectType
19
+ * @param cacheStrategy
17
20
  */
18
- function useSCFetchFeedObject({ id = null, feedObject = null, feedObjectType = types_1.SCFeedObjectTypologyType.POST || types_1.SCFeedObjectTypologyType.DISCUSSION || types_1.SCFeedObjectTypologyType.STATUS, }) {
19
- const [obj, setObj] = (0, react_1.useState)(feedObject);
21
+ function useSCFetchFeedObject({ id = null, feedObject = null, feedObjectType = types_1.SCFeedObjectTypologyType.POST || types_1.SCFeedObjectTypologyType.DISCUSSION || types_1.SCFeedObjectTypologyType.STATUS, cacheStrategy = utils_2.CacheStrategies.CACHE_FIRST, }) {
22
+ const __feedObjectId = feedObject ? feedObject.id : id;
23
+ const __feedObjectType = feedObject ? feedObject.type : feedObjectType;
24
+ // CACHE
25
+ const __feedObjectCacheKey = (0, Cache_1.getFeedObjectCacheKey)(__feedObjectId, __feedObjectType);
26
+ const [obj, setObj] = (0, react_1.useState)(cacheStrategy !== utils_2.CacheStrategies.NETWORK_ONLY ? utils_2.LRUCache.get(__feedObjectCacheKey, feedObject) : null);
20
27
  const [error, setError] = (0, react_1.useState)(null);
21
28
  /**
22
29
  * Memoized fetchFeedObject
23
30
  */
24
- const fetchFeedObject = () => {
31
+ const fetchFeedObject = (0, react_1.useMemo)(() => () => {
25
32
  return api_services_1.http
26
33
  .request({
27
- url: api_services_1.Endpoints.FeedObject.url({ type: feedObjectType, id: id }),
34
+ url: api_services_1.Endpoints.FeedObject.url({ type: __feedObjectType, id: __feedObjectId }),
28
35
  method: api_services_1.Endpoints.FeedObject.method,
29
36
  })
30
37
  .then((res) => {
@@ -33,25 +40,30 @@ function useSCFetchFeedObject({ id = null, feedObject = null, feedObjectType = t
33
40
  }
34
41
  return Promise.resolve(res.data);
35
42
  });
36
- };
43
+ }, [__feedObjectId, __feedObjectType]);
37
44
  /**
38
- * If id and feedObjectType resolve feddObject
45
+ * If id and feedObjectType resolve feedObject
39
46
  */
40
47
  (0, react_1.useEffect)(() => {
41
- if (id && feedObjectType) {
48
+ if (__feedObjectId && __feedObjectType && (!obj || cacheStrategy === utils_2.CacheStrategies.STALE_WHILE_REVALIDATE)) {
42
49
  fetchFeedObject()
43
50
  .then((obj) => {
44
51
  setObj(obj);
52
+ utils_2.LRUCache.set(__feedObjectCacheKey, obj);
45
53
  })
46
54
  .catch((err) => {
55
+ utils_2.LRUCache.delete(__feedObjectCacheKey);
47
56
  setError(`FeedObject with id ${id} not found`);
48
57
  utils_1.Logger.error(Errors_1.SCOPE_SC_CORE, `FeedObject with id ${id} not found`);
49
58
  utils_1.Logger.error(Errors_1.SCOPE_SC_CORE, err.message);
50
59
  });
51
60
  }
52
- }, [id, feedObjectType]);
61
+ }, [__feedObjectId, __feedObjectType]);
53
62
  (0, use_deep_compare_effect_1.useDeepCompareEffectNoCheck)(() => {
54
- setObj(feedObject);
63
+ if (feedObject) {
64
+ setObj(feedObject);
65
+ utils_2.LRUCache.set(__feedObjectCacheKey, obj);
66
+ }
55
67
  }, [feedObject]);
56
68
  return { obj, setObj, error };
57
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useSCFetchFeedObject.js","sourceRoot":"","sources":["../../../src/hooks/useSCFetchFeedObject.ts"],"names":[],"mappings":";;AAAA,iCAA0C;AAC1C,8DAA0E;AAC1E,gDAA4C;AAC5C,gDAAkD;AAClD,gDAAwI;AACxI,qEAAoE;AAEpE;;;;;;;;GAQG;AACH,SAAwB,oBAAoB,CAAC,EAC3C,EAAE,GAAG,IAAI,EACT,UAAU,GAAG,IAAI,EACjB,cAAc,GAAG,gCAAwB,CAAC,IAAI,IAAI,gCAAwB,CAAC,UAAU,IAAI,gCAAwB,CAAC,MAAM,GAKzH;IACC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAA,gBAAQ,EAA2D,UAAU,CAAC,CAAC;IACrG,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAS,IAAI,CAAC,CAAC;IAEjD;;OAEG;IACH,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,OAAO,mBAAI;aACR,OAAO,CAAC;YACP,GAAG,EAAE,wBAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAC,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,EAAE,EAAC,CAAC;YAC7D,MAAM,EAAE,wBAAS,CAAC,UAAU,CAAC,MAAM;SACpC,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,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF;;OAEG;IACH,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,EAAE,IAAI,cAAc,EAAE;YACxB,eAAe,EAAE;iBACd,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;gBACZ,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACb,QAAQ,CAAC,sBAAsB,EAAE,YAAY,CAAC,CAAC;gBAC/C,cAAM,CAAC,KAAK,CAAC,sBAAa,EAAE,sBAAsB,EAAE,YAAY,CAAC,CAAC;gBAClE,cAAM,CAAC,KAAK,CAAC,sBAAa,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;SACN;IACH,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;IAEzB,IAAA,qDAA2B,EAAC,GAAG,EAAE;QAC/B,MAAM,CAAC,UAAU,CAAC,CAAC;IACrB,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,OAAO,EAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAC,CAAC;AAC9B,CAAC;AAnDD,uCAmDC"}
1
+ {"version":3,"file":"useSCFetchFeedObject.js","sourceRoot":"","sources":["../../../src/hooks/useSCFetchFeedObject.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,7 @@ import SCPreferencesProvider, { SCPreferencesContext, useSCPreferences } from '.
37
37
  import * as SCPreferences from './constants/Preferences';
38
38
  import * as SCFeatures from './constants/Features';
39
39
  import * as SCNotification from './constants/Notification';
40
+ import * as SCCache from './constants/Cache';
40
41
  /**
41
42
  * Custom Hooks
42
43
  */
@@ -51,6 +52,8 @@ import useSCFetchCategory from './hooks/useSCFetchCategory';
51
52
  import useSCFetchCategories from './hooks/useSCFetchCategories';
52
53
  import useSCFetchIncubator from './hooks/useSCFetchIncubator';
53
54
  import useSCMediaClick from './hooks/useSCMediaClick';
55
+ import useSCFetchContributors from './hooks/useSCFetchContributors';
56
+ import useSCFetchFeed from './hooks/useSCFetchFeed';
54
57
  /**
55
58
  * Routing component
56
59
  */
@@ -69,5 +72,5 @@ import * as Locale from './constants/Locale';
69
72
  /**
70
73
  * List all exports
71
74
  */
72
- export { SCUserContextType, SCFollowedCategoriesManagerType, SCContextProviderType, SCContextType, SCSettingsType, SCSessionType, SCFollowedManagerType, SCConnectionsManagerType, SCSubscribedIncubatorsManagerType, SCLocaleType, SCNotificationContextType, SCPreferencesContextType, SCThemeContextType, SCRoutingContextType, SCLocaleContextType, SCAlertMessagesContextType, SCContext, SCUserContext, SCThemeContext, SCRoutingContext, SCLocaleContext, SCPreferencesContext, useSCContext, SCContextProvider, SCUserProvider, useSCUser, useSCPreferences, SCThemeProvider, useSCTheme, withSCTheme, SCRoutingProvider, useSCRouting, SCLocaleProvider, useSCLocale, withSCLocale, SCPreferencesProvider, SCPreferences, SCFeatures, SCNotification, SCNotificationProvider, SCNotificationContext, useSCNotification, SCAlertMessagesProvider, SCAlertMessagesContext, useSCAlertMessages, Link, SCRoutes, UserUtils, Locale, useSCFetchUser, useSCFetchFeedObject, useSCFetchCommentObject, useSCFetchCommentObjects, useSCFetchCustomAdv, useSCFetchTag, useSCFetchAddressingTagList, useSCFetchCategory, useSCFetchCategories, useSCFetchIncubator, useSCMediaClick };
75
+ export { SCUserContextType, SCFollowedCategoriesManagerType, SCContextProviderType, SCContextType, SCSettingsType, SCSessionType, SCFollowedManagerType, SCConnectionsManagerType, SCSubscribedIncubatorsManagerType, SCLocaleType, SCNotificationContextType, SCPreferencesContextType, SCThemeContextType, SCRoutingContextType, SCLocaleContextType, SCAlertMessagesContextType, SCContext, SCUserContext, SCThemeContext, SCRoutingContext, SCLocaleContext, SCPreferencesContext, useSCContext, SCContextProvider, SCUserProvider, useSCUser, useSCPreferences, SCThemeProvider, useSCTheme, withSCTheme, SCRoutingProvider, useSCRouting, SCLocaleProvider, useSCLocale, withSCLocale, SCPreferencesProvider, SCPreferences, SCFeatures, SCNotification, SCNotificationProvider, SCNotificationContext, useSCNotification, SCAlertMessagesProvider, SCAlertMessagesContext, useSCAlertMessages, Link, SCRoutes, SCCache, UserUtils, Locale, useSCFetchUser, useSCFetchFeedObject, useSCFetchCommentObject, useSCFetchCommentObjects, useSCFetchCustomAdv, useSCFetchTag, useSCFetchAddressingTagList, useSCFetchCategory, useSCFetchCategories, useSCFetchIncubator, useSCMediaClick, useSCFetchContributors, useSCFetchFeed, };
73
76
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/lib/cjs/index.js CHANGED
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.useSCMediaClick = exports.useSCFetchIncubator = exports.useSCFetchCategories = exports.useSCFetchCategory = exports.useSCFetchAddressingTagList = exports.useSCFetchTag = exports.useSCFetchCustomAdv = exports.useSCFetchCommentObjects = exports.useSCFetchCommentObject = exports.useSCFetchFeedObject = exports.useSCFetchUser = exports.Locale = exports.UserUtils = exports.SCRoutes = exports.Link = exports.useSCAlertMessages = exports.SCAlertMessagesContext = exports.SCAlertMessagesProvider = exports.useSCNotification = exports.SCNotificationContext = exports.SCNotificationProvider = exports.SCNotification = exports.SCFeatures = exports.SCPreferences = exports.SCPreferencesProvider = exports.withSCLocale = exports.useSCLocale = exports.SCLocaleProvider = exports.useSCRouting = exports.SCRoutingProvider = exports.withSCTheme = exports.useSCTheme = exports.SCThemeProvider = exports.useSCPreferences = exports.useSCUser = exports.SCUserProvider = exports.SCContextProvider = exports.useSCContext = exports.SCPreferencesContext = exports.SCLocaleContext = exports.SCRoutingContext = exports.SCThemeContext = exports.SCUserContext = exports.SCContext = void 0;
29
+ exports.useSCFetchFeed = exports.useSCFetchContributors = exports.useSCMediaClick = exports.useSCFetchIncubator = exports.useSCFetchCategories = exports.useSCFetchCategory = exports.useSCFetchAddressingTagList = exports.useSCFetchTag = exports.useSCFetchCustomAdv = exports.useSCFetchCommentObjects = exports.useSCFetchCommentObject = exports.useSCFetchFeedObject = exports.useSCFetchUser = exports.Locale = exports.UserUtils = exports.SCCache = exports.SCRoutes = exports.Link = exports.useSCAlertMessages = exports.SCAlertMessagesContext = exports.SCAlertMessagesProvider = exports.useSCNotification = exports.SCNotificationContext = exports.SCNotificationProvider = exports.SCNotification = exports.SCFeatures = exports.SCPreferences = exports.SCPreferencesProvider = exports.withSCLocale = exports.useSCLocale = exports.SCLocaleProvider = exports.useSCRouting = exports.SCRoutingProvider = exports.withSCTheme = exports.useSCTheme = exports.SCThemeProvider = exports.useSCPreferences = exports.useSCUser = exports.SCUserProvider = exports.SCContextProvider = exports.useSCContext = exports.SCPreferencesContext = exports.SCLocaleContext = exports.SCRoutingContext = exports.SCThemeContext = exports.SCUserContext = exports.SCContext = void 0;
30
30
  /**
31
31
  * ContextProvider component
32
32
  */
@@ -91,6 +91,8 @@ const SCFeatures = __importStar(require("./constants/Features"));
91
91
  exports.SCFeatures = SCFeatures;
92
92
  const SCNotification = __importStar(require("./constants/Notification"));
93
93
  exports.SCNotification = SCNotification;
94
+ const SCCache = __importStar(require("./constants/Cache"));
95
+ exports.SCCache = SCCache;
94
96
  /**
95
97
  * Custom Hooks
96
98
  */
@@ -116,6 +118,10 @@ const useSCFetchIncubator_1 = __importDefault(require("./hooks/useSCFetchIncubat
116
118
  exports.useSCFetchIncubator = useSCFetchIncubator_1.default;
117
119
  const useSCMediaClick_1 = __importDefault(require("./hooks/useSCMediaClick"));
118
120
  exports.useSCMediaClick = useSCMediaClick_1.default;
121
+ const useSCFetchContributors_1 = __importDefault(require("./hooks/useSCFetchContributors"));
122
+ exports.useSCFetchContributors = useSCFetchContributors_1.default;
123
+ const useSCFetchFeed_1 = __importDefault(require("./hooks/useSCFetchFeed"));
124
+ exports.useSCFetchFeed = useSCFetchFeed_1.default;
119
125
  /**
120
126
  * Routing component
121
127
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBA;;GAEG;AACH,6FAAmG;AAoGjG,4BApGK,2BAAiB,CAoGL;AAPjB,0FA7FyB,6BAAS,OA6FzB;AAMT,6FAnGoC,gCAAY,OAmGpC;AAjGd;;GAEG;AACH,uFAA8F;AAgG5F,yBAhGK,wBAAc,CAgGL;AAPd,8FAzFsB,8BAAa,OAyFtB;AAQb,0FAjGqC,0BAAS,OAiGrC;AA/FX;;GAEG;AACH,yFAA+G;AA8F7G,0BA9FK,yBAAe,CA8FL;AATf,+FArFuB,gCAAc,OAqFvB;AAUd,2FA/FuC,4BAAU,OA+FvC;AACV,4FAhGmD,6BAAW,OAgGnD;AA9Fb;;GAEG;AACH,6FAA0G;AA4FxG,4BA5FK,2BAAiB,CA4FL;AAXjB,iGAjFyB,oCAAgB,OAiFzB;AAYhB,6FA7F2C,gCAAY,OA6F3C;AA3Fd;;GAEG;AACH,2FAAoH;AAyFlH,2BAzFK,0BAAgB,CAyFL;AAZhB,gGA7EwB,kCAAe,OA6ExB;AAaf,4FA1FyC,8BAAW,OA0FzC;AACX,6FA3FsD,+BAAY,OA2FtD;AAzFd;;GAEG;AACH,uGAA8H;AA2F5H,iCA3FK,gCAAsB,CA2FL;AACtB,sGA5F8B,8CAAqB,OA4F9B;AACrB,kGA7FqD,0CAAiB,OA6FrD;AA3FnB;;GAEG;AACH,yGAAkI;AAyFhI,kCAzFK,iCAAuB,CAyFL;AACvB,uGA1F+B,gDAAsB,OA0F/B;AACtB,mGA3FuD,4CAAkB,OA2FvD;AAzFpB;;GAEG;AACH,qGAA0H;AA6ExH,gCA7EK,+BAAqB,CA6EL;AAdrB,qGA/D6B,4CAAoB,OA+D7B;AAKpB,iGApEmD,wCAAgB,OAoEnD;AAnElB,uEAAyD;AA6EvD,sCAAa;AA5Ef,iEAAmD;AA6EjD,gCAAU;AA5EZ,yEAA2D;AA6EzD,wCAAc;AA3EhB;;GAEG;AACH,4EAAoD;AAmFlD,yBAnFK,wBAAc,CAmFL;AAlFhB,wFAAgE;AAmF9D,+BAnFK,8BAAoB,CAmFL;AAlFtB,8FAAsE;AAmFpE,kCAnFK,iCAAuB,CAmFL;AAlFzB,gGAAwE;AAmFtE,mCAnFK,kCAAwB,CAmFL;AAlF1B,sFAA8D;AAmF5D,8BAnFK,6BAAmB,CAmFL;AAlFrB,0EAAkD;AAmFhD,wBAnFK,uBAAa,CAmFL;AAlFf,sGAA8E;AAmF5E,sCAnFK,qCAA2B,CAmFL;AAlF7B,oFAA4D;AAmF1D,6BAnFK,4BAAkB,CAmFL;AAlFpB,wFAAgE;AAmF9D,+BAnFK,8BAAoB,CAmFL;AAlFtB,sFAA8D;AAmF5D,8BAnFK,6BAAmB,CAmFL;AAlFrB,8EAAsD;AAmFpD,0BAnFK,yBAAe,CAmFL;AAjFjB;;GAEG;AACH,iEAAuC;AAgErC,eAhEK,gBAAI,CAgEL;AA/DN,6DAA+C;AAgE7C,4BAAQ;AA9DV;;;GAGG;AACH,wDAA0C;AA2DxC,8BAAS;AAzDX;;;GAGG;AACH,2DAA6C;AAsD3C,wBAAM"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBA;;GAEG;AACH,6FAAmG;AAuGjG,4BAvGK,2BAAiB,CAuGL;AAPjB,0FAhGyB,6BAAS,OAgGzB;AAMT,6FAtGoC,gCAAY,OAsGpC;AApGd;;GAEG;AACH,uFAA8F;AAmG5F,yBAnGK,wBAAc,CAmGL;AAPd,8FA5FsB,8BAAa,OA4FtB;AAQb,0FApGqC,0BAAS,OAoGrC;AAlGX;;GAEG;AACH,yFAA+G;AAiG7G,0BAjGK,yBAAe,CAiGL;AATf,+FAxFuB,gCAAc,OAwFvB;AAUd,2FAlGuC,4BAAU,OAkGvC;AACV,4FAnGmD,6BAAW,OAmGnD;AAjGb;;GAEG;AACH,6FAA0G;AA+FxG,4BA/FK,2BAAiB,CA+FL;AAXjB,iGApFyB,oCAAgB,OAoFzB;AAYhB,6FAhG2C,gCAAY,OAgG3C;AA9Fd;;GAEG;AACH,2FAAoH;AA4FlH,2BA5FK,0BAAgB,CA4FL;AAZhB,gGAhFwB,kCAAe,OAgFxB;AAaf,4FA7FyC,8BAAW,OA6FzC;AACX,6FA9FsD,+BAAY,OA8FtD;AA5Fd;;GAEG;AACH,uGAA8H;AA8F5H,iCA9FK,gCAAsB,CA8FL;AACtB,sGA/F8B,8CAAqB,OA+F9B;AACrB,kGAhGqD,0CAAiB,OAgGrD;AA9FnB;;GAEG;AACH,yGAAkI;AA4FhI,kCA5FK,iCAAuB,CA4FL;AACvB,uGA7F+B,gDAAsB,OA6F/B;AACtB,mGA9FuD,4CAAkB,OA8FvD;AA5FpB;;GAEG;AACH,qGAA0H;AAgFxH,gCAhFK,+BAAqB,CAgFL;AAdrB,qGAlE6B,4CAAoB,OAkE7B;AAKpB,iGAvEmD,wCAAgB,OAuEnD;AAtElB,uEAAyD;AAgFvD,sCAAa;AA/Ef,iEAAmD;AAgFjD,gCAAU;AA/EZ,yEAA2D;AAgFzD,wCAAc;AA/EhB,2DAA6C;AAwF3C,0BAAO;AAtFT;;GAEG;AACH,4EAAoD;AAsFlD,yBAtFK,wBAAc,CAsFL;AArFhB,wFAAgE;AAsF9D,+BAtFK,8BAAoB,CAsFL;AArFtB,8FAAsE;AAsFpE,kCAtFK,iCAAuB,CAsFL;AArFzB,gGAAwE;AAsFtE,mCAtFK,kCAAwB,CAsFL;AArF1B,sFAA8D;AAsF5D,8BAtFK,6BAAmB,CAsFL;AArFrB,0EAAkD;AAsFhD,wBAtFK,uBAAa,CAsFL;AArFf,sGAA8E;AAsF5E,sCAtFK,qCAA2B,CAsFL;AArF7B,oFAA4D;AAsF1D,6BAtFK,4BAAkB,CAsFL;AArFpB,wFAAgE;AAsF9D,+BAtFK,8BAAoB,CAsFL;AArFtB,sFAA8D;AAsF5D,8BAtFK,6BAAmB,CAsFL;AArFrB,8EAAsD;AAsFpD,0BAtFK,yBAAe,CAsFL;AArFjB,4FAAoE;AAsFlE,iCAtFK,gCAAsB,CAsFL;AArFxB,4EAAoD;AAsFlD,yBAtFK,wBAAc,CAsFL;AApFhB;;GAEG;AACH,iEAAuC;AAgErC,eAhEK,gBAAI,CAgEL;AA/DN,6DAA+C;AAgE7C,4BAAQ;AA9DV;;;GAGG;AACH,wDAA0C;AA4DxC,8BAAS;AA1DX;;;GAGG;AACH,2DAA6C;AAuD3C,wBAAM"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/provider/SCRoutingProvider/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAChE,OAAO,EAA0C,oBAAoB,EAAoB,MAAM,gBAAgB,CAAC;AAoBhH;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,gBAAgB,qCAAkE,CAAC;AAEhG;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EAAC,QAAe,EAAC,EAAE;IAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAC,GAAG,GAAG,CAAC,OAAO,CAmFrG;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,oBAAoB,CAEnD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/provider/SCRoutingProvider/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAChE,OAAO,EAA0C,oBAAoB,EAAC,MAAM,gBAAgB,CAAC;AAoB7F;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,gBAAgB,qCAAkE,CAAC;AAEhG;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EAAC,QAAe,EAAC,EAAE;IAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAC,GAAG,GAAG,CAAC,OAAO,CAmFrG;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,oBAAoB,CAEnD"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Cache prefixes
3
+ */
4
+ /** FEED OBJECT **/
5
+ export declare const FEED_OBJECT_CACHE_PREFIX_KEY = "_fo_";
6
+ export declare const getFeedObjectCacheKey: (id: any, type: any) => string;
7
+ /** COMMMENT OBJECT **/
8
+ export declare const COMMENT_OBJECT_CACHE_PREFIX_KEY = "_co_";
9
+ export declare const getCommentObjectCacheKey: (id: any) => string;
10
+ /** COMMMENT OBJECTS **/
11
+ export declare const COMMENT_OBJECTS_CACHE_PREFIX_KEY = "_cos_";
12
+ export declare const getCommentObjectsCacheKey: (id: any, type: any, next: any) => string;
13
+ export declare const getCommentObjectsCachePrefixKeys: (id: any, type: any) => string;
14
+ /** CATEGORY OBJECT **/
15
+ export declare const CATEGORY_OBJECT_CACHE_PREFIX_KEY = "_ca_";
16
+ export declare const getCategoryObjectCacheKey: (id: any) => string;
17
+ /** CONTRIBUTORS **/
18
+ export declare const CONTRIBUTORS_CACHE_PREFIX_KEY = "_contr_";
19
+ export declare const getContributorsCacheKey: (id: any, type: any, next: any) => string;
20
+ export declare const getContributorsCachePrefixKeys: (id: any, type: any) => string;
21
+ /** FEED **/
22
+ export declare const FEED_CACHE_PREFIX_KEY = "_feed_";
23
+ export declare const getFeedCacheKey: (id: any, next: any) => string;
24
+ export declare const FEED_STATE_CACHE_PREFIX_KEY = "_feed_st_";
25
+ export declare const getStateFeedCacheKey: (id: any) => string;
26
+ export declare const FEED_CACHE_SP_KEY = "_feed_sp_";
27
+ export declare const getFeedSPCacheKey: (id: any) => string;
28
+ //# sourceMappingURL=Cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cache.d.ts","sourceRoot":"","sources":["../../../src/constants/Cache.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,mBAAmB;AACnB,eAAO,MAAM,4BAA4B,SAAS,CAAC;AACnD,eAAO,MAAM,qBAAqB,gCAA+D,CAAC;AAElG,uBAAuB;AACvB,eAAO,MAAM,+BAA+B,SAAS,CAAC;AACtD,eAAO,MAAM,wBAAwB,qBAAoD,CAAC;AAE1F,wBAAwB;AACxB,eAAO,MAAM,gCAAgC,UAAU,CAAC;AACxD,eAAO,MAAM,yBAAyB,2CAAiF,CAAC;AACxH,eAAO,MAAM,gCAAgC,gCAAmE,CAAC;AAEjH,uBAAuB;AACvB,eAAO,MAAM,gCAAgC,SAAS,CAAC;AACvD,eAAO,MAAM,yBAAyB,qBAAqD,CAAC;AAE5F,oBAAoB;AACpB,eAAO,MAAM,6BAA6B,YAAY,CAAC;AACvD,eAAO,MAAM,uBAAuB,2CAA8E,CAAC;AACnH,eAAO,MAAM,8BAA8B,gCAAgE,CAAC;AAE5G,YAAY;AACZ,eAAO,MAAM,qBAAqB,WAAW,CAAC;AAC9C,eAAO,MAAM,eAAe,gCAAwD,CAAC;AAErF,eAAO,MAAM,2BAA2B,cAAc,CAAC;AACvD,eAAO,MAAM,oBAAoB,qBAAgD,CAAC;AAElF,eAAO,MAAM,iBAAiB,cAAc,CAAC;AAC7C,eAAO,MAAM,iBAAiB,qBAAsC,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Cache prefixes
3
+ */
4
+ /** FEED OBJECT **/
5
+ export const FEED_OBJECT_CACHE_PREFIX_KEY = '_fo_';
6
+ export const getFeedObjectCacheKey = (id, type) => `${FEED_OBJECT_CACHE_PREFIX_KEY}${type}_${id}`;
7
+ /** COMMMENT OBJECT **/
8
+ export const COMMENT_OBJECT_CACHE_PREFIX_KEY = '_co_';
9
+ export const getCommentObjectCacheKey = (id) => `${COMMENT_OBJECT_CACHE_PREFIX_KEY}${id}`;
10
+ /** COMMMENT OBJECTS **/
11
+ export const COMMENT_OBJECTS_CACHE_PREFIX_KEY = '_cos_';
12
+ export const getCommentObjectsCacheKey = (id, type, next) => `${COMMENT_OBJECTS_CACHE_PREFIX_KEY}${type}_${id}_${next}`;
13
+ export const getCommentObjectsCachePrefixKeys = (id, type) => `${COMMENT_OBJECTS_CACHE_PREFIX_KEY}${type}_${id}`;
14
+ /** CATEGORY OBJECT **/
15
+ export const CATEGORY_OBJECT_CACHE_PREFIX_KEY = '_ca_';
16
+ export const getCategoryObjectCacheKey = (id) => `${CATEGORY_OBJECT_CACHE_PREFIX_KEY}${id}`;
17
+ /** CONTRIBUTORS **/
18
+ export const CONTRIBUTORS_CACHE_PREFIX_KEY = '_contr_';
19
+ export const getContributorsCacheKey = (id, type, next) => `${CONTRIBUTORS_CACHE_PREFIX_KEY}${type}_${id}_${next}`;
20
+ export const getContributorsCachePrefixKeys = (id, type) => `${CONTRIBUTORS_CACHE_PREFIX_KEY}${type}_${id}`;
21
+ /** FEED **/
22
+ export const FEED_CACHE_PREFIX_KEY = '_feed_';
23
+ export const getFeedCacheKey = (id, next) => `${FEED_CACHE_PREFIX_KEY}${id}_${next}`;
24
+ export const FEED_STATE_CACHE_PREFIX_KEY = '_feed_st_';
25
+ export const getStateFeedCacheKey = (id) => `${FEED_STATE_CACHE_PREFIX_KEY}${id}`;
26
+ export const FEED_CACHE_SP_KEY = '_feed_sp_';
27
+ export const getFeedSPCacheKey = (id) => `${FEED_CACHE_SP_KEY}${id}`;
28
+ //# sourceMappingURL=Cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cache.js","sourceRoot":"","sources":["../../../src/constants/Cache.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,mBAAmB;AACnB,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAC;AACnD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,4BAA4B,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC;AAElG,uBAAuB;AACvB,MAAM,CAAC,MAAM,+BAA+B,GAAG,MAAM,CAAC;AACtD,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,+BAA+B,GAAG,EAAE,EAAE,CAAC;AAE1F,wBAAwB;AACxB,MAAM,CAAC,MAAM,gCAAgC,GAAG,OAAO,CAAC;AACxD,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,gCAAgC,GAAG,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;AACxH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,gCAAgC,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC;AAEjH,uBAAuB;AACvB,MAAM,CAAC,MAAM,gCAAgC,GAAG,MAAM,CAAC;AACvD,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,gCAAgC,GAAG,EAAE,EAAE,CAAC;AAE5F,oBAAoB;AACpB,MAAM,CAAC,MAAM,6BAA6B,GAAG,SAAS,CAAC;AACvD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,6BAA6B,GAAG,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;AACnH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,6BAA6B,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC;AAE5G,YAAY;AACZ,MAAM,CAAC,MAAM,qBAAqB,GAAG,QAAQ,CAAC;AAC9C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,qBAAqB,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC;AAErF,MAAM,CAAC,MAAM,2BAA2B,GAAG,WAAW,CAAC;AACvD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,2BAA2B,GAAG,EAAE,EAAE,CAAC;AAElF,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAW,CAAC;AAC7C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,iBAAiB,GAAG,EAAE,EAAE,CAAC"}
@@ -1,5 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { SCCategoryType } from '@selfcommunity/types';
3
+ import { CacheStrategies } from '@selfcommunity/utils';
3
4
  /**
4
5
  :::info
5
6
  This custom hook is used to fetch a category object.
@@ -8,9 +9,10 @@ import { SCCategoryType } from '@selfcommunity/types';
8
9
  * @param object.id
9
10
  * @param object.category
10
11
  */
11
- export default function useSCFetchCategory({ id, category }: {
12
+ export default function useSCFetchCategory({ id, category, cacheStrategy }: {
12
13
  id?: number;
13
14
  category?: SCCategoryType;
15
+ cacheStrategy?: CacheStrategies;
14
16
  }): {
15
17
  scCategory: SCCategoryType;
16
18
  setSCCategory: import("react").Dispatch<import("react").SetStateAction<SCCategoryType>>;
@@ -1 +1 @@
1
- {"version":3,"file":"useSCFetchCategory.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSCFetchCategory.ts"],"names":[],"mappings":";AAEA,OAAO,EAAC,cAAc,EAAY,MAAM,sBAAsB,CAAC;AAI/D;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EAAC,EAAS,EAAE,QAAe,EAAC,EAAE;IAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,cAAc,CAAA;CAAC;;;;EA0ChH"}
1
+ {"version":3,"file":"useSCFetchCategory.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSCFetchCategory.ts"],"names":[],"mappings":";AAEA,OAAO,EAAC,cAAc,EAAY,MAAM,sBAAsB,CAAC;AAE/D,OAAO,EAAC,eAAe,EAAmB,MAAM,sBAAsB,CAAC;AAIvE;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EACzC,EAAS,EACT,QAAe,EACf,aAA2C,EAC5C,EAAE;IACD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,aAAa,CAAC,EAAE,eAAe,CAAA;CAChC;;;;EAyDA"}
@@ -1,7 +1,9 @@
1
1
  import { useEffect, useMemo, useState } from 'react';
2
2
  import { SCOPE_SC_CORE } from '../constants/Errors';
3
3
  import { http, Endpoints } from '@selfcommunity/api-services';
4
- import { Logger } from '@selfcommunity/utils';
4
+ import { CacheStrategies, Logger, LRUCache } from '@selfcommunity/utils';
5
+ import { getCategoryObjectCacheKey } from '../constants/Cache';
6
+ import { useDeepCompareEffectNoCheck } from 'use-deep-compare-effect';
5
7
  /**
6
8
  :::info
7
9
  This custom hook is used to fetch a category object.
@@ -10,8 +12,11 @@ import { Logger } from '@selfcommunity/utils';
10
12
  * @param object.id
11
13
  * @param object.category
12
14
  */
13
- export default function useSCFetchCategory({ id = null, category = null }) {
14
- const [scCategory, setSCCategory] = useState(category);
15
+ export default function useSCFetchCategory({ id = null, category = null, cacheStrategy = CacheStrategies.CACHE_FIRST }) {
16
+ const __categoryId = category ? category.id : id;
17
+ // CACHE
18
+ const __categoryCacheKey = getCategoryObjectCacheKey(__categoryId);
19
+ const [scCategory, setSCCategory] = useState(cacheStrategy !== CacheStrategies.NETWORK_ONLY ? LRUCache.get(__categoryCacheKey, category) : null);
15
20
  const [error, setError] = useState(null);
16
21
  /**
17
22
  * Memoized fetchTag
@@ -19,7 +24,7 @@ export default function useSCFetchCategory({ id = null, category = null }) {
19
24
  const fetchCategory = useMemo(() => () => {
20
25
  return http
21
26
  .request({
22
- url: Endpoints.Category.url({ id: id }),
27
+ url: Endpoints.Category.url({ id: __categoryId }),
23
28
  method: Endpoints.Category.method,
24
29
  })
25
30
  .then((res) => {
@@ -28,23 +33,31 @@ export default function useSCFetchCategory({ id = null, category = null }) {
28
33
  }
29
34
  return Promise.resolve(res.data);
30
35
  });
31
- }, [id]);
36
+ }, [__categoryId]);
32
37
  /**
33
38
  * If id attempt to get the category by id
34
39
  */
35
40
  useEffect(() => {
36
- if (id) {
41
+ if (__categoryId && (!scCategory || cacheStrategy === CacheStrategies.STALE_WHILE_REVALIDATE)) {
37
42
  fetchCategory()
38
43
  .then((obj) => {
39
44
  setSCCategory(obj);
45
+ LRUCache.set(__categoryCacheKey, obj);
40
46
  })
41
47
  .catch((err) => {
48
+ LRUCache.delete(__categoryCacheKey);
42
49
  setError(`Category with id ${id} not found`);
43
50
  Logger.error(SCOPE_SC_CORE, `Category with id ${id} not found`);
44
51
  Logger.error(SCOPE_SC_CORE, err.message);
45
52
  });
46
53
  }
47
- }, [id]);
54
+ }, [__categoryId]);
55
+ useDeepCompareEffectNoCheck(() => {
56
+ if (category) {
57
+ setSCCategory(category);
58
+ LRUCache.set(__categoryCacheKey, category);
59
+ }
60
+ }, [category]);
48
61
  return { scCategory, setSCCategory, error };
49
62
  }
50
63
  //# sourceMappingURL=useSCFetchCategory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSCFetchCategory.js","sourceRoot":"","sources":["../../../src/hooks/useSCFetchCategory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AACnD,OAAO,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAC,IAAI,EAAE,SAAS,EAAe,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC;AAE5C;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,GAAG,IAAI,EAA2C;IAC/G,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAiB,QAAQ,CAAC,CAAC;IACvE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAS,IAAI,CAAC,CAAC;IAEjD;;OAEG;IACH,MAAM,aAAa,GAAG,OAAO,CAC3B,GAAG,EAAE,CAAC,GAAG,EAAE;QACT,OAAO,IAAI;aACR,OAAO,CAAC;YACP,GAAG,EAAE,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAC,EAAE,EAAE,EAAE,EAAC,CAAC;YACrC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,MAAM;SAClC,CAAC;aACD,IAAI,CAAC,CAAC,GAA4B,EAAE,EAAE;YACrC,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE;gBACrB,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aAC5B;YACD,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACP,CAAC,EACD,CAAC,EAAE,CAAC,CACL,CAAC;IAEF;;OAEG;IACH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,EAAE,EAAE;YACN,aAAa,EAAE;iBACZ,IAAI,CAAC,CAAC,GAAmB,EAAE,EAAE;gBAC5B,aAAa,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACb,QAAQ,CAAC,oBAAoB,EAAE,YAAY,CAAC,CAAC;gBAC7C,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,oBAAoB,EAAE,YAAY,CAAC,CAAC;gBAChE,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;SACN;IACH,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAET,OAAO,EAAC,UAAU,EAAE,aAAa,EAAE,KAAK,EAAC,CAAC;AAC5C,CAAC"}
1
+ {"version":3,"file":"useSCFetchCategory.js","sourceRoot":"","sources":["../../../src/hooks/useSCFetchCategory.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { SCCommentType } from '@selfcommunity/types';
3
+ import { CacheStrategies } from '@selfcommunity/utils';
3
4
  /**
4
5
  :::info
5
6
  This custom hooks is used to fetch a comment.
@@ -7,10 +8,12 @@ import { SCCommentType } from '@selfcommunity/types';
7
8
  * @param object
8
9
  * @param object.id
9
10
  * @param object.commentObject
11
+ * @param cacheStrategy
10
12
  */
11
- export default function useSCFetchCommentObject({ id, commentObject }: {
13
+ export default function useSCFetchCommentObject({ id, commentObject, cacheStrategy, }: {
12
14
  id?: number;
13
15
  commentObject?: SCCommentType;
16
+ cacheStrategy?: CacheStrategies;
14
17
  }): {
15
18
  obj: SCCommentType;
16
19
  setObj: import("react").Dispatch<import("react").SetStateAction<SCCommentType>>;
@@ -1 +1 @@
1
- {"version":3,"file":"useSCFetchCommentObject.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSCFetchCommentObject.ts"],"names":[],"mappings":";AAEA,OAAO,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAC;AAInD;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,EAAC,EAAS,EAAE,aAAoB,EAAC,EAAE;IAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,aAAa,CAAA;CAAC;;;;EA0C9H"}
1
+ {"version":3,"file":"useSCFetchCommentObject.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSCFetchCommentObject.ts"],"names":[],"mappings":";AAEA,OAAO,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAC,eAAe,EAAmB,MAAM,sBAAsB,CAAC;AAIvE;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,EAC9C,EAAS,EACT,aAAoB,EACpB,aAA2C,GAC5C,EAAE;IACD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,aAAa,CAAC,EAAE,eAAe,CAAC;CACjC;;;;EA0DA"}
@@ -1,7 +1,9 @@
1
1
  import { useEffect, useMemo, useState } from 'react';
2
2
  import { SCOPE_SC_CORE } from '../constants/Errors';
3
3
  import { http, Endpoints } from '@selfcommunity/api-services';
4
- import { Logger } from '@selfcommunity/utils';
4
+ import { CacheStrategies, Logger, LRUCache } from '@selfcommunity/utils';
5
+ import { getCommentObjectCacheKey } from '../constants/Cache';
6
+ import { useDeepCompareEffectNoCheck } from 'use-deep-compare-effect';
5
7
  /**
6
8
  :::info
7
9
  This custom hooks is used to fetch a comment.
@@ -9,9 +11,13 @@ import { Logger } from '@selfcommunity/utils';
9
11
  * @param object
10
12
  * @param object.id
11
13
  * @param object.commentObject
14
+ * @param cacheStrategy
12
15
  */
13
- export default function useSCFetchCommentObject({ id = null, commentObject = null }) {
14
- const [obj, setObj] = useState(commentObject);
16
+ export default function useSCFetchCommentObject({ id = null, commentObject = null, cacheStrategy = CacheStrategies.CACHE_FIRST, }) {
17
+ const __commentObjectId = commentObject ? commentObject.id : id;
18
+ // CACHE
19
+ const __commentObjectCacheKey = getCommentObjectCacheKey(__commentObjectId);
20
+ const [obj, setObj] = useState(cacheStrategy !== CacheStrategies.NETWORK_ONLY ? LRUCache.get(__commentObjectCacheKey, commentObject) : null);
15
21
  const [error, setError] = useState(null);
16
22
  /**
17
23
  * Memoized fetchCommentObject
@@ -19,7 +25,7 @@ export default function useSCFetchCommentObject({ id = null, commentObject = nul
19
25
  const fetchCommentObject = useMemo(() => () => {
20
26
  return http
21
27
  .request({
22
- url: Endpoints.Comment.url({ id: id }),
28
+ url: Endpoints.Comment.url({ id: __commentObjectId }),
23
29
  method: Endpoints.Comment.method,
24
30
  })
25
31
  .then((res) => {
@@ -28,23 +34,31 @@ export default function useSCFetchCommentObject({ id = null, commentObject = nul
28
34
  }
29
35
  return Promise.resolve(res.data);
30
36
  });
31
- }, [id]);
37
+ }, [__commentObjectId]);
32
38
  /**
33
39
  * If id and feedObjectType resolve feddObject
34
40
  */
35
41
  useEffect(() => {
36
- if (id) {
42
+ if (__commentObjectId && (!obj || cacheStrategy === CacheStrategies.STALE_WHILE_REVALIDATE)) {
37
43
  fetchCommentObject()
38
44
  .then((obj) => {
39
45
  setObj(obj);
46
+ LRUCache.set(__commentObjectCacheKey, obj);
40
47
  })
41
48
  .catch((err) => {
49
+ LRUCache.delete(__commentObjectCacheKey);
42
50
  setError(`CommentObject with id ${id} not found`);
43
51
  Logger.error(SCOPE_SC_CORE, `CommentObject with id ${id} not found`);
44
52
  Logger.error(SCOPE_SC_CORE, err.message);
45
53
  });
46
54
  }
47
- }, [id]);
55
+ }, [__commentObjectId]);
56
+ useDeepCompareEffectNoCheck(() => {
57
+ if (commentObject) {
58
+ setObj(commentObject);
59
+ LRUCache.set(__commentObjectCacheKey, obj);
60
+ }
61
+ }, [commentObject]);
48
62
  return { obj, setObj, error };
49
63
  }
50
64
  //# sourceMappingURL=useSCFetchCommentObject.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSCFetchCommentObject.js","sourceRoot":"","sources":["../../../src/hooks/useSCFetchCommentObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AACnD,OAAO,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAC,IAAI,EAAE,SAAS,EAAe,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC;AAE5C;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,EAAC,EAAE,GAAG,IAAI,EAAE,aAAa,GAAG,IAAI,EAA+C;IAC7H,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAgB,aAAa,CAAC,CAAC;IAC7D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAS,IAAI,CAAC,CAAC;IAEjD;;OAEG;IACH,MAAM,kBAAkB,GAAG,OAAO,CAChC,GAAG,EAAE,CAAC,GAAG,EAAE;QACT,OAAO,IAAI;aACR,OAAO,CAAC;YACP,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAC,EAAE,EAAE,EAAE,EAAC,CAAC;YACpC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM;SACjC,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,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACP,CAAC,EACD,CAAC,EAAE,CAAC,CACL,CAAC;IAEF;;OAEG;IACH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,EAAE,EAAE;YACN,kBAAkB,EAAE;iBACjB,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;gBACZ,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACb,QAAQ,CAAC,yBAAyB,EAAE,YAAY,CAAC,CAAC;gBAClD,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,yBAAyB,EAAE,YAAY,CAAC,CAAC;gBACrE,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;SACN;IACH,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAET,OAAO,EAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAC,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"useSCFetchCommentObject.js","sourceRoot":"","sources":["../../../src/hooks/useSCFetchCommentObject.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { SCCommentsOrderBy, SCCommentType, SCFeedObjectType, SCFeedObjectTypologyType } from '@selfcommunity/types';
2
+ import { CacheStrategies } from '@selfcommunity/utils';
2
3
  /**
3
4
  * Interface SCCommentsObjectType
4
5
  */
@@ -49,5 +50,6 @@ export default function useSCFetchCommentObjects(props: {
49
50
  orderBy?: SCCommentsOrderBy;
50
51
  parent?: number;
51
52
  onChangePage?: (page: any) => any;
53
+ cacheStrategy?: CacheStrategies;
52
54
  }): any;
53
55
  //# sourceMappingURL=useSCFetchCommentObjects.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSCFetchCommentObjects.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSCFetchCommentObjects.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,iBAAiB,EAAE,aAAa,EAAE,gBAAgB,EAAE,wBAAwB,EAAC,MAAM,sBAAsB,CAAC;AAKlH;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,eAAe,EAAE,OAAO,CAAC;IACzB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB;;;;;;;CAOrC,CAAC;AAwEF;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAAC,KAAK,EAAE;IACtD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,cAAc,EAAE,wBAAwB,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,CAAC,IAAI,KAAA,KAAK,GAAG,CAAC;CAC9B,OAyIA"}
1
+ {"version":3,"file":"useSCFetchCommentObjects.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSCFetchCommentObjects.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,iBAAiB,EAAE,aAAa,EAAE,gBAAgB,EAAE,wBAAwB,EAAC,MAAM,sBAAsB,CAAC;AAElH,OAAO,EAAC,eAAe,EAAmB,MAAM,sBAAsB,CAAC;AAIvE;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,eAAe,EAAE,OAAO,CAAC;IACzB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB;;;;;;;CAOrC,CAAC;AA8EF;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAAC,KAAK,EAAE;IACtD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,cAAc,EAAE,wBAAwB,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,CAAC,IAAI,KAAA,KAAK,GAAG,CAAC;IAC7B,aAAa,CAAC,EAAE,eAAe,CAAC;CACjC,OA6LA"}
@@ -1,9 +1,10 @@
1
1
  import { useEffect, useReducer } from 'react';
2
2
  import { SCOPE_SC_CORE } from '../constants/Errors';
3
3
  import { SCCommentsOrderBy } from '@selfcommunity/types';
4
- import { http, Endpoints } from '@selfcommunity/api-services';
5
- import { Logger } from '@selfcommunity/utils';
4
+ import { Endpoints, http } from '@selfcommunity/api-services';
5
+ import { CacheStrategies, Logger, LRUCache } from '@selfcommunity/utils';
6
6
  import useSCFetchFeedObject from './useSCFetchFeedObject';
7
+ import { getCommentObjectCacheKey, getCommentObjectsCacheKey } from '../constants/Cache';
7
8
  /**
8
9
  * @hidden
9
10
  * We have complex state logic that involves multiple sub-values,
@@ -49,7 +50,8 @@ function commentsReducer(state, action) {
49
50
  * @param data
50
51
  */
51
52
  function stateInitializer(data) {
52
- return {
53
+ const __commentsObjectCacheKey = data.obj ? getCommentObjectsCacheKey(data.obj.id, data.obj.type, data.next) : null;
54
+ let _initState = {
53
55
  componentLoaded: false,
54
56
  comments: [],
55
57
  total: 0,
@@ -60,6 +62,11 @@ function stateInitializer(data) {
60
62
  page: data.offset / data.pageSize + 1,
61
63
  reload: false,
62
64
  };
65
+ if (__commentsObjectCacheKey && LRUCache.hasKey(__commentsObjectCacheKey) && data.cacheStrategy !== CacheStrategies.NETWORK_ONLY) {
66
+ const _cachedData = LRUCache.get(__commentsObjectCacheKey);
67
+ return Object.assign(Object.assign({}, _initState), { total: _cachedData.count, next: _cachedData.next, previous: _cachedData.previous, comments: _cachedData.results });
68
+ }
69
+ return _initState;
63
70
  }
64
71
  /**
65
72
  :::info
@@ -75,7 +82,7 @@ function stateInitializer(data) {
75
82
  */
76
83
  export default function useSCFetchCommentObjects(props) {
77
84
  // PROPS
78
- const { id, feedObject, feedObjectType, offset = 0, pageSize = 5, orderBy = SCCommentsOrderBy.ADDED_AT_DESC, parent, onChangePage } = props;
85
+ const { id, feedObject, feedObjectType, offset = 0, pageSize = 5, orderBy = SCCommentsOrderBy.ADDED_AT_DESC, parent, onChangePage, cacheStrategy = CacheStrategies.CACHE_FIRST, } = props;
79
86
  // FeedObject
80
87
  const { obj, setObj } = useSCFetchFeedObject({ id, feedObject, feedObjectType });
81
88
  const objId = obj ? obj.id : null;
@@ -90,7 +97,7 @@ export default function useSCFetchCommentObjects(props) {
90
97
  return `${Endpoints.Comments.url()}?${_typeObject}=${_objectId}&limit=${pageSize}&ordering=${orderBy}${_offset}${_parent}`;
91
98
  };
92
99
  // STATE
93
- const [state, dispatch] = useReducer(commentsReducer, {}, () => stateInitializer({ offset, pageSize, next: getNextUrl() }));
100
+ const [state, dispatch] = useReducer(commentsReducer, {}, () => stateInitializer({ obj, offset, pageSize, next: getNextUrl(), cacheStrategy }));
94
101
  /**
95
102
  * Calculate current page
96
103
  */
@@ -100,10 +107,35 @@ export default function useSCFetchCommentObjects(props) {
100
107
  const currentOffset = params.offset ? parseInt(params.offset) : 0;
101
108
  return currentOffset / pageSize + 1;
102
109
  };
110
+ /**
111
+ * Get Comments (with cache)
112
+ */
113
+ const revalidate = (url, forward) => {
114
+ return performFetchComments(url, false).then((res) => {
115
+ let _comments;
116
+ let currentPage = getCurrentPage(state.next);
117
+ if (forward) {
118
+ let start = state.comments.slice(0, state.comments.length - res.results.length);
119
+ _comments = start.concat(res.results);
120
+ }
121
+ else {
122
+ let start = state.comments.slice(res.results.length, state.comments.length);
123
+ _comments = res.results.concat(start);
124
+ }
125
+ dispatch({
126
+ type: forward ? commentsObjectActionTypes.DATA_NEXT_LOADED : commentsObjectActionTypes.DATA_PREVIOUS_LOADED,
127
+ payload: Object.assign(Object.assign({ page: currentPage, comments: _comments }, (forward ? { next: res.next } : { previous: res.previous })), { total: res.count }),
128
+ });
129
+ });
130
+ };
103
131
  /**
104
132
  * Get Comments
105
133
  */
106
- const performFetchComments = (url) => {
134
+ const performFetchComments = (url, seekCache = true) => {
135
+ const __commentObjectsCacheKey = getCommentObjectsCacheKey(obj.id, obj.type, url);
136
+ if (seekCache && LRUCache.hasKey(__commentObjectsCacheKey) && cacheStrategy !== CacheStrategies.NETWORK_ONLY) {
137
+ return Promise.resolve(LRUCache.get(__commentObjectsCacheKey));
138
+ }
107
139
  return http
108
140
  .request({
109
141
  url,
@@ -113,6 +145,8 @@ export default function useSCFetchCommentObjects(props) {
113
145
  if (res.status >= 300) {
114
146
  return Promise.reject(res);
115
147
  }
148
+ LRUCache.set(__commentObjectsCacheKey, res.data);
149
+ res.data.results.forEach((e) => LRUCache.set(getCommentObjectCacheKey(e.id), e));
116
150
  return Promise.resolve(res.data);
117
151
  });
118
152
  };
@@ -137,6 +171,11 @@ export default function useSCFetchCommentObjects(props) {
137
171
  })
138
172
  .catch((error) => {
139
173
  Logger.error(SCOPE_SC_CORE, error);
174
+ })
175
+ .then(() => {
176
+ if (cacheStrategy === CacheStrategies.STALE_WHILE_REVALIDATE) {
177
+ revalidate(state.next, false);
178
+ }
140
179
  });
141
180
  }
142
181
  }
@@ -157,6 +196,11 @@ export default function useSCFetchCommentObjects(props) {
157
196
  })
158
197
  .catch((error) => {
159
198
  Logger.error(SCOPE_SC_CORE, error);
199
+ })
200
+ .then(() => {
201
+ if (cacheStrategy === CacheStrategies.STALE_WHILE_REVALIDATE) {
202
+ revalidate(state.next, true);
203
+ }
160
204
  });
161
205
  }
162
206
  }