@amityco/react-native-social-uikit 4.0.0-RC20 → 4.0.0-RC21
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/commonjs/v4/PublicApi/Components/AmityGlobalFeedComponent/AmityGlobalFeedComponent.js +14 -7
- package/lib/commonjs/v4/PublicApi/Components/AmityGlobalFeedComponent/AmityGlobalFeedComponent.js.map +1 -1
- package/lib/commonjs/v4/hook/useCustomRankingGlobalFeed.js +8 -1
- package/lib/commonjs/v4/hook/useCustomRankingGlobalFeed.js.map +1 -1
- package/lib/module/v4/PublicApi/Components/AmityGlobalFeedComponent/AmityGlobalFeedComponent.js +15 -8
- package/lib/module/v4/PublicApi/Components/AmityGlobalFeedComponent/AmityGlobalFeedComponent.js.map +1 -1
- package/lib/module/v4/hook/useCustomRankingGlobalFeed.js +8 -1
- package/lib/module/v4/hook/useCustomRankingGlobalFeed.js.map +1 -1
- package/lib/typescript/src/v4/PublicApi/Components/AmityGlobalFeedComponent/AmityGlobalFeedComponent.d.ts.map +1 -1
- package/lib/typescript/src/v4/hook/useCustomRankingGlobalFeed.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/v4/PublicApi/Components/AmityGlobalFeedComponent/AmityGlobalFeedComponent.tsx +23 -17
- package/src/v4/hook/useCustomRankingGlobalFeed.ts +10 -1
package/lib/commonjs/v4/PublicApi/Components/AmityGlobalFeedComponent/AmityGlobalFeedComponent.js
CHANGED
|
@@ -53,6 +53,17 @@ const AmityGlobalFeedComponent = ({
|
|
|
53
53
|
const {
|
|
54
54
|
handleViewChange
|
|
55
55
|
} = (0, _usePostImpression.usePostImpression)(itemWithAds === null || itemWithAds === void 0 ? void 0 : itemWithAds.filter(item => (0, _useCustomRankingGlobalFeed.isAmityAd)(item) ? item === null || item === void 0 ? void 0 : item.adId : item === null || item === void 0 ? void 0 : item.postId));
|
|
56
|
+
const viewabilityConfig = (0, _react.useRef)({
|
|
57
|
+
viewAreaCoveragePercentThreshold: 60
|
|
58
|
+
}).current;
|
|
59
|
+
const listHeaderComponent = (0, _react.useMemo)(() => {
|
|
60
|
+
if (isShowStoryTab) {
|
|
61
|
+
return /*#__PURE__*/_react.default.createElement(_reactNative.View, null, GlobalFeedHeaderComponent, /*#__PURE__*/_react.default.createElement(_AmityStoryTabComponent.default, {
|
|
62
|
+
type: _types.AmityStoryTabComponentEnum.globalFeed
|
|
63
|
+
}));
|
|
64
|
+
}
|
|
65
|
+
return GlobalFeedHeaderComponent || null;
|
|
66
|
+
}, [isShowStoryTab, GlobalFeedHeaderComponent]);
|
|
56
67
|
if (isExcluded) return null;
|
|
57
68
|
return /*#__PURE__*/_react.default.createElement(_reactNative.FlatList, {
|
|
58
69
|
initialNumToRender: 20,
|
|
@@ -73,7 +84,7 @@ const AmityGlobalFeedComponent = ({
|
|
|
73
84
|
AmityPostContentComponentStyle: _AmityPostContentComponentStyle.AmityPostContentComponentStyleEnum.feed
|
|
74
85
|
}));
|
|
75
86
|
},
|
|
76
|
-
keyExtractor:
|
|
87
|
+
keyExtractor: item => (0, _useCustomRankingGlobalFeed.isAmityAd)(item) ? item.adId.toString() : item.postId.toString(),
|
|
77
88
|
onEndReachedThreshold: 0.5,
|
|
78
89
|
onEndReached: handleLoadMore,
|
|
79
90
|
ref: flatListRef,
|
|
@@ -84,12 +95,8 @@ const AmityGlobalFeedComponent = ({
|
|
|
84
95
|
tintColor: "lightblue"
|
|
85
96
|
}),
|
|
86
97
|
keyboardShouldPersistTaps: "handled",
|
|
87
|
-
ListHeaderComponent:
|
|
88
|
-
|
|
89
|
-
})) : GlobalFeedHeaderComponent,
|
|
90
|
-
viewabilityConfig: {
|
|
91
|
-
viewAreaCoveragePercentThreshold: 60
|
|
92
|
-
},
|
|
98
|
+
ListHeaderComponent: listHeaderComponent,
|
|
99
|
+
viewabilityConfig: viewabilityConfig,
|
|
93
100
|
onViewableItemsChanged: handleViewChange,
|
|
94
101
|
extraData: itemWithAds
|
|
95
102
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_AmityPostContentComponent","_interopRequireDefault","_enumUIKitID","_useUiKitReference","_AmityPostContentComponentStyle","_AmityStoryTabComponent","_types","_usePostImpression","_styles","_useCustomRankingGlobalFeed","_PostAdComponent","_Divider","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","globalFeedPageLimit","exports","AmityGlobalFeedComponent","pageId","isShowStoryTab","GlobalFeedHeaderComponent","itemWithAds","refresh","loading","onNextPage","componentId","ComponentID","global_feed_component","isExcluded","themeStyles","accessibilityId","useAmityComponent","refreshing","setRefreshing","useState","styles","useStyle","flatListRef","useRef","handleLoadMore","onRefresh","useCallback","handleViewChange","usePostImpression","filter","item","isAmityAd","adId","postId","createElement","FlatList","initialNumToRender","testID","accessibilityLabel","style","feedWrap","data","renderItem","index","Fragment","ad","post","AmityPostContentComponentStyle","AmityPostContentComponentStyleEnum","feed","keyExtractor","toString","onEndReachedThreshold","onEndReached","ref","refreshControl","RefreshControl","colors","tintColor","keyboardShouldPersistTaps","ListHeaderComponent","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_AmityPostContentComponent","_interopRequireDefault","_enumUIKitID","_useUiKitReference","_AmityPostContentComponentStyle","_AmityStoryTabComponent","_types","_usePostImpression","_styles","_useCustomRankingGlobalFeed","_PostAdComponent","_Divider","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","globalFeedPageLimit","exports","AmityGlobalFeedComponent","pageId","isShowStoryTab","GlobalFeedHeaderComponent","itemWithAds","refresh","loading","onNextPage","componentId","ComponentID","global_feed_component","isExcluded","themeStyles","accessibilityId","useAmityComponent","refreshing","setRefreshing","useState","styles","useStyle","flatListRef","useRef","handleLoadMore","onRefresh","useCallback","handleViewChange","usePostImpression","filter","item","isAmityAd","adId","postId","viewabilityConfig","viewAreaCoveragePercentThreshold","current","listHeaderComponent","useMemo","createElement","View","type","AmityStoryTabComponentEnum","globalFeed","FlatList","initialNumToRender","testID","accessibilityLabel","style","feedWrap","data","renderItem","index","Fragment","ad","post","AmityPostContentComponentStyle","AmityPostContentComponentStyleEnum","feed","keyExtractor","toString","onEndReachedThreshold","onEndReached","ref","refreshControl","RefreshControl","colors","tintColor","keyboardShouldPersistTaps","ListHeaderComponent","onViewableItemsChanged","extraData","_default","memo"],"sourceRoot":"../../../../../../src","sources":["v4/PublicApi/Components/AmityGlobalFeedComponent/AmityGlobalFeedComponent.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -42,8 +42,10 @@ const useCustomRankingGlobalFeed = ({
|
|
|
42
42
|
pageSize: _AmityGlobalFeedComponent.globalFeedPageLimit,
|
|
43
43
|
getItemId: item => item.postId.toString()
|
|
44
44
|
});
|
|
45
|
+
const hasInitialDataRef = (0, _react.useRef)(false);
|
|
45
46
|
const fetchCustomRanking = (0, _react.useCallback)(() => {
|
|
46
47
|
if (!isConnected) return null;
|
|
48
|
+
hasInitialDataRef.current = false;
|
|
47
49
|
return _tsSdkReactNative.FeedRepository.getGlobalFeed({
|
|
48
50
|
limit: _AmityGlobalFeedComponent.globalFeedPageLimit
|
|
49
51
|
}, ({
|
|
@@ -53,7 +55,10 @@ const useCustomRankingGlobalFeed = ({
|
|
|
53
55
|
onNextPage
|
|
54
56
|
}) => {
|
|
55
57
|
if (isLoading) {
|
|
56
|
-
|
|
58
|
+
// Only show loading state on initial fetch, not on pagination
|
|
59
|
+
if (!hasInitialDataRef.current) {
|
|
60
|
+
setFetching(true);
|
|
61
|
+
}
|
|
57
62
|
return;
|
|
58
63
|
}
|
|
59
64
|
if (onNextPage) onNextPageRef.current = onNextPage;
|
|
@@ -65,6 +70,7 @@ const useCustomRankingGlobalFeed = ({
|
|
|
65
70
|
interactionHandleRef.current = _reactNative.InteractionManager.runAfterInteractions(() => {
|
|
66
71
|
dispatch(setNewGlobalFeed(filtered));
|
|
67
72
|
setFetching(false);
|
|
73
|
+
hasInitialDataRef.current = true;
|
|
68
74
|
interactionHandleRef.current = null;
|
|
69
75
|
});
|
|
70
76
|
} else {
|
|
@@ -88,6 +94,7 @@ const useCustomRankingGlobalFeed = ({
|
|
|
88
94
|
(_interactionHandleRef3 = interactionHandleRef.current) === null || _interactionHandleRef3 === void 0 || _interactionHandleRef3.cancel();
|
|
89
95
|
interactionHandleRef.current = null;
|
|
90
96
|
onNextPageRef.current = null;
|
|
97
|
+
hasInitialDataRef.current = false;
|
|
91
98
|
unsubscribeRef.current = fetchCustomRanking();
|
|
92
99
|
}, [fetchCustomRanking]);
|
|
93
100
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_tsSdkReactNative","require","_react","_reactNative","_globalfeedSlice","_interopRequireDefault","_AmityGlobalFeedComponent","_store","_usePaginator","_useAuth","e","__esModule","default","isAmityAd","item","adId","undefined","exports","useCustomRankingGlobalFeed","enabled","isConnected","useAuth","dispatch","useUIKitDispatch","unsubscribeRef","useRef","onNextPageRef","interactionHandleRef","setNewGlobalFeed","globalFeedSlice","actions","fetching","setFetching","useState","error","setError","postList","useUIKitSelector","state","globalFeed","itemWithAds","usePaginatorApi","items","isLoading","placement","pageSize","globalFeedPageLimit","getItemId","postId","toString","fetchCustomRanking","useCallback","FeedRepository","getGlobalFeed","limit","data","loading","$error","onNextPage","
|
|
1
|
+
{"version":3,"names":["_tsSdkReactNative","require","_react","_reactNative","_globalfeedSlice","_interopRequireDefault","_AmityGlobalFeedComponent","_store","_usePaginator","_useAuth","e","__esModule","default","isAmityAd","item","adId","undefined","exports","useCustomRankingGlobalFeed","enabled","isConnected","useAuth","dispatch","useUIKitDispatch","unsubscribeRef","useRef","onNextPageRef","interactionHandleRef","setNewGlobalFeed","globalFeedSlice","actions","fetching","setFetching","useState","error","setError","postList","useUIKitSelector","state","globalFeed","itemWithAds","usePaginatorApi","items","isLoading","placement","pageSize","globalFeedPageLimit","getItemId","postId","toString","hasInitialDataRef","fetchCustomRanking","useCallback","current","FeedRepository","getGlobalFeed","limit","data","loading","$error","onNextPage","_interactionHandleRef","filtered","filter","post","structureType","PostStructureType","AUDIO","FILE","MIXED","cancel","InteractionManager","runAfterInteractions","useEffect","_unsubscribeRef$curre","_interactionHandleRef2","call","refresh","_unsubscribeRef$curre2","_interactionHandleRef3","globalFeedPosts"],"sourceRoot":"../../../../src","sources":["v4/hook/useCustomRankingGlobalFeed.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/v4/PublicApi/Components/AmityGlobalFeedComponent/AmityGlobalFeedComponent.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { memo, useCallback, useRef, useState } from 'react';
|
|
1
|
+
import React, { memo, useCallback, useMemo, useRef, useState } from 'react';
|
|
2
2
|
import { FlatList, View } from 'react-native';
|
|
3
3
|
import { RefreshControl } from 'react-native';
|
|
4
4
|
import AmityPostContentComponent from '../AmityPostContentComponent/AmityPostContentComponent';
|
|
@@ -46,6 +46,17 @@ const AmityGlobalFeedComponent = ({
|
|
|
46
46
|
const {
|
|
47
47
|
handleViewChange
|
|
48
48
|
} = usePostImpression(itemWithAds === null || itemWithAds === void 0 ? void 0 : itemWithAds.filter(item => isAmityAd(item) ? item === null || item === void 0 ? void 0 : item.adId : item === null || item === void 0 ? void 0 : item.postId));
|
|
49
|
+
const viewabilityConfig = useRef({
|
|
50
|
+
viewAreaCoveragePercentThreshold: 60
|
|
51
|
+
}).current;
|
|
52
|
+
const listHeaderComponent = useMemo(() => {
|
|
53
|
+
if (isShowStoryTab) {
|
|
54
|
+
return /*#__PURE__*/React.createElement(View, null, GlobalFeedHeaderComponent, /*#__PURE__*/React.createElement(AmityStoryTabComponent, {
|
|
55
|
+
type: AmityStoryTabComponentEnum.globalFeed
|
|
56
|
+
}));
|
|
57
|
+
}
|
|
58
|
+
return GlobalFeedHeaderComponent || null;
|
|
59
|
+
}, [isShowStoryTab, GlobalFeedHeaderComponent]);
|
|
49
60
|
if (isExcluded) return null;
|
|
50
61
|
return /*#__PURE__*/React.createElement(FlatList, {
|
|
51
62
|
initialNumToRender: 20,
|
|
@@ -66,7 +77,7 @@ const AmityGlobalFeedComponent = ({
|
|
|
66
77
|
AmityPostContentComponentStyle: AmityPostContentComponentStyleEnum.feed
|
|
67
78
|
}));
|
|
68
79
|
},
|
|
69
|
-
keyExtractor:
|
|
80
|
+
keyExtractor: item => isAmityAd(item) ? item.adId.toString() : item.postId.toString(),
|
|
70
81
|
onEndReachedThreshold: 0.5,
|
|
71
82
|
onEndReached: handleLoadMore,
|
|
72
83
|
ref: flatListRef,
|
|
@@ -77,12 +88,8 @@ const AmityGlobalFeedComponent = ({
|
|
|
77
88
|
tintColor: "lightblue"
|
|
78
89
|
}),
|
|
79
90
|
keyboardShouldPersistTaps: "handled",
|
|
80
|
-
ListHeaderComponent:
|
|
81
|
-
|
|
82
|
-
})) : GlobalFeedHeaderComponent,
|
|
83
|
-
viewabilityConfig: {
|
|
84
|
-
viewAreaCoveragePercentThreshold: 60
|
|
85
|
-
},
|
|
91
|
+
ListHeaderComponent: listHeaderComponent,
|
|
92
|
+
viewabilityConfig: viewabilityConfig,
|
|
86
93
|
onViewableItemsChanged: handleViewChange,
|
|
87
94
|
extraData: itemWithAds
|
|
88
95
|
});
|
package/lib/module/v4/PublicApi/Components/AmityGlobalFeedComponent/AmityGlobalFeedComponent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","memo","useCallback","useRef","useState","FlatList","View","RefreshControl","AmityPostContentComponent","ComponentID","useAmityComponent","AmityPostContentComponentStyleEnum","AmityStoryTabComponent","AmityStoryTabComponentEnum","usePostImpression","useStyle","isAmityAd","PostAdComponent","Divider","globalFeedPageLimit","AmityGlobalFeedComponent","pageId","isShowStoryTab","GlobalFeedHeaderComponent","itemWithAds","refresh","loading","onNextPage","componentId","global_feed_component","isExcluded","themeStyles","accessibilityId","refreshing","setRefreshing","styles","flatListRef","handleLoadMore","onRefresh","handleViewChange","filter","item","adId","postId","createElement","initialNumToRender","testID","accessibilityLabel","style","feedWrap","data","renderItem","index","Fragment","ad","post","AmityPostContentComponentStyle","feed","keyExtractor","toString","onEndReachedThreshold","onEndReached","ref","refreshControl","colors","tintColor","keyboardShouldPersistTaps","ListHeaderComponent","
|
|
1
|
+
{"version":3,"names":["React","memo","useCallback","useMemo","useRef","useState","FlatList","View","RefreshControl","AmityPostContentComponent","ComponentID","useAmityComponent","AmityPostContentComponentStyleEnum","AmityStoryTabComponent","AmityStoryTabComponentEnum","usePostImpression","useStyle","isAmityAd","PostAdComponent","Divider","globalFeedPageLimit","AmityGlobalFeedComponent","pageId","isShowStoryTab","GlobalFeedHeaderComponent","itemWithAds","refresh","loading","onNextPage","componentId","global_feed_component","isExcluded","themeStyles","accessibilityId","refreshing","setRefreshing","styles","flatListRef","handleLoadMore","onRefresh","handleViewChange","filter","item","adId","postId","viewabilityConfig","viewAreaCoveragePercentThreshold","current","listHeaderComponent","createElement","type","globalFeed","initialNumToRender","testID","accessibilityLabel","style","feedWrap","data","renderItem","index","Fragment","ad","post","AmityPostContentComponentStyle","feed","keyExtractor","toString","onEndReachedThreshold","onEndReached","ref","refreshControl","colors","tintColor","keyboardShouldPersistTaps","ListHeaderComponent","onViewableItemsChanged","extraData"],"sourceRoot":"../../../../../../src","sources":["v4/PublicApi/Components/AmityGlobalFeedComponent/AmityGlobalFeedComponent.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -34,8 +34,10 @@ export const useCustomRankingGlobalFeed = ({
|
|
|
34
34
|
pageSize: globalFeedPageLimit,
|
|
35
35
|
getItemId: item => item.postId.toString()
|
|
36
36
|
});
|
|
37
|
+
const hasInitialDataRef = useRef(false);
|
|
37
38
|
const fetchCustomRanking = useCallback(() => {
|
|
38
39
|
if (!isConnected) return null;
|
|
40
|
+
hasInitialDataRef.current = false;
|
|
39
41
|
return FeedRepository.getGlobalFeed({
|
|
40
42
|
limit: globalFeedPageLimit
|
|
41
43
|
}, ({
|
|
@@ -45,7 +47,10 @@ export const useCustomRankingGlobalFeed = ({
|
|
|
45
47
|
onNextPage
|
|
46
48
|
}) => {
|
|
47
49
|
if (isLoading) {
|
|
48
|
-
|
|
50
|
+
// Only show loading state on initial fetch, not on pagination
|
|
51
|
+
if (!hasInitialDataRef.current) {
|
|
52
|
+
setFetching(true);
|
|
53
|
+
}
|
|
49
54
|
return;
|
|
50
55
|
}
|
|
51
56
|
if (onNextPage) onNextPageRef.current = onNextPage;
|
|
@@ -57,6 +62,7 @@ export const useCustomRankingGlobalFeed = ({
|
|
|
57
62
|
interactionHandleRef.current = InteractionManager.runAfterInteractions(() => {
|
|
58
63
|
dispatch(setNewGlobalFeed(filtered));
|
|
59
64
|
setFetching(false);
|
|
65
|
+
hasInitialDataRef.current = true;
|
|
60
66
|
interactionHandleRef.current = null;
|
|
61
67
|
});
|
|
62
68
|
} else {
|
|
@@ -80,6 +86,7 @@ export const useCustomRankingGlobalFeed = ({
|
|
|
80
86
|
(_interactionHandleRef3 = interactionHandleRef.current) === null || _interactionHandleRef3 === void 0 || _interactionHandleRef3.cancel();
|
|
81
87
|
interactionHandleRef.current = null;
|
|
82
88
|
onNextPageRef.current = null;
|
|
89
|
+
hasInitialDataRef.current = false;
|
|
83
90
|
unsubscribeRef.current = fetchCustomRanking();
|
|
84
91
|
}, [fetchCustomRanking]);
|
|
85
92
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["FeedRepository","PostStructureType","useCallback","useEffect","useRef","useState","InteractionManager","globalFeedSlice","globalFeedPageLimit","useUIKitDispatch","useUIKitSelector","usePaginatorApi","useAuth","isAmityAd","item","adId","undefined","useCustomRankingGlobalFeed","enabled","isConnected","dispatch","unsubscribeRef","onNextPageRef","interactionHandleRef","setNewGlobalFeed","actions","fetching","setFetching","error","setError","postList","state","globalFeed","itemWithAds","items","isLoading","placement","pageSize","getItemId","postId","toString","fetchCustomRanking","getGlobalFeed","limit","data","loading","$error","onNextPage","
|
|
1
|
+
{"version":3,"names":["FeedRepository","PostStructureType","useCallback","useEffect","useRef","useState","InteractionManager","globalFeedSlice","globalFeedPageLimit","useUIKitDispatch","useUIKitSelector","usePaginatorApi","useAuth","isAmityAd","item","adId","undefined","useCustomRankingGlobalFeed","enabled","isConnected","dispatch","unsubscribeRef","onNextPageRef","interactionHandleRef","setNewGlobalFeed","actions","fetching","setFetching","error","setError","postList","state","globalFeed","itemWithAds","items","isLoading","placement","pageSize","getItemId","postId","toString","hasInitialDataRef","fetchCustomRanking","current","getGlobalFeed","limit","data","loading","$error","onNextPage","_interactionHandleRef","filtered","filter","post","structureType","AUDIO","FILE","MIXED","cancel","runAfterInteractions","_unsubscribeRef$curre","_interactionHandleRef2","call","refresh","_unsubscribeRef$curre2","_interactionHandleRef3","globalFeedPosts"],"sourceRoot":"../../../../src","sources":["v4/hook/useCustomRankingGlobalFeed.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AmityGlobalFeedComponent.d.ts","sourceRoot":"","sources":["../../../../../../../src/v4/PublicApi/Components/AmityGlobalFeedComponent/AmityGlobalFeedComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"AmityGlobalFeedComponent.d.ts","sourceRoot":"","sources":["../../../../../../../src/v4/PublicApi/Components/AmityGlobalFeedComponent/AmityGlobalFeedComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAKhF,OAAO,EAAe,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAWhE,KAAK,4BAA4B,GAAG;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,yBAAyB,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC;IAC/C,WAAW,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC;IACnD,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;CACjC,CAAC;AAEF,eAAO,MAAM,mBAAmB,KAAK,CAAC;;AAyGtC,wBAA8C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCustomRankingGlobalFeed.d.ts","sourceRoot":"","sources":["../../../../../src/v4/hook/useCustomRankingGlobalFeed.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAG/D,eAAO,MAAM,SAAS,GACpB,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,EAAE,GAAG,QAAQ,KAC1C,IAAI,IAAI,KAAK,CAAC,EAEhB,CAAC;AAEF,KAAK,0BAA0B,GAAG;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,0BAA0B,GAAI,eAExC,0BAA+B;;;;sBAIG,IAAI,GAAG,IAAI;;;
|
|
1
|
+
{"version":3,"file":"useCustomRankingGlobalFeed.d.ts","sourceRoot":"","sources":["../../../../../src/v4/hook/useCustomRankingGlobalFeed.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAG/D,eAAO,MAAM,SAAS,GACpB,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,EAAE,GAAG,QAAQ,KAC1C,IAAI,IAAI,KAAK,CAAC,EAEhB,CAAC;AAEF,KAAK,0BAA0B,GAAG;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,0BAA0B,GAAI,eAExC,0BAA+B;;;;sBAIG,IAAI,GAAG,IAAI;;;CA4F/C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { FC, memo, useCallback, useRef, useState } from 'react';
|
|
1
|
+
import React, { FC, memo, useCallback, useMemo, useRef, useState } from 'react';
|
|
2
2
|
import { FlatList, View } from 'react-native';
|
|
3
3
|
|
|
4
4
|
import { RefreshControl } from 'react-native';
|
|
@@ -62,6 +62,24 @@ const AmityGlobalFeedComponent: FC<AmityGlobalFeedComponentType> = ({
|
|
|
62
62
|
)
|
|
63
63
|
);
|
|
64
64
|
|
|
65
|
+
const viewabilityConfig = useRef({
|
|
66
|
+
viewAreaCoveragePercentThreshold: 60,
|
|
67
|
+
}).current;
|
|
68
|
+
|
|
69
|
+
const listHeaderComponent = useMemo(() => {
|
|
70
|
+
if (isShowStoryTab) {
|
|
71
|
+
return (
|
|
72
|
+
<View>
|
|
73
|
+
{GlobalFeedHeaderComponent}
|
|
74
|
+
<AmityStoryTabComponent
|
|
75
|
+
type={AmityStoryTabComponentEnum.globalFeed}
|
|
76
|
+
/>
|
|
77
|
+
</View>
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
return GlobalFeedHeaderComponent || null;
|
|
81
|
+
}, [isShowStoryTab, GlobalFeedHeaderComponent]);
|
|
82
|
+
|
|
65
83
|
if (isExcluded) return null;
|
|
66
84
|
|
|
67
85
|
return (
|
|
@@ -88,9 +106,8 @@ const AmityGlobalFeedComponent: FC<AmityGlobalFeedComponentType> = ({
|
|
|
88
106
|
</>
|
|
89
107
|
);
|
|
90
108
|
}}
|
|
91
|
-
keyExtractor={(item
|
|
92
|
-
|
|
93
|
-
`_${index}`
|
|
109
|
+
keyExtractor={(item) =>
|
|
110
|
+
isAmityAd(item) ? item.adId.toString() : item.postId.toString()
|
|
94
111
|
}
|
|
95
112
|
onEndReachedThreshold={0.5}
|
|
96
113
|
onEndReached={handleLoadMore}
|
|
@@ -104,19 +121,8 @@ const AmityGlobalFeedComponent: FC<AmityGlobalFeedComponentType> = ({
|
|
|
104
121
|
/>
|
|
105
122
|
}
|
|
106
123
|
keyboardShouldPersistTaps="handled"
|
|
107
|
-
ListHeaderComponent={
|
|
108
|
-
|
|
109
|
-
<View>
|
|
110
|
-
{GlobalFeedHeaderComponent}
|
|
111
|
-
<AmityStoryTabComponent
|
|
112
|
-
type={AmityStoryTabComponentEnum.globalFeed}
|
|
113
|
-
/>
|
|
114
|
-
</View>
|
|
115
|
-
) : (
|
|
116
|
-
GlobalFeedHeaderComponent
|
|
117
|
-
)
|
|
118
|
-
}
|
|
119
|
-
viewabilityConfig={{ viewAreaCoveragePercentThreshold: 60 }}
|
|
124
|
+
ListHeaderComponent={listHeaderComponent}
|
|
125
|
+
viewabilityConfig={viewabilityConfig}
|
|
120
126
|
onViewableItemsChanged={handleViewChange}
|
|
121
127
|
extraData={itemWithAds}
|
|
122
128
|
/>
|
|
@@ -50,14 +50,21 @@ export const useCustomRankingGlobalFeed = ({
|
|
|
50
50
|
getItemId: (item) => (item as Amity.Post).postId.toString(),
|
|
51
51
|
});
|
|
52
52
|
|
|
53
|
+
const hasInitialDataRef = useRef(false);
|
|
54
|
+
|
|
53
55
|
const fetchCustomRanking = useCallback(() => {
|
|
54
56
|
if (!isConnected) return null;
|
|
55
57
|
|
|
58
|
+
hasInitialDataRef.current = false;
|
|
59
|
+
|
|
56
60
|
return FeedRepository.getGlobalFeed(
|
|
57
61
|
{ limit: globalFeedPageLimit },
|
|
58
62
|
({ data, loading: isLoading, error: $error, onNextPage }) => {
|
|
59
63
|
if (isLoading) {
|
|
60
|
-
|
|
64
|
+
// Only show loading state on initial fetch, not on pagination
|
|
65
|
+
if (!hasInitialDataRef.current) {
|
|
66
|
+
setFetching(true);
|
|
67
|
+
}
|
|
61
68
|
return;
|
|
62
69
|
}
|
|
63
70
|
|
|
@@ -76,6 +83,7 @@ export const useCustomRankingGlobalFeed = ({
|
|
|
76
83
|
InteractionManager.runAfterInteractions(() => {
|
|
77
84
|
dispatch(setNewGlobalFeed(filtered));
|
|
78
85
|
setFetching(false);
|
|
86
|
+
hasInitialDataRef.current = true;
|
|
79
87
|
interactionHandleRef.current = null;
|
|
80
88
|
});
|
|
81
89
|
} else {
|
|
@@ -102,6 +110,7 @@ export const useCustomRankingGlobalFeed = ({
|
|
|
102
110
|
interactionHandleRef.current?.cancel();
|
|
103
111
|
interactionHandleRef.current = null;
|
|
104
112
|
onNextPageRef.current = null;
|
|
113
|
+
hasInitialDataRef.current = false;
|
|
105
114
|
|
|
106
115
|
unsubscribeRef.current = fetchCustomRanking();
|
|
107
116
|
}, [fetchCustomRanking]);
|