@selfcommunity/react-core 0.1.18-alpha.1 → 0.1.19-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/components/provider/SCRoutingProvider/index.d.ts.map +1 -1
- package/lib/cjs/constants/Cache.d.ts +28 -0
- package/lib/cjs/constants/Cache.d.ts.map +1 -0
- package/lib/cjs/constants/Cache.js +41 -0
- package/lib/cjs/constants/Cache.js.map +1 -0
- package/lib/cjs/hooks/useSCFetchCategory.d.ts +3 -1
- package/lib/cjs/hooks/useSCFetchCategory.d.ts.map +1 -1
- package/lib/cjs/hooks/useSCFetchCategory.js +19 -6
- package/lib/cjs/hooks/useSCFetchCategory.js.map +1 -1
- package/lib/cjs/hooks/useSCFetchCommentObject.d.ts +4 -1
- package/lib/cjs/hooks/useSCFetchCommentObject.d.ts.map +1 -1
- package/lib/cjs/hooks/useSCFetchCommentObject.js +20 -6
- package/lib/cjs/hooks/useSCFetchCommentObject.js.map +1 -1
- package/lib/cjs/hooks/useSCFetchCommentObjects.d.ts +2 -0
- package/lib/cjs/hooks/useSCFetchCommentObjects.d.ts.map +1 -1
- package/lib/cjs/hooks/useSCFetchCommentObjects.js +48 -4
- package/lib/cjs/hooks/useSCFetchCommentObjects.js.map +1 -1
- package/lib/cjs/hooks/useSCFetchContributors.d.ts +51 -0
- package/lib/cjs/hooks/useSCFetchContributors.d.ts.map +1 -0
- package/lib/cjs/hooks/useSCFetchContributors.js +237 -0
- package/lib/cjs/hooks/useSCFetchContributors.js.map +1 -0
- package/lib/cjs/hooks/useSCFetchFeed.d.ts +50 -0
- package/lib/cjs/hooks/useSCFetchFeed.d.ts.map +1 -0
- package/lib/cjs/hooks/useSCFetchFeed.js +245 -0
- package/lib/cjs/hooks/useSCFetchFeed.js.map +1 -0
- package/lib/cjs/hooks/useSCFetchFeedObject.d.ts +4 -1
- package/lib/cjs/hooks/useSCFetchFeedObject.d.ts.map +1 -1
- package/lib/cjs/hooks/useSCFetchFeedObject.js +21 -9
- package/lib/cjs/hooks/useSCFetchFeedObject.js.map +1 -1
- package/lib/cjs/index.d.ts +4 -1
- package/lib/cjs/index.d.ts.map +1 -1
- package/lib/cjs/index.js +7 -1
- package/lib/cjs/index.js.map +1 -1
- package/lib/esm/components/provider/SCRoutingProvider/index.d.ts.map +1 -1
- package/lib/esm/constants/Cache.d.ts +28 -0
- package/lib/esm/constants/Cache.d.ts.map +1 -0
- package/lib/esm/constants/Cache.js +28 -0
- package/lib/esm/constants/Cache.js.map +1 -0
- package/lib/esm/hooks/useSCFetchCategory.d.ts +3 -1
- package/lib/esm/hooks/useSCFetchCategory.d.ts.map +1 -1
- package/lib/esm/hooks/useSCFetchCategory.js +20 -7
- package/lib/esm/hooks/useSCFetchCategory.js.map +1 -1
- package/lib/esm/hooks/useSCFetchCommentObject.d.ts +4 -1
- package/lib/esm/hooks/useSCFetchCommentObject.d.ts.map +1 -1
- package/lib/esm/hooks/useSCFetchCommentObject.js +21 -7
- package/lib/esm/hooks/useSCFetchCommentObject.js.map +1 -1
- package/lib/esm/hooks/useSCFetchCommentObjects.d.ts +2 -0
- package/lib/esm/hooks/useSCFetchCommentObjects.d.ts.map +1 -1
- package/lib/esm/hooks/useSCFetchCommentObjects.js +50 -6
- package/lib/esm/hooks/useSCFetchCommentObjects.js.map +1 -1
- package/lib/esm/hooks/useSCFetchContributors.d.ts +51 -0
- package/lib/esm/hooks/useSCFetchContributors.d.ts.map +1 -0
- package/lib/esm/hooks/useSCFetchContributors.js +230 -0
- package/lib/esm/hooks/useSCFetchContributors.js.map +1 -0
- package/lib/esm/hooks/useSCFetchFeed.d.ts +50 -0
- package/lib/esm/hooks/useSCFetchFeed.d.ts.map +1 -0
- package/lib/esm/hooks/useSCFetchFeed.js +241 -0
- package/lib/esm/hooks/useSCFetchFeed.js.map +1 -0
- package/lib/esm/hooks/useSCFetchFeedObject.d.ts +4 -1
- package/lib/esm/hooks/useSCFetchFeedObject.d.ts.map +1 -1
- package/lib/esm/hooks/useSCFetchFeedObject.js +22 -10
- package/lib/esm/hooks/useSCFetchFeedObject.js.map +1 -1
- package/lib/esm/index.d.ts +4 -1
- package/lib/esm/index.d.ts.map +1 -1
- package/lib/esm/index.js +4 -1
- package/lib/esm/index.js.map +1 -1
- package/lib/umd/react-core.js +1 -1
- 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
|
|
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:
|
|
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
|
|
45
|
+
* If id and feedObjectType resolve feedObject
|
|
39
46
|
*/
|
|
40
47
|
(0, react_1.useEffect)(() => {
|
|
41
|
-
if (
|
|
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
|
-
}, [
|
|
61
|
+
}, [__feedObjectId, __feedObjectType]);
|
|
53
62
|
(0, use_deep_compare_effect_1.useDeepCompareEffectNoCheck)(() => {
|
|
54
|
-
|
|
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,
|
|
1
|
+
{"version":3,"file":"useSCFetchFeedObject.js","sourceRoot":"","sources":["../../../src/hooks/useSCFetchFeedObject.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/index.d.ts
CHANGED
|
@@ -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
|
package/lib/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,iBAAiB,EACjB,+BAA+B,EAC/B,qBAAqB,EACrB,aAAa,EACb,cAAc,EACd,aAAa,EACb,qBAAqB,EACrB,wBAAwB,EACxB,iCAAiC,EACjC,YAAY,EACZ,yBAAyB,EACzB,wBAAwB,EACxB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,0BAA0B,EAC3B,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,OAAO,iBAAiB,EAAE,EAAC,SAAS,EAAE,YAAY,EAAC,MAAM,yCAAyC,CAAC;AAEnG;;GAEG;AACH,OAAO,cAAc,EAAE,EAAC,aAAa,EAAE,SAAS,EAAC,MAAM,sCAAsC,CAAC;AAE9F;;GAEG;AACH,OAAO,eAAe,EAAE,EAAC,cAAc,EAAE,UAAU,EAAE,WAAW,EAAC,MAAM,uCAAuC,CAAC;AAE/G;;GAEG;AACH,OAAO,iBAAiB,EAAE,EAAC,gBAAgB,EAAE,YAAY,EAAC,MAAM,yCAAyC,CAAC;AAE1G;;GAEG;AACH,OAAO,gBAAgB,EAAE,EAAC,eAAe,EAAE,WAAW,EAAE,YAAY,EAAC,MAAM,wCAAwC,CAAC;AAEpH;;GAEG;AACH,OAAO,sBAAsB,EAAE,EAAC,qBAAqB,EAAE,iBAAiB,EAAC,MAAM,8CAA8C,CAAC;AAE9H;;GAEG;AACH,OAAO,uBAAuB,EAAE,EAAC,sBAAsB,EAAE,kBAAkB,EAAC,MAAM,+CAA+C,CAAC;AAElI;;GAEG;AACH,OAAO,qBAAqB,EAAE,EAAC,oBAAoB,EAAE,gBAAgB,EAAC,MAAM,6CAA6C,CAAC;AAC1H,OAAO,KAAK,aAAa,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,UAAU,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,cAAc,MAAM,0BAA0B,CAAC;
|
|
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
|
*/
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBA;;GAEG;AACH,6FAAmG;
|
|
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,
|
|
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;
|
|
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
|
|
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:
|
|
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
|
-
}, [
|
|
36
|
+
}, [__categoryId]);
|
|
32
37
|
/**
|
|
33
38
|
* If id attempt to get the category by id
|
|
34
39
|
*/
|
|
35
40
|
useEffect(() => {
|
|
36
|
-
if (
|
|
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
|
-
}, [
|
|
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;
|
|
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;
|
|
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
|
|
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:
|
|
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
|
-
}, [
|
|
37
|
+
}, [__commentObjectId]);
|
|
32
38
|
/**
|
|
33
39
|
* If id and feedObjectType resolve feddObject
|
|
34
40
|
*/
|
|
35
41
|
useEffect(() => {
|
|
36
|
-
if (
|
|
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
|
-
}, [
|
|
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;
|
|
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;
|
|
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 {
|
|
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
|
-
|
|
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
|
}
|