@selfcommunity/react-core 0.1.24 → 0.1.25-alpha.0
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/constants/Cache.d.ts.map +1 -1
- package/lib/cjs/constants/Cache.js +4 -0
- package/lib/cjs/constants/Cache.js.map +1 -1
- package/lib/cjs/hooks/useSCFetchFeed.d.ts +5 -4
- package/lib/cjs/hooks/useSCFetchFeed.d.ts.map +1 -1
- package/lib/cjs/hooks/useSCFetchFeed.js +22 -35
- package/lib/cjs/hooks/useSCFetchFeed.js.map +1 -1
- package/lib/esm/constants/Cache.d.ts.map +1 -1
- package/lib/esm/constants/Cache.js +4 -0
- package/lib/esm/constants/Cache.js.map +1 -1
- package/lib/esm/hooks/useSCFetchFeed.d.ts +5 -4
- package/lib/esm/hooks/useSCFetchFeed.d.ts.map +1 -1
- package/lib/esm/hooks/useSCFetchFeed.js +22 -35
- package/lib/esm/hooks/useSCFetchFeed.js.map +1 -1
- package/lib/umd/react-core.js +1 -1
- package/package.json +6 -6
|
@@ -1 +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,yBAAyB;AACzB,eAAO,MAAM,kCAAkC,UAAU,CAAC;AAC1D,eAAO,MAAM,2BAA2B,cAAgD,CAAC;AAEzF,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;
|
|
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,yBAAyB;AACzB,eAAO,MAAM,kCAAkC,UAAU,CAAC;AAC1D,eAAO,MAAM,2BAA2B,cAAgD,CAAC;AAEzF,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;AAGZ,eAAO,MAAM,qBAAqB,WAAW,CAAC;AAC9C,eAAO,MAAM,eAAe,gCAAwD,CAAC;AAGrF,eAAO,MAAM,2BAA2B,cAAc,CAAC;AACvD,eAAO,MAAM,oBAAoB,qBAAgD,CAAC;AAGlF,eAAO,MAAM,yCAAyC,4BAA4B,CAAC;AACnF,eAAO,MAAM,iCAAiC,qBAA8D,CAAC;AAG7G,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAC/C,eAAO,MAAM,iBAAiB,qBAAsC,CAAC"}
|
|
@@ -33,15 +33,19 @@ exports.getContributorsCacheKey = getContributorsCacheKey;
|
|
|
33
33
|
const getContributorsCachePrefixKeys = (id, type) => `${exports.CONTRIBUTORS_CACHE_PREFIX_KEY}${type}_${id}`;
|
|
34
34
|
exports.getContributorsCachePrefixKeys = getContributorsCachePrefixKeys;
|
|
35
35
|
/** FEED **/
|
|
36
|
+
// Cache single response body
|
|
36
37
|
exports.FEED_CACHE_PREFIX_KEY = '_feed_';
|
|
37
38
|
const getFeedCacheKey = (id, next) => `${exports.FEED_CACHE_PREFIX_KEY}${id}_${next}`;
|
|
38
39
|
exports.getFeedCacheKey = getFeedCacheKey;
|
|
40
|
+
// Cache state of the feed (ex. useSCFetchFeed)
|
|
39
41
|
exports.FEED_STATE_CACHE_PREFIX_KEY = '_feed_st_';
|
|
40
42
|
const getStateFeedCacheKey = (id) => `${exports.FEED_STATE_CACHE_PREFIX_KEY}${id}`;
|
|
41
43
|
exports.getStateFeedCacheKey = getStateFeedCacheKey;
|
|
44
|
+
// Cache the state of the virtualized feed
|
|
42
45
|
exports.VIRTUALIZED_SCROLL_STATE_CACHE_PREFIX_KEY = '_virtualized_scroll_st_';
|
|
43
46
|
const getVirtualizedScrollStateCacheKey = (id) => `${exports.VIRTUALIZED_SCROLL_STATE_CACHE_PREFIX_KEY}${id}`;
|
|
44
47
|
exports.getVirtualizedScrollStateCacheKey = getVirtualizedScrollStateCacheKey;
|
|
48
|
+
// Cache feed position
|
|
45
49
|
exports.FEED_CACHE_SP_KEY = '_feed_spos_';
|
|
46
50
|
const getFeedSPCacheKey = (id) => `${exports.FEED_CACHE_SP_KEY}${id}`;
|
|
47
51
|
exports.getFeedSPCacheKey = getFeedSPCacheKey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cache.js","sourceRoot":"","sources":["../../../src/constants/Cache.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,mBAAmB;AACN,QAAA,4BAA4B,GAAG,MAAM,CAAC;AAC5C,MAAM,qBAAqB,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,oCAA4B,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC;AAArF,QAAA,qBAAqB,yBAAgE;AAElG,uBAAuB;AACV,QAAA,+BAA+B,GAAG,MAAM,CAAC;AAC/C,MAAM,wBAAwB,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,uCAA+B,GAAG,EAAE,EAAE,CAAC;AAA7E,QAAA,wBAAwB,4BAAqD;AAE1F,wBAAwB;AACX,QAAA,gCAAgC,GAAG,OAAO,CAAC;AACjD,MAAM,yBAAyB,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,wCAAgC,GAAG,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;AAA3G,QAAA,yBAAyB,6BAAkF;AACjH,MAAM,gCAAgC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,wCAAgC,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC;AAApG,QAAA,gCAAgC,oCAAoE;AAEjH,yBAAyB;AACZ,QAAA,kCAAkC,GAAG,OAAO,CAAC;AACnD,MAAM,2BAA2B,GAAG,GAAG,EAAE,CAAC,GAAG,0CAAkC,EAAE,CAAC;AAA5E,QAAA,2BAA2B,+BAAiD;AAEzF,uBAAuB;AACV,QAAA,gCAAgC,GAAG,MAAM,CAAC;AAChD,MAAM,yBAAyB,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,wCAAgC,GAAG,EAAE,EAAE,CAAC;AAA/E,QAAA,yBAAyB,6BAAsD;AAE5F,oBAAoB;AACP,QAAA,6BAA6B,GAAG,SAAS,CAAC;AAChD,MAAM,uBAAuB,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,qCAA6B,GAAG,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;AAAtG,QAAA,uBAAuB,2BAA+E;AAC5G,MAAM,8BAA8B,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,qCAA6B,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC;AAA/F,QAAA,8BAA8B,kCAAiE;AAE5G,YAAY;
|
|
1
|
+
{"version":3,"file":"Cache.js","sourceRoot":"","sources":["../../../src/constants/Cache.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,mBAAmB;AACN,QAAA,4BAA4B,GAAG,MAAM,CAAC;AAC5C,MAAM,qBAAqB,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,oCAA4B,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC;AAArF,QAAA,qBAAqB,yBAAgE;AAElG,uBAAuB;AACV,QAAA,+BAA+B,GAAG,MAAM,CAAC;AAC/C,MAAM,wBAAwB,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,uCAA+B,GAAG,EAAE,EAAE,CAAC;AAA7E,QAAA,wBAAwB,4BAAqD;AAE1F,wBAAwB;AACX,QAAA,gCAAgC,GAAG,OAAO,CAAC;AACjD,MAAM,yBAAyB,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,wCAAgC,GAAG,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;AAA3G,QAAA,yBAAyB,6BAAkF;AACjH,MAAM,gCAAgC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,wCAAgC,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC;AAApG,QAAA,gCAAgC,oCAAoE;AAEjH,yBAAyB;AACZ,QAAA,kCAAkC,GAAG,OAAO,CAAC;AACnD,MAAM,2BAA2B,GAAG,GAAG,EAAE,CAAC,GAAG,0CAAkC,EAAE,CAAC;AAA5E,QAAA,2BAA2B,+BAAiD;AAEzF,uBAAuB;AACV,QAAA,gCAAgC,GAAG,MAAM,CAAC;AAChD,MAAM,yBAAyB,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,wCAAgC,GAAG,EAAE,EAAE,CAAC;AAA/E,QAAA,yBAAyB,6BAAsD;AAE5F,oBAAoB;AACP,QAAA,6BAA6B,GAAG,SAAS,CAAC;AAChD,MAAM,uBAAuB,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,qCAA6B,GAAG,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;AAAtG,QAAA,uBAAuB,2BAA+E;AAC5G,MAAM,8BAA8B,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,qCAA6B,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC;AAA/F,QAAA,8BAA8B,kCAAiE;AAE5G,YAAY;AAEZ,6BAA6B;AAChB,QAAA,qBAAqB,GAAG,QAAQ,CAAC;AACvC,MAAM,eAAe,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,6BAAqB,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC;AAAxE,QAAA,eAAe,mBAAyD;AAErF,+CAA+C;AAClC,QAAA,2BAA2B,GAAG,WAAW,CAAC;AAChD,MAAM,oBAAoB,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,mCAA2B,GAAG,EAAE,EAAE,CAAC;AAArE,QAAA,oBAAoB,wBAAiD;AAElF,0CAA0C;AAC7B,QAAA,yCAAyC,GAAG,yBAAyB,CAAC;AAC5E,MAAM,iCAAiC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,iDAAyC,GAAG,EAAE,EAAE,CAAC;AAAhG,QAAA,iCAAiC,qCAA+D;AAE7G,sBAAsB;AACT,QAAA,iBAAiB,GAAG,aAAa,CAAC;AACxC,MAAM,iBAAiB,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,yBAAiB,GAAG,EAAE,EAAE,CAAC;AAAxD,QAAA,iBAAiB,qBAAuC"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { SCFeedUnitType } from '@selfcommunity/types';
|
|
2
|
-
import { EndpointType } from '@selfcommunity/api-services';
|
|
2
|
+
import { EndpointType, SCPaginatedResponse } from '@selfcommunity/api-services';
|
|
3
3
|
import { CacheStrategies } from '@selfcommunity/utils';
|
|
4
4
|
/**
|
|
5
5
|
* Interface SCPaginatedFeedType
|
|
6
6
|
*/
|
|
7
7
|
export interface SCPaginatedFeedType {
|
|
8
8
|
componentLoaded: boolean;
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
results: SCFeedUnitType[];
|
|
10
|
+
count: number;
|
|
11
11
|
next: string;
|
|
12
12
|
previous: string;
|
|
13
13
|
isLoadingNext: boolean;
|
|
@@ -35,7 +35,7 @@ export declare const feedDataActionTypes: {
|
|
|
35
35
|
};
|
|
36
36
|
/**
|
|
37
37
|
:::info
|
|
38
|
-
This custom hooks is used to fetch paginated
|
|
38
|
+
This custom hooks is used to fetch paginated Data.
|
|
39
39
|
:::
|
|
40
40
|
* @param endpoint
|
|
41
41
|
* @param offset
|
|
@@ -50,5 +50,6 @@ export default function useSCFetchFeed(props: {
|
|
|
50
50
|
onNextPage?: (page: any, offset: any, total: any, data: any) => any;
|
|
51
51
|
onPreviousPage?: (page: any, offset: any, total: any, data: any) => any;
|
|
52
52
|
cacheStrategy?: CacheStrategies;
|
|
53
|
+
prefetchedData?: SCPaginatedResponse<SCFeedUnitType>;
|
|
53
54
|
}): any;
|
|
54
55
|
//# sourceMappingURL=useSCFetchFeed.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSCFetchFeed.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSCFetchFeed.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,cAAc,EAAC,MAAM,sBAAsB,CAAC;AACpD,OAAO,
|
|
1
|
+
{"version":3,"file":"useSCFetchFeed.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSCFetchFeed.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,cAAc,EAAC,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAC,YAAY,EAAsB,mBAAmB,EAAC,MAAM,6BAA6B,CAAC;AAClG,OAAO,EAAC,eAAe,EAAmB,MAAM,sBAAsB,CAAC;AAIvE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE,OAAO,CAAC;IACzB,OAAO,EAAE,cAAc,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,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;CAS/B,CAAC;AA2GF;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,KAAK,EAAE;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,YAAY,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IACtD,UAAU,CAAC,EAAE,CAAC,IAAI,KAAA,EAAE,MAAM,KAAA,EAAE,KAAK,KAAA,EAAE,IAAI,KAAA,KAAK,GAAG,CAAC;IAChD,cAAc,CAAC,EAAE,CAAC,IAAI,KAAA,EAAE,MAAM,KAAA,EAAE,KAAK,KAAA,EAAE,IAAI,KAAA,KAAK,GAAG,CAAC;IACpD,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC,cAAc,CAAC,EAAE,mBAAmB,CAAC,cAAc,CAAC,CAAC;CACtD,OA2LA"}
|
|
@@ -26,7 +26,7 @@ exports.feedDataActionTypes = {
|
|
|
26
26
|
};
|
|
27
27
|
/**
|
|
28
28
|
* feedDataReducer:
|
|
29
|
-
* - manage the state of
|
|
29
|
+
* - manage the state of feed object
|
|
30
30
|
* - update the state base on action type
|
|
31
31
|
* @param state
|
|
32
32
|
* @param action
|
|
@@ -41,16 +41,16 @@ function feedDataReducer(state, action) {
|
|
|
41
41
|
_state = Object.assign(Object.assign({}, state), { isLoadingNext: false, isLoadingPrevious: true });
|
|
42
42
|
break;
|
|
43
43
|
case exports.feedDataActionTypes.DATA_NEXT_LOADED:
|
|
44
|
-
_state = Object.assign(Object.assign(Object.assign(Object.assign({}, state), { currentPage: action.payload.currentPage, currentOffset: action.payload.currentOffset,
|
|
44
|
+
_state = Object.assign(Object.assign(Object.assign(Object.assign({}, state), { currentPage: action.payload.currentPage, currentOffset: action.payload.currentOffset, results: [...state.results, ...action.payload.results], isLoadingNext: false, componentLoaded: true, next: action.payload.next }), (action.payload.previous ? { previous: action.payload.previous } : {})), (action.payload.count ? { count: action.payload.count } : {}));
|
|
45
45
|
break;
|
|
46
46
|
case exports.feedDataActionTypes.DATA_PREVIOUS_LOADED:
|
|
47
|
-
_state = Object.assign(Object.assign({}, state), { currentPage: action.payload.currentPage, currentOffset: action.payload.currentOffset,
|
|
47
|
+
_state = Object.assign(Object.assign({}, state), { currentPage: action.payload.currentPage, currentOffset: action.payload.currentOffset, results: [...action.payload.results, ...state.results], isLoadingPrevious: false, componentLoaded: true, previous: action.payload.previous });
|
|
48
48
|
break;
|
|
49
49
|
case exports.feedDataActionTypes.DATA_REVALIDATE:
|
|
50
|
-
_state = Object.assign(Object.assign({}, state), {
|
|
50
|
+
_state = Object.assign(Object.assign({}, state), { results: action.payload.results });
|
|
51
51
|
break;
|
|
52
52
|
case exports.feedDataActionTypes.DATA_RELOAD:
|
|
53
|
-
_state = Object.assign(Object.assign({}, state), { next: action.payload.next, currentPage: 1, currentOffset: 0,
|
|
53
|
+
_state = Object.assign(Object.assign({}, state), { next: action.payload.next, currentPage: 1, currentOffset: 0, results: [], count: 0, previous: null, reload: true });
|
|
54
54
|
break;
|
|
55
55
|
case exports.feedDataActionTypes.DATA_RELOADED:
|
|
56
56
|
_state = Object.assign(Object.assign({}, state), { componentLoaded: false, reload: false });
|
|
@@ -67,21 +67,8 @@ function feedDataReducer(state, action) {
|
|
|
67
67
|
* @param data
|
|
68
68
|
*/
|
|
69
69
|
function stateInitializer(data) {
|
|
70
|
+
let _initState = Object.assign({ id: data.id, results: [], count: 0, next: data.next, previous: null, isLoadingNext: false, isLoadingPrevious: false, limit: data.queryParams.limit, currentPage: Math.ceil(data.queryParams.offset / data.queryParams.limit + 1), currentOffset: data.queryParams.offset, initialOffset: data.queryParams.offset, reload: false, componentLoaded: Boolean(data.prefetchedData) }, (data.prefetchedData && data.prefetchedData));
|
|
70
71
|
const __feedStateCacheKey = (0, Cache_1.getStateFeedCacheKey)(data.id);
|
|
71
|
-
let _initState = {
|
|
72
|
-
id: data.id,
|
|
73
|
-
componentLoaded: false,
|
|
74
|
-
feedData: [],
|
|
75
|
-
total: 0,
|
|
76
|
-
next: data.next,
|
|
77
|
-
previous: null,
|
|
78
|
-
isLoadingNext: false,
|
|
79
|
-
isLoadingPrevious: false,
|
|
80
|
-
limit: data.queryParams.limit,
|
|
81
|
-
currentPage: Math.ceil(data.queryParams.offset / data.queryParams.limit + 1),
|
|
82
|
-
currentOffset: data.queryParams.offset,
|
|
83
|
-
reload: false,
|
|
84
|
-
};
|
|
85
72
|
if (__feedStateCacheKey && utils_1.LRUCache.hasKey(__feedStateCacheKey) && data.cacheStrategy !== utils_1.CacheStrategies.NETWORK_ONLY) {
|
|
86
73
|
const _cachedStateData = utils_1.LRUCache.get(__feedStateCacheKey);
|
|
87
74
|
return Object.assign(Object.assign({}, _initState), _cachedStateData);
|
|
@@ -90,7 +77,7 @@ function stateInitializer(data) {
|
|
|
90
77
|
}
|
|
91
78
|
/**
|
|
92
79
|
:::info
|
|
93
|
-
This custom hooks is used to fetch paginated
|
|
80
|
+
This custom hooks is used to fetch paginated Data.
|
|
94
81
|
:::
|
|
95
82
|
* @param endpoint
|
|
96
83
|
* @param offset
|
|
@@ -100,7 +87,7 @@ function stateInitializer(data) {
|
|
|
100
87
|
*/
|
|
101
88
|
function useSCFetchFeed(props) {
|
|
102
89
|
// PROPS
|
|
103
|
-
const { id, endpoint, endpointQueryParams = { limit: 10, offset: 0 }, onNextPage, onPreviousPage, cacheStrategy = utils_1.CacheStrategies.NETWORK_ONLY, } = props;
|
|
90
|
+
const { id, endpoint, endpointQueryParams = { limit: 10, offset: 0 }, onNextPage, onPreviousPage, cacheStrategy = utils_1.CacheStrategies.NETWORK_ONLY, prefetchedData, } = props;
|
|
104
91
|
const queryParams = (0, react_1.useMemo)(() => Object.assign({ limit: 10, offset: 0 }, endpointQueryParams), [endpointQueryParams]);
|
|
105
92
|
/**
|
|
106
93
|
* Get next url
|
|
@@ -110,7 +97,7 @@ function useSCFetchFeed(props) {
|
|
|
110
97
|
return _initialEndpoint;
|
|
111
98
|
};
|
|
112
99
|
// STATE
|
|
113
|
-
const [state, dispatch] = (0, react_1.useReducer)(feedDataReducer, {}, () => stateInitializer({ id, endpoint, queryParams, next: getInitialNextUrl(), cacheStrategy }));
|
|
100
|
+
const [state, dispatch] = (0, react_1.useReducer)(feedDataReducer, {}, () => stateInitializer({ id, endpoint, queryParams, next: getInitialNextUrl(), cacheStrategy, prefetchedData }));
|
|
114
101
|
/**
|
|
115
102
|
* Calculate current page
|
|
116
103
|
*/
|
|
@@ -124,18 +111,18 @@ function useSCFetchFeed(props) {
|
|
|
124
111
|
*/
|
|
125
112
|
const revalidate = (url, forward) => {
|
|
126
113
|
return performFetchData(url, false).then((res) => {
|
|
127
|
-
let
|
|
114
|
+
let _data;
|
|
128
115
|
if (forward) {
|
|
129
|
-
let start = state.
|
|
130
|
-
|
|
116
|
+
let start = state.results.slice(0, state.results.length - res.results.length);
|
|
117
|
+
_data = start.concat(res.results);
|
|
131
118
|
}
|
|
132
119
|
else {
|
|
133
|
-
let start = state.
|
|
134
|
-
|
|
120
|
+
let start = state.results.slice(res.results.length, state.results.length);
|
|
121
|
+
_data = res.results.concat(start);
|
|
135
122
|
}
|
|
136
123
|
dispatch({
|
|
137
124
|
type: exports.feedDataActionTypes.DATA_REVALIDATE,
|
|
138
|
-
payload: {
|
|
125
|
+
payload: { results: _data },
|
|
139
126
|
});
|
|
140
127
|
});
|
|
141
128
|
};
|
|
@@ -161,7 +148,7 @@ function useSCFetchFeed(props) {
|
|
|
161
148
|
});
|
|
162
149
|
};
|
|
163
150
|
/**
|
|
164
|
-
* Fetch previous
|
|
151
|
+
* Fetch previous data
|
|
165
152
|
*/
|
|
166
153
|
function getPreviousPage() {
|
|
167
154
|
if (endpoint && state.previous && !state.isLoadingPrevious) {
|
|
@@ -175,8 +162,9 @@ function useSCFetchFeed(props) {
|
|
|
175
162
|
payload: {
|
|
176
163
|
currentPage,
|
|
177
164
|
currentOffset,
|
|
178
|
-
|
|
179
|
-
|
|
165
|
+
initialOffset: currentOffset,
|
|
166
|
+
count: res.count,
|
|
167
|
+
results: res.results,
|
|
180
168
|
previous: res.previous,
|
|
181
169
|
},
|
|
182
170
|
});
|
|
@@ -191,7 +179,7 @@ function useSCFetchFeed(props) {
|
|
|
191
179
|
}
|
|
192
180
|
}
|
|
193
181
|
/**
|
|
194
|
-
* Fetch next
|
|
182
|
+
* Fetch next data
|
|
195
183
|
*/
|
|
196
184
|
function getNextPage() {
|
|
197
185
|
if (endpoint && state.next && !state.isLoadingNext) {
|
|
@@ -203,7 +191,7 @@ function useSCFetchFeed(props) {
|
|
|
203
191
|
dispatch({
|
|
204
192
|
type: exports.feedDataActionTypes.DATA_NEXT_LOADED,
|
|
205
193
|
payload: Object.assign({ currentPage,
|
|
206
|
-
currentOffset,
|
|
194
|
+
currentOffset, results: res.results, next: res.next, count: res.count, componentLoaded: true }, (queryParams.offset && state.results.length === 0 ? { previous: res.previous } : {})),
|
|
207
195
|
});
|
|
208
196
|
onNextPage && onNextPage(currentPage, currentOffset, res.count, res.results);
|
|
209
197
|
if (cacheStrategy === utils_1.CacheStrategies.STALE_WHILE_REVALIDATE) {
|
|
@@ -227,7 +215,7 @@ function useSCFetchFeed(props) {
|
|
|
227
215
|
});
|
|
228
216
|
}
|
|
229
217
|
/**
|
|
230
|
-
* Reload fetch
|
|
218
|
+
* Reload fetch data
|
|
231
219
|
*/
|
|
232
220
|
(0, react_1.useEffect)(() => {
|
|
233
221
|
if (state.componentLoaded && state.reload && !state.isLoadingNext && !state.isLoadingPrevious) {
|
|
@@ -248,7 +236,6 @@ function useSCFetchFeed(props) {
|
|
|
248
236
|
dispatch({ type: exports.feedDataActionTypes.UPDATE_DATA, payload: payload });
|
|
249
237
|
}
|
|
250
238
|
return Object.assign(Object.assign({}, state), { updateState,
|
|
251
|
-
queryParams,
|
|
252
239
|
getNextPage,
|
|
253
240
|
getPreviousPage,
|
|
254
241
|
reload });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSCFetchFeed.js","sourceRoot":"","sources":["../../../src/hooks/useSCFetchFeed.ts"],"names":[],"mappings":";;;AAAA,iCAAqD;AACrD,gDAAkD;AAElD,
|
|
1
|
+
{"version":3,"file":"useSCFetchFeed.js","sourceRoot":"","sources":["../../../src/hooks/useSCFetchFeed.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +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,yBAAyB;AACzB,eAAO,MAAM,kCAAkC,UAAU,CAAC;AAC1D,eAAO,MAAM,2BAA2B,cAAgD,CAAC;AAEzF,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;
|
|
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,yBAAyB;AACzB,eAAO,MAAM,kCAAkC,UAAU,CAAC;AAC1D,eAAO,MAAM,2BAA2B,cAAgD,CAAC;AAEzF,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;AAGZ,eAAO,MAAM,qBAAqB,WAAW,CAAC;AAC9C,eAAO,MAAM,eAAe,gCAAwD,CAAC;AAGrF,eAAO,MAAM,2BAA2B,cAAc,CAAC;AACvD,eAAO,MAAM,oBAAoB,qBAAgD,CAAC;AAGlF,eAAO,MAAM,yCAAyC,4BAA4B,CAAC;AACnF,eAAO,MAAM,iCAAiC,qBAA8D,CAAC;AAG7G,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAC/C,eAAO,MAAM,iBAAiB,qBAAsC,CAAC"}
|
|
@@ -22,12 +22,16 @@ export const CONTRIBUTORS_CACHE_PREFIX_KEY = '_contr_';
|
|
|
22
22
|
export const getContributorsCacheKey = (id, type, next) => `${CONTRIBUTORS_CACHE_PREFIX_KEY}${type}_${id}_${next}`;
|
|
23
23
|
export const getContributorsCachePrefixKeys = (id, type) => `${CONTRIBUTORS_CACHE_PREFIX_KEY}${type}_${id}`;
|
|
24
24
|
/** FEED **/
|
|
25
|
+
// Cache single response body
|
|
25
26
|
export const FEED_CACHE_PREFIX_KEY = '_feed_';
|
|
26
27
|
export const getFeedCacheKey = (id, next) => `${FEED_CACHE_PREFIX_KEY}${id}_${next}`;
|
|
28
|
+
// Cache state of the feed (ex. useSCFetchFeed)
|
|
27
29
|
export const FEED_STATE_CACHE_PREFIX_KEY = '_feed_st_';
|
|
28
30
|
export const getStateFeedCacheKey = (id) => `${FEED_STATE_CACHE_PREFIX_KEY}${id}`;
|
|
31
|
+
// Cache the state of the virtualized feed
|
|
29
32
|
export const VIRTUALIZED_SCROLL_STATE_CACHE_PREFIX_KEY = '_virtualized_scroll_st_';
|
|
30
33
|
export const getVirtualizedScrollStateCacheKey = (id) => `${VIRTUALIZED_SCROLL_STATE_CACHE_PREFIX_KEY}${id}`;
|
|
34
|
+
// Cache feed position
|
|
31
35
|
export const FEED_CACHE_SP_KEY = '_feed_spos_';
|
|
32
36
|
export const getFeedSPCacheKey = (id) => `${FEED_CACHE_SP_KEY}${id}`;
|
|
33
37
|
//# sourceMappingURL=Cache.js.map
|
|
@@ -1 +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,yBAAyB;AACzB,MAAM,CAAC,MAAM,kCAAkC,GAAG,OAAO,CAAC;AAC1D,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,EAAE,CAAC,GAAG,kCAAkC,EAAE,CAAC;AAEzF,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;
|
|
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,yBAAyB;AACzB,MAAM,CAAC,MAAM,kCAAkC,GAAG,OAAO,CAAC;AAC1D,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,EAAE,CAAC,GAAG,kCAAkC,EAAE,CAAC;AAEzF,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;AAEZ,6BAA6B;AAC7B,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,+CAA+C;AAC/C,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,0CAA0C;AAC1C,MAAM,CAAC,MAAM,yCAAyC,GAAG,yBAAyB,CAAC;AACnF,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,yCAAyC,GAAG,EAAE,EAAE,CAAC;AAE7G,sBAAsB;AACtB,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAAC;AAC/C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,iBAAiB,GAAG,EAAE,EAAE,CAAC"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { SCFeedUnitType } from '@selfcommunity/types';
|
|
2
|
-
import { EndpointType } from '@selfcommunity/api-services';
|
|
2
|
+
import { EndpointType, SCPaginatedResponse } from '@selfcommunity/api-services';
|
|
3
3
|
import { CacheStrategies } from '@selfcommunity/utils';
|
|
4
4
|
/**
|
|
5
5
|
* Interface SCPaginatedFeedType
|
|
6
6
|
*/
|
|
7
7
|
export interface SCPaginatedFeedType {
|
|
8
8
|
componentLoaded: boolean;
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
results: SCFeedUnitType[];
|
|
10
|
+
count: number;
|
|
11
11
|
next: string;
|
|
12
12
|
previous: string;
|
|
13
13
|
isLoadingNext: boolean;
|
|
@@ -35,7 +35,7 @@ export declare const feedDataActionTypes: {
|
|
|
35
35
|
};
|
|
36
36
|
/**
|
|
37
37
|
:::info
|
|
38
|
-
This custom hooks is used to fetch paginated
|
|
38
|
+
This custom hooks is used to fetch paginated Data.
|
|
39
39
|
:::
|
|
40
40
|
* @param endpoint
|
|
41
41
|
* @param offset
|
|
@@ -50,5 +50,6 @@ export default function useSCFetchFeed(props: {
|
|
|
50
50
|
onNextPage?: (page: any, offset: any, total: any, data: any) => any;
|
|
51
51
|
onPreviousPage?: (page: any, offset: any, total: any, data: any) => any;
|
|
52
52
|
cacheStrategy?: CacheStrategies;
|
|
53
|
+
prefetchedData?: SCPaginatedResponse<SCFeedUnitType>;
|
|
53
54
|
}): any;
|
|
54
55
|
//# sourceMappingURL=useSCFetchFeed.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSCFetchFeed.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSCFetchFeed.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,cAAc,EAAC,MAAM,sBAAsB,CAAC;AACpD,OAAO,
|
|
1
|
+
{"version":3,"file":"useSCFetchFeed.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSCFetchFeed.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,cAAc,EAAC,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAC,YAAY,EAAsB,mBAAmB,EAAC,MAAM,6BAA6B,CAAC;AAClG,OAAO,EAAC,eAAe,EAAmB,MAAM,sBAAsB,CAAC;AAIvE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE,OAAO,CAAC;IACzB,OAAO,EAAE,cAAc,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,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;CAS/B,CAAC;AA2GF;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,KAAK,EAAE;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,YAAY,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IACtD,UAAU,CAAC,EAAE,CAAC,IAAI,KAAA,EAAE,MAAM,KAAA,EAAE,KAAK,KAAA,EAAE,IAAI,KAAA,KAAK,GAAG,CAAC;IAChD,cAAc,CAAC,EAAE,CAAC,IAAI,KAAA,EAAE,MAAM,KAAA,EAAE,KAAK,KAAA,EAAE,IAAI,KAAA,KAAK,GAAG,CAAC;IACpD,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC,cAAc,CAAC,EAAE,mBAAmB,CAAC,cAAc,CAAC,CAAC;CACtD,OA2LA"}
|
|
@@ -23,7 +23,7 @@ export const feedDataActionTypes = {
|
|
|
23
23
|
};
|
|
24
24
|
/**
|
|
25
25
|
* feedDataReducer:
|
|
26
|
-
* - manage the state of
|
|
26
|
+
* - manage the state of feed object
|
|
27
27
|
* - update the state base on action type
|
|
28
28
|
* @param state
|
|
29
29
|
* @param action
|
|
@@ -38,16 +38,16 @@ function feedDataReducer(state, action) {
|
|
|
38
38
|
_state = Object.assign(Object.assign({}, state), { isLoadingNext: false, isLoadingPrevious: true });
|
|
39
39
|
break;
|
|
40
40
|
case feedDataActionTypes.DATA_NEXT_LOADED:
|
|
41
|
-
_state = Object.assign(Object.assign(Object.assign(Object.assign({}, state), { currentPage: action.payload.currentPage, currentOffset: action.payload.currentOffset,
|
|
41
|
+
_state = Object.assign(Object.assign(Object.assign(Object.assign({}, state), { currentPage: action.payload.currentPage, currentOffset: action.payload.currentOffset, results: [...state.results, ...action.payload.results], isLoadingNext: false, componentLoaded: true, next: action.payload.next }), (action.payload.previous ? { previous: action.payload.previous } : {})), (action.payload.count ? { count: action.payload.count } : {}));
|
|
42
42
|
break;
|
|
43
43
|
case feedDataActionTypes.DATA_PREVIOUS_LOADED:
|
|
44
|
-
_state = Object.assign(Object.assign({}, state), { currentPage: action.payload.currentPage, currentOffset: action.payload.currentOffset,
|
|
44
|
+
_state = Object.assign(Object.assign({}, state), { currentPage: action.payload.currentPage, currentOffset: action.payload.currentOffset, results: [...action.payload.results, ...state.results], isLoadingPrevious: false, componentLoaded: true, previous: action.payload.previous });
|
|
45
45
|
break;
|
|
46
46
|
case feedDataActionTypes.DATA_REVALIDATE:
|
|
47
|
-
_state = Object.assign(Object.assign({}, state), {
|
|
47
|
+
_state = Object.assign(Object.assign({}, state), { results: action.payload.results });
|
|
48
48
|
break;
|
|
49
49
|
case feedDataActionTypes.DATA_RELOAD:
|
|
50
|
-
_state = Object.assign(Object.assign({}, state), { next: action.payload.next, currentPage: 1, currentOffset: 0,
|
|
50
|
+
_state = Object.assign(Object.assign({}, state), { next: action.payload.next, currentPage: 1, currentOffset: 0, results: [], count: 0, previous: null, reload: true });
|
|
51
51
|
break;
|
|
52
52
|
case feedDataActionTypes.DATA_RELOADED:
|
|
53
53
|
_state = Object.assign(Object.assign({}, state), { componentLoaded: false, reload: false });
|
|
@@ -64,21 +64,8 @@ function feedDataReducer(state, action) {
|
|
|
64
64
|
* @param data
|
|
65
65
|
*/
|
|
66
66
|
function stateInitializer(data) {
|
|
67
|
+
let _initState = Object.assign({ id: data.id, results: [], count: 0, next: data.next, previous: null, isLoadingNext: false, isLoadingPrevious: false, limit: data.queryParams.limit, currentPage: Math.ceil(data.queryParams.offset / data.queryParams.limit + 1), currentOffset: data.queryParams.offset, initialOffset: data.queryParams.offset, reload: false, componentLoaded: Boolean(data.prefetchedData) }, (data.prefetchedData && data.prefetchedData));
|
|
67
68
|
const __feedStateCacheKey = getStateFeedCacheKey(data.id);
|
|
68
|
-
let _initState = {
|
|
69
|
-
id: data.id,
|
|
70
|
-
componentLoaded: false,
|
|
71
|
-
feedData: [],
|
|
72
|
-
total: 0,
|
|
73
|
-
next: data.next,
|
|
74
|
-
previous: null,
|
|
75
|
-
isLoadingNext: false,
|
|
76
|
-
isLoadingPrevious: false,
|
|
77
|
-
limit: data.queryParams.limit,
|
|
78
|
-
currentPage: Math.ceil(data.queryParams.offset / data.queryParams.limit + 1),
|
|
79
|
-
currentOffset: data.queryParams.offset,
|
|
80
|
-
reload: false,
|
|
81
|
-
};
|
|
82
69
|
if (__feedStateCacheKey && LRUCache.hasKey(__feedStateCacheKey) && data.cacheStrategy !== CacheStrategies.NETWORK_ONLY) {
|
|
83
70
|
const _cachedStateData = LRUCache.get(__feedStateCacheKey);
|
|
84
71
|
return Object.assign(Object.assign({}, _initState), _cachedStateData);
|
|
@@ -87,7 +74,7 @@ function stateInitializer(data) {
|
|
|
87
74
|
}
|
|
88
75
|
/**
|
|
89
76
|
:::info
|
|
90
|
-
This custom hooks is used to fetch paginated
|
|
77
|
+
This custom hooks is used to fetch paginated Data.
|
|
91
78
|
:::
|
|
92
79
|
* @param endpoint
|
|
93
80
|
* @param offset
|
|
@@ -97,7 +84,7 @@ function stateInitializer(data) {
|
|
|
97
84
|
*/
|
|
98
85
|
export default function useSCFetchFeed(props) {
|
|
99
86
|
// PROPS
|
|
100
|
-
const { id, endpoint, endpointQueryParams = { limit: 10, offset: 0 }, onNextPage, onPreviousPage, cacheStrategy = CacheStrategies.NETWORK_ONLY, } = props;
|
|
87
|
+
const { id, endpoint, endpointQueryParams = { limit: 10, offset: 0 }, onNextPage, onPreviousPage, cacheStrategy = CacheStrategies.NETWORK_ONLY, prefetchedData, } = props;
|
|
101
88
|
const queryParams = useMemo(() => Object.assign({ limit: 10, offset: 0 }, endpointQueryParams), [endpointQueryParams]);
|
|
102
89
|
/**
|
|
103
90
|
* Get next url
|
|
@@ -107,7 +94,7 @@ export default function useSCFetchFeed(props) {
|
|
|
107
94
|
return _initialEndpoint;
|
|
108
95
|
};
|
|
109
96
|
// STATE
|
|
110
|
-
const [state, dispatch] = useReducer(feedDataReducer, {}, () => stateInitializer({ id, endpoint, queryParams, next: getInitialNextUrl(), cacheStrategy }));
|
|
97
|
+
const [state, dispatch] = useReducer(feedDataReducer, {}, () => stateInitializer({ id, endpoint, queryParams, next: getInitialNextUrl(), cacheStrategy, prefetchedData }));
|
|
111
98
|
/**
|
|
112
99
|
* Calculate current page
|
|
113
100
|
*/
|
|
@@ -121,18 +108,18 @@ export default function useSCFetchFeed(props) {
|
|
|
121
108
|
*/
|
|
122
109
|
const revalidate = (url, forward) => {
|
|
123
110
|
return performFetchData(url, false).then((res) => {
|
|
124
|
-
let
|
|
111
|
+
let _data;
|
|
125
112
|
if (forward) {
|
|
126
|
-
let start = state.
|
|
127
|
-
|
|
113
|
+
let start = state.results.slice(0, state.results.length - res.results.length);
|
|
114
|
+
_data = start.concat(res.results);
|
|
128
115
|
}
|
|
129
116
|
else {
|
|
130
|
-
let start = state.
|
|
131
|
-
|
|
117
|
+
let start = state.results.slice(res.results.length, state.results.length);
|
|
118
|
+
_data = res.results.concat(start);
|
|
132
119
|
}
|
|
133
120
|
dispatch({
|
|
134
121
|
type: feedDataActionTypes.DATA_REVALIDATE,
|
|
135
|
-
payload: {
|
|
122
|
+
payload: { results: _data },
|
|
136
123
|
});
|
|
137
124
|
});
|
|
138
125
|
};
|
|
@@ -158,7 +145,7 @@ export default function useSCFetchFeed(props) {
|
|
|
158
145
|
});
|
|
159
146
|
};
|
|
160
147
|
/**
|
|
161
|
-
* Fetch previous
|
|
148
|
+
* Fetch previous data
|
|
162
149
|
*/
|
|
163
150
|
function getPreviousPage() {
|
|
164
151
|
if (endpoint && state.previous && !state.isLoadingPrevious) {
|
|
@@ -172,8 +159,9 @@ export default function useSCFetchFeed(props) {
|
|
|
172
159
|
payload: {
|
|
173
160
|
currentPage,
|
|
174
161
|
currentOffset,
|
|
175
|
-
|
|
176
|
-
|
|
162
|
+
initialOffset: currentOffset,
|
|
163
|
+
count: res.count,
|
|
164
|
+
results: res.results,
|
|
177
165
|
previous: res.previous,
|
|
178
166
|
},
|
|
179
167
|
});
|
|
@@ -188,7 +176,7 @@ export default function useSCFetchFeed(props) {
|
|
|
188
176
|
}
|
|
189
177
|
}
|
|
190
178
|
/**
|
|
191
|
-
* Fetch next
|
|
179
|
+
* Fetch next data
|
|
192
180
|
*/
|
|
193
181
|
function getNextPage() {
|
|
194
182
|
if (endpoint && state.next && !state.isLoadingNext) {
|
|
@@ -200,7 +188,7 @@ export default function useSCFetchFeed(props) {
|
|
|
200
188
|
dispatch({
|
|
201
189
|
type: feedDataActionTypes.DATA_NEXT_LOADED,
|
|
202
190
|
payload: Object.assign({ currentPage,
|
|
203
|
-
currentOffset,
|
|
191
|
+
currentOffset, results: res.results, next: res.next, count: res.count, componentLoaded: true }, (queryParams.offset && state.results.length === 0 ? { previous: res.previous } : {})),
|
|
204
192
|
});
|
|
205
193
|
onNextPage && onNextPage(currentPage, currentOffset, res.count, res.results);
|
|
206
194
|
if (cacheStrategy === CacheStrategies.STALE_WHILE_REVALIDATE) {
|
|
@@ -224,7 +212,7 @@ export default function useSCFetchFeed(props) {
|
|
|
224
212
|
});
|
|
225
213
|
}
|
|
226
214
|
/**
|
|
227
|
-
* Reload fetch
|
|
215
|
+
* Reload fetch data
|
|
228
216
|
*/
|
|
229
217
|
useEffect(() => {
|
|
230
218
|
if (state.componentLoaded && state.reload && !state.isLoadingNext && !state.isLoadingPrevious) {
|
|
@@ -245,7 +233,6 @@ export default function useSCFetchFeed(props) {
|
|
|
245
233
|
dispatch({ type: feedDataActionTypes.UPDATE_DATA, payload: payload });
|
|
246
234
|
}
|
|
247
235
|
return Object.assign(Object.assign({}, state), { updateState,
|
|
248
|
-
queryParams,
|
|
249
236
|
getNextPage,
|
|
250
237
|
getPreviousPage,
|
|
251
238
|
reload });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSCFetchFeed.js","sourceRoot":"","sources":["../../../src/hooks/useSCFetchFeed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,OAAO,EAAE,UAAU,EAAC,MAAM,OAAO,CAAC;AACrD,OAAO,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAElD,OAAO,
|
|
1
|
+
{"version":3,"file":"useSCFetchFeed.js","sourceRoot":"","sources":["../../../src/hooks/useSCFetchFeed.ts"],"names":[],"mappings":"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"}
|