@zezosoft/zezo-ott-react-native-ui-kit 1.1.2 → 1.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/lib/module/components/Auth/QrLogin/QrLogin.js +304 -138
  2. package/lib/module/components/Auth/QrLogin/QrLogin.js.map +1 -1
  3. package/lib/module/components/Auth/QrLogin/components/QrViewArea.js +193 -141
  4. package/lib/module/components/Auth/QrLogin/components/QrViewArea.js.map +1 -1
  5. package/lib/module/components/Content/Card/Category/Category.js +83 -11
  6. package/lib/module/components/Content/Card/Category/Category.js.map +1 -1
  7. package/lib/module/components/Content/Card/NowWatching/NowWatching.js +237 -108
  8. package/lib/module/components/Content/Card/NowWatching/NowWatching.js.map +1 -1
  9. package/lib/module/components/Content/Card/Sliders/Styles/One.js +185 -126
  10. package/lib/module/components/Content/Card/Sliders/Styles/One.js.map +1 -1
  11. package/lib/module/components/Content/Card/Sliders/Styles/Two.js +139 -92
  12. package/lib/module/components/Content/Card/Sliders/Styles/Two.js.map +1 -1
  13. package/lib/module/components/Content/Card/Styles/Five.js +131 -48
  14. package/lib/module/components/Content/Card/Styles/Five.js.map +1 -1
  15. package/lib/module/components/Content/Card/Styles/Four.js +126 -59
  16. package/lib/module/components/Content/Card/Styles/Four.js.map +1 -1
  17. package/lib/module/components/Content/Card/Styles/One.js +125 -50
  18. package/lib/module/components/Content/Card/Styles/One.js.map +1 -1
  19. package/lib/module/components/Content/Card/Styles/RotateInOut.js +138 -53
  20. package/lib/module/components/Content/Card/Styles/RotateInOut.js.map +1 -1
  21. package/lib/module/components/Content/Card/Styles/Six.js +207 -115
  22. package/lib/module/components/Content/Card/Styles/Six.js.map +1 -1
  23. package/lib/module/components/Content/Card/Styles/Three.js +134 -79
  24. package/lib/module/components/Content/Card/Styles/Three.js.map +1 -1
  25. package/lib/module/components/Content/Card/Styles/TopTen.js +186 -171
  26. package/lib/module/components/Content/Card/Styles/TopTen.js.map +1 -1
  27. package/lib/module/components/Content/Card/Styles/Two.js +144 -64
  28. package/lib/module/components/Content/Card/Styles/Two.js.map +1 -1
  29. package/lib/module/components/Content/Card/components/AdsPoster.js +162 -0
  30. package/lib/module/components/Content/Card/components/AdsPoster.js.map +1 -0
  31. package/lib/module/components/Content/Card/components/CardPoster.js +120 -136
  32. package/lib/module/components/Content/Card/components/CardPoster.js.map +1 -1
  33. package/lib/module/components/Content/Card/components/index.js +4 -0
  34. package/lib/module/components/Content/Card/components/index.js.map +1 -0
  35. package/lib/module/components/Content/Content.js +67 -27
  36. package/lib/module/components/Content/Content.js.map +1 -1
  37. package/lib/module/components/Content/Sections.js +32 -11
  38. package/lib/module/components/Content/Sections.js.map +1 -1
  39. package/lib/module/constants/dummySections.js +44 -4
  40. package/lib/module/constants/dummySections.js.map +1 -1
  41. package/lib/module/hooks/Images/index.js +5 -0
  42. package/lib/module/hooks/Images/index.js.map +1 -0
  43. package/lib/module/hooks/Images/useImageLoader.js +168 -0
  44. package/lib/module/hooks/Images/useImageLoader.js.map +1 -0
  45. package/lib/module/hooks/Images/useImageValidation.js +36 -0
  46. package/lib/module/hooks/Images/useImageValidation.js.map +1 -0
  47. package/lib/module/hooks/index.js +3 -0
  48. package/lib/module/hooks/index.js.map +1 -1
  49. package/lib/module/hooks/useAdTracking.js +270 -0
  50. package/lib/module/hooks/useAdTracking.js.map +1 -0
  51. package/lib/module/hooks/useCards.js +164 -0
  52. package/lib/module/hooks/useCards.js.map +1 -0
  53. package/lib/module/hooks/usePaginatedSection.js +11 -6
  54. package/lib/module/hooks/usePaginatedSection.js.map +1 -1
  55. package/lib/typescript/src/components/Auth/QrLogin/QrLogin.d.ts +2 -0
  56. package/lib/typescript/src/components/Auth/QrLogin/QrLogin.d.ts.map +1 -1
  57. package/lib/typescript/src/components/Auth/QrLogin/components/QrViewArea.d.ts.map +1 -1
  58. package/lib/typescript/src/components/Content/Card/Category/Category.d.ts.map +1 -1
  59. package/lib/typescript/src/components/Content/Card/NowWatching/NowWatching.d.ts.map +1 -1
  60. package/lib/typescript/src/components/Content/Card/Sliders/Styles/One.d.ts.map +1 -1
  61. package/lib/typescript/src/components/Content/Card/Sliders/Styles/Two.d.ts.map +1 -1
  62. package/lib/typescript/src/components/Content/Card/Styles/Five.d.ts +13 -1
  63. package/lib/typescript/src/components/Content/Card/Styles/Five.d.ts.map +1 -1
  64. package/lib/typescript/src/components/Content/Card/Styles/Four.d.ts +13 -1
  65. package/lib/typescript/src/components/Content/Card/Styles/Four.d.ts.map +1 -1
  66. package/lib/typescript/src/components/Content/Card/Styles/One.d.ts +15 -3
  67. package/lib/typescript/src/components/Content/Card/Styles/One.d.ts.map +1 -1
  68. package/lib/typescript/src/components/Content/Card/Styles/RotateInOut.d.ts +13 -1
  69. package/lib/typescript/src/components/Content/Card/Styles/RotateInOut.d.ts.map +1 -1
  70. package/lib/typescript/src/components/Content/Card/Styles/Six.d.ts +1 -0
  71. package/lib/typescript/src/components/Content/Card/Styles/Six.d.ts.map +1 -1
  72. package/lib/typescript/src/components/Content/Card/Styles/Three.d.ts +13 -5
  73. package/lib/typescript/src/components/Content/Card/Styles/Three.d.ts.map +1 -1
  74. package/lib/typescript/src/components/Content/Card/Styles/TopTen.d.ts +1 -0
  75. package/lib/typescript/src/components/Content/Card/Styles/TopTen.d.ts.map +1 -1
  76. package/lib/typescript/src/components/Content/Card/Styles/Two.d.ts +13 -1
  77. package/lib/typescript/src/components/Content/Card/Styles/Two.d.ts.map +1 -1
  78. package/lib/typescript/src/components/Content/Card/components/AdsPoster.d.ts +26 -0
  79. package/lib/typescript/src/components/Content/Card/components/AdsPoster.d.ts.map +1 -0
  80. package/lib/typescript/src/components/Content/Card/components/CardPoster.d.ts +3 -1
  81. package/lib/typescript/src/components/Content/Card/components/CardPoster.d.ts.map +1 -1
  82. package/lib/typescript/src/components/Content/Card/components/index.d.ts +2 -0
  83. package/lib/typescript/src/components/Content/Card/components/index.d.ts.map +1 -0
  84. package/lib/typescript/src/components/Content/Card/index.d.ts +76 -6
  85. package/lib/typescript/src/components/Content/Card/index.d.ts.map +1 -1
  86. package/lib/typescript/src/components/Content/Content.d.ts +4 -3
  87. package/lib/typescript/src/components/Content/Content.d.ts.map +1 -1
  88. package/lib/typescript/src/components/Content/Sections.d.ts +20 -6
  89. package/lib/typescript/src/components/Content/Sections.d.ts.map +1 -1
  90. package/lib/typescript/src/constants/dummySections.d.ts +5 -0
  91. package/lib/typescript/src/constants/dummySections.d.ts.map +1 -1
  92. package/lib/typescript/src/hooks/Images/index.d.ts +3 -0
  93. package/lib/typescript/src/hooks/Images/index.d.ts.map +1 -0
  94. package/lib/typescript/src/hooks/Images/useImageLoader.d.ts +36 -0
  95. package/lib/typescript/src/hooks/Images/useImageLoader.d.ts.map +1 -0
  96. package/lib/typescript/src/hooks/Images/useImageValidation.d.ts +17 -0
  97. package/lib/typescript/src/hooks/Images/useImageValidation.d.ts.map +1 -0
  98. package/lib/typescript/src/hooks/index.d.ts +3 -0
  99. package/lib/typescript/src/hooks/index.d.ts.map +1 -1
  100. package/lib/typescript/src/hooks/useAdTracking.d.ts +39 -0
  101. package/lib/typescript/src/hooks/useAdTracking.d.ts.map +1 -0
  102. package/lib/typescript/src/hooks/useCards.d.ts +36 -0
  103. package/lib/typescript/src/hooks/useCards.d.ts.map +1 -0
  104. package/lib/typescript/src/hooks/usePaginatedSection.d.ts +12 -2
  105. package/lib/typescript/src/hooks/usePaginatedSection.d.ts.map +1 -1
  106. package/lib/typescript/src/types/sections/index.d.ts +7 -4
  107. package/lib/typescript/src/types/sections/index.d.ts.map +1 -1
  108. package/package.json +6 -3
  109. package/src/components/Auth/QrLogin/QrLogin.tsx +382 -122
  110. package/src/components/Auth/QrLogin/components/QrViewArea.tsx +291 -197
  111. package/src/components/Content/Card/Category/Category.tsx +95 -8
  112. package/src/components/Content/Card/NowWatching/NowWatching.tsx +281 -136
  113. package/src/components/Content/Card/Sliders/Styles/One.tsx +244 -148
  114. package/src/components/Content/Card/Sliders/Styles/Two.tsx +171 -102
  115. package/src/components/Content/Card/Styles/Five.tsx +161 -62
  116. package/src/components/Content/Card/Styles/Four.tsx +164 -85
  117. package/src/components/Content/Card/Styles/One.tsx +161 -71
  118. package/src/components/Content/Card/Styles/RotateInOut.tsx +157 -60
  119. package/src/components/Content/Card/Styles/Six.tsx +242 -142
  120. package/src/components/Content/Card/Styles/Three.tsx +166 -133
  121. package/src/components/Content/Card/Styles/TopTen.tsx +230 -191
  122. package/src/components/Content/Card/Styles/Two.tsx +182 -79
  123. package/src/components/Content/Card/components/AdsPoster.tsx +202 -0
  124. package/src/components/Content/Card/components/CardPoster.tsx +134 -154
  125. package/src/components/Content/Card/components/index.ts +1 -0
  126. package/src/components/Content/Content.tsx +83 -45
  127. package/src/components/Content/Sections.tsx +51 -10
  128. package/src/constants/dummySections.ts +48 -1
  129. package/src/hooks/Images/index.ts +2 -0
  130. package/src/hooks/Images/useImageLoader.ts +206 -0
  131. package/src/hooks/Images/useImageValidation.ts +36 -0
  132. package/src/hooks/index.ts +3 -0
  133. package/src/hooks/useAdTracking.ts +349 -0
  134. package/src/hooks/useCards.ts +228 -0
  135. package/src/hooks/usePaginatedSection.ts +26 -7
  136. package/src/types/sections/index.ts +7 -4
@@ -10,51 +10,88 @@ import { View, FlatList, TouchableOpacity, StyleSheet } from 'react-native';
10
10
  import SkeletonPlaceholder from 'react-native-skeleton-placeholder';
11
11
  import FastImage from 'react-native-fast-image';
12
12
  import { moderateScale, verticalScale } from 'react-native-size-matters';
13
+ import { RFValue } from 'react-native-responsive-fontsize';
13
14
  import { useInternalTheme } from "../../../../theme/hook/useInternalTheme.js";
14
15
  import CardPoster from "../components/CardPoster.js";
15
16
  import NavigateToMore from "../components/NavigateToMore.js";
16
- import { usePaginatedSection } from "../../../../hooks/usePaginatedSection.js";
17
- import { RFValue } from 'react-native-responsive-fontsize';
18
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
17
+ import { AdsPoster } from "../components/index.js";
18
+ import { useCards } from "../../../../hooks/index.js";
19
+
19
20
  // Constants
21
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
20
22
  const DEFAULT_ITEM_WIDTH = moderateScale(105);
21
23
  const DEFAULT_ITEM_HEIGHT = moderateScale(160);
22
24
  const DEFAULT_BORDER_RADIUS = moderateScale(6);
23
25
  const DEFAULT_SKELETON_COUNT = 5;
26
+ const END_REACHED_THRESHOLD = 0.5;
27
+ const SKELETON_TITLE_WIDTH = moderateScale(100);
28
+ const SKELETON_TITLE_HEIGHT = verticalScale(14);
29
+ const SKELETON_TITLE_BORDER_RADIUS = moderateScale(4);
30
+ const SKELETON_ITEM_MARGIN = moderateScale(12);
31
+ const ITEM_ACTIVE_OPACITY = 0.8;
32
+
33
+ // Types
34
+
35
+ // Main Component
24
36
  const MovieCard = ({
25
37
  title,
26
38
  section_id,
27
39
  type,
28
- data: initialData,
40
+ data: externalData,
29
41
  moreFetchData,
30
- onPressMore,
31
42
  onPressItem,
43
+ onPressMore,
32
44
  renderItemImage,
33
45
  itemWidth = DEFAULT_ITEM_WIDTH,
34
46
  itemHeight = DEFAULT_ITEM_HEIGHT,
35
47
  borderRadius = DEFAULT_BORDER_RADIUS,
36
48
  skeletonCount = DEFAULT_SKELETON_COUNT,
49
+ paginationSkeletonCount,
37
50
  containerStyle,
38
51
  titleStyle,
39
52
  itemStyle,
40
53
  isLoading = false,
41
54
  theme,
42
55
  accessibilityLabel,
43
- accessibilityHint
56
+ accessibilityHint,
57
+ onDisplayAds,
58
+ screenDimensions,
59
+ viewportOffsets
44
60
  }) => {
61
+ // Refs
45
62
  const flatListRef = useRef(null);
63
+ const containerRef = useRef(null);
46
64
  const onEndReachedCalledDuringMomentum = useRef(false);
65
+
66
+ // Theme
47
67
  const {
48
68
  theme: appliedTheme
49
69
  } = useInternalTheme(theme);
70
+
71
+ // Styles
50
72
  const styles = useMemo(() => getStyles(appliedTheme, itemWidth, itemHeight, borderRadius), [appliedTheme, itemWidth, itemHeight, borderRadius]);
73
+
74
+ // Data Management
51
75
  const {
52
- data,
76
+ listData,
53
77
  pagination,
54
- loading: isPaginating,
55
- loadMoreData
56
- } = usePaginatedSection(section_id, moreFetchData, initialData?.data || [], isLoading);
57
- const handleItemPress = useCallback(item => onPressItem?.(item), [onPressItem]);
78
+ loadMore,
79
+ isEmpty,
80
+ isPaging: isPaginating
81
+ } = useCards({
82
+ sectionId: section_id,
83
+ data: externalData,
84
+ fetchMore: moreFetchData,
85
+ loading: isLoading,
86
+ initialSkeleton: skeletonCount,
87
+ pagingSkeleton: paginationSkeletonCount,
88
+ adsRender: true
89
+ });
90
+
91
+ // Event Handlers
92
+ const handleItemPress = useCallback(item => {
93
+ onPressItem?.(item);
94
+ }, [onPressItem]);
58
95
  const handlePressMore = useCallback(() => {
59
96
  onPressMore?.({
60
97
  section_id,
@@ -65,32 +102,67 @@ const MovieCard = ({
65
102
  const handleEndReached = useCallback(() => {
66
103
  if (!onEndReachedCalledDuringMomentum.current && pagination?.hasNextPage && pagination?.nextPage) {
67
104
  onEndReachedCalledDuringMomentum.current = true;
68
- loadMoreData(pagination.nextPage);
105
+ loadMore(pagination.nextPage);
69
106
  }
70
- }, [loadMoreData, pagination]);
107
+ }, [pagination, loadMore]);
108
+ const handleMomentumScrollBegin = useCallback(() => {
109
+ onEndReachedCalledDuringMomentum.current = false;
110
+ }, []);
111
+
112
+ // Render Functions
71
113
  const renderItem = useCallback(({
72
114
  item,
73
115
  index
74
116
  }) => {
117
+ // Handle ads
118
+ if ('type' in item && item.type === 'ads') {
119
+ const adItem = item;
120
+ return /*#__PURE__*/_jsx(View, {
121
+ style: [styles.item, itemStyle],
122
+ children: /*#__PURE__*/_jsx(AdsPoster, {
123
+ ad: adItem,
124
+ theme: appliedTheme,
125
+ isLoading: isLoading,
126
+ containerStyle: {
127
+ width: itemWidth,
128
+ height: itemHeight
129
+ },
130
+ imageStyle: styles.image,
131
+ onPress: () => handleItemPress(adItem),
132
+ borderRadius: borderRadius,
133
+ onDisplayAds: onDisplayAds,
134
+ screenDimensions: screenDimensions,
135
+ viewportOffsets: viewportOffsets
136
+ })
137
+ }, `ad-${adItem.tracking?.impression || index}`);
138
+ }
139
+
140
+ // Handle content items
141
+ const contentItem = item;
142
+ const isSkeleton = contentItem._id?.startsWith?.('pagination-skeleton') ?? false;
75
143
  return /*#__PURE__*/_jsx(TouchableOpacity, {
76
144
  style: [styles.item, itemStyle],
77
- onPress: () => handleItemPress(item),
78
- activeOpacity: 0.8,
145
+ activeOpacity: ITEM_ACTIVE_OPACITY,
146
+ onPress: () => {
147
+ if (!isSkeleton && !isLoading) {
148
+ handleItemPress(contentItem);
149
+ }
150
+ },
79
151
  children: renderItemImage ? renderItemImage({
80
152
  item,
81
153
  index
82
154
  }) : /*#__PURE__*/_jsx(CardPoster, {
83
- content_offering_type: item.content_offering_type,
84
- posterUri: item.poster,
155
+ posterUri: contentItem.poster,
156
+ content_offering_type: contentItem.content_offering_type,
85
157
  theme: appliedTheme,
86
158
  borderRadius: borderRadius,
87
159
  posterWrapperStyle: styles.image,
88
160
  resizeMode: FastImage.resizeMode.cover,
89
- isLoading: isLoading
90
- }, item._id)
91
- }, item._id);
92
- }, [styles.item, styles.image, itemStyle, renderItemImage, appliedTheme, borderRadius, isLoading, handleItemPress]);
93
- const renderSkeletonItem = ({
161
+ isLoading: isSkeleton || isLoading
162
+ })
163
+ }, contentItem._id);
164
+ }, [styles.item, styles.image, itemStyle, renderItemImage, appliedTheme, borderRadius, isLoading, itemWidth, itemHeight, onDisplayAds, screenDimensions, viewportOffsets, handleItemPress]);
165
+ const renderSkeletonItem = useCallback(({
94
166
  index
95
167
  }) => /*#__PURE__*/_jsx(SkeletonPlaceholder, {
96
168
  highlightColor: appliedTheme.colors.skeletonHighlightColor,
@@ -99,32 +171,39 @@ const MovieCard = ({
99
171
  width: itemWidth,
100
172
  height: itemHeight,
101
173
  borderRadius: borderRadius,
102
- marginLeft: index === 0 ? moderateScale(12) : 0,
103
- marginRight: moderateScale(12)
174
+ marginLeft: index === 0 ? SKELETON_ITEM_MARGIN : 0,
175
+ marginRight: SKELETON_ITEM_MARGIN
104
176
  })
105
- }, `skeleton-${index}`);
106
- if (!initialData) {
107
- return null;
108
- }
109
- if (!isLoading && data.length === 0) return null;
177
+ }, `skeleton-${index}`), [appliedTheme, itemWidth, itemHeight, borderRadius]);
178
+ const keyExtractor = useCallback((item, index) => {
179
+ if ('type' in item && item.type === 'ads') {
180
+ return `ad-${item.tracking?.impression || index}`;
181
+ }
182
+ return item._id || `item-${index}`;
183
+ }, []);
184
+
185
+ // Early Returns
186
+ if (!externalData) return null;
187
+ if (!isLoading && listData.length === 0 && !isEmpty) return null;
188
+
189
+ // Loading State
110
190
  if (isLoading) {
111
191
  return /*#__PURE__*/_jsxs(View, {
112
192
  style: [styles.root, containerStyle],
113
- testID: `movie-card-skeleton-${section_id}`,
114
193
  children: [/*#__PURE__*/_jsx(SkeletonPlaceholder, {
115
194
  highlightColor: appliedTheme.colors.skeletonHighlightColor,
116
195
  backgroundColor: appliedTheme.colors.skeletonBaseColor,
117
196
  children: /*#__PURE__*/_jsx(SkeletonPlaceholder.Item, {
118
- width: moderateScale(100),
119
- height: verticalScale(14),
120
- borderRadius: moderateScale(4),
121
- marginLeft: moderateScale(12),
197
+ width: SKELETON_TITLE_WIDTH,
198
+ height: SKELETON_TITLE_HEIGHT,
199
+ borderRadius: SKELETON_TITLE_BORDER_RADIUS,
200
+ marginLeft: SKELETON_ITEM_MARGIN,
122
201
  marginBottom: verticalScale(6)
123
202
  })
124
203
  }), /*#__PURE__*/_jsx(FlatList, {
125
204
  data: Array.from({
126
205
  length: skeletonCount
127
- }, () => null),
206
+ }),
128
207
  horizontal: true,
129
208
  keyExtractor: (_, index) => `skeleton-${index}`,
130
209
  renderItem: renderSkeletonItem,
@@ -133,11 +212,14 @@ const MovieCard = ({
133
212
  })]
134
213
  });
135
214
  }
215
+
216
+ // Main Render
136
217
  return /*#__PURE__*/_jsxs(View, {
218
+ ref: containerRef,
137
219
  style: [styles.root, containerStyle],
138
- testID: `movie-card-${section_id}`,
139
220
  accessibilityLabel: accessibilityLabel || `Movie section: ${title}`,
140
- accessibilityHint: accessibilityHint || 'Scroll to view movies',
221
+ accessibilityHint: accessibilityHint || 'Scroll to view items',
222
+ testID: `movie-card-${section_id}`,
141
223
  children: [/*#__PURE__*/_jsx(NavigateToMore, {
142
224
  title: title,
143
225
  onPress: handlePressMore,
@@ -151,27 +233,23 @@ const MovieCard = ({
151
233
  }
152
234
  }), /*#__PURE__*/_jsx(FlatList, {
153
235
  ref: flatListRef,
154
- data: data,
236
+ data: listData,
155
237
  horizontal: true,
156
- keyExtractor: (item, index) => item._id ? item._id : `item-${index}`,
238
+ keyExtractor: keyExtractor,
157
239
  renderItem: renderItem,
158
240
  showsHorizontalScrollIndicator: false,
159
241
  contentContainerStyle: styles.listContent,
160
- initialNumToRender: 5,
161
242
  onEndReached: handleEndReached,
162
- onEndReachedThreshold: 0.5,
163
- onScrollBeginDrag: () => {
164
- onEndReachedCalledDuringMomentum.current = false;
165
- },
166
- onMomentumScrollBegin: () => {
167
- onEndReachedCalledDuringMomentum.current = false;
168
- },
243
+ onEndReachedThreshold: END_REACHED_THRESHOLD,
244
+ onMomentumScrollBegin: handleMomentumScrollBegin,
169
245
  ListFooterComponent: isPaginating ? renderSkeletonItem({
170
246
  index: 0
171
247
  }) : null
172
248
  })]
173
249
  });
174
250
  };
251
+
252
+ // Styles
175
253
  const getStyles = (theme, width, height, radius) => StyleSheet.create({
176
254
  root: {
177
255
  marginVertical: verticalScale(6)
@@ -185,9 +263,6 @@ const getStyles = (theme, width, height, radius) => StyleSheet.create({
185
263
  borderRadius: radius,
186
264
  backgroundColor: theme.colors.surfaceVariant
187
265
  },
188
- imageWrapper: {
189
- position: 'relative'
190
- },
191
266
  navigateToMoreContainer: {
192
267
  paddingHorizontal: moderateScale(10),
193
268
  marginBottom: verticalScale(8)
@@ -1 +1 @@
1
- {"version":3,"names":["React","memo","useCallback","useMemo","useRef","View","FlatList","TouchableOpacity","StyleSheet","SkeletonPlaceholder","FastImage","moderateScale","verticalScale","useInternalTheme","CardPoster","NavigateToMore","usePaginatedSection","RFValue","jsx","_jsx","jsxs","_jsxs","DEFAULT_ITEM_WIDTH","DEFAULT_ITEM_HEIGHT","DEFAULT_BORDER_RADIUS","DEFAULT_SKELETON_COUNT","MovieCard","title","section_id","type","data","initialData","moreFetchData","onPressMore","onPressItem","renderItemImage","itemWidth","itemHeight","borderRadius","skeletonCount","containerStyle","titleStyle","itemStyle","isLoading","theme","accessibilityLabel","accessibilityHint","flatListRef","onEndReachedCalledDuringMomentum","appliedTheme","styles","getStyles","pagination","loading","isPaginating","loadMoreData","handleItemPress","item","handlePressMore","name","handleEndReached","current","hasNextPage","nextPage","renderItem","index","style","onPress","activeOpacity","children","content_offering_type","posterUri","poster","posterWrapperStyle","image","resizeMode","cover","_id","renderSkeletonItem","highlightColor","colors","skeletonHighlightColor","backgroundColor","skeletonBaseColor","Item","width","height","marginLeft","marginRight","length","root","testID","marginBottom","Array","from","horizontal","keyExtractor","_","showsHorizontalScrollIndicator","contentContainerStyle","listContent","color","textPrimary","navigateToMoreContainer","showAllProps","iconColor","ref","initialNumToRender","onEndReached","onEndReachedThreshold","onScrollBeginDrag","onMomentumScrollBegin","ListFooterComponent","radius","create","marginVertical","surfaceVariant","imageWrapper","position","paddingHorizontal","fontSize","fontWeight","paddingRight"],"sourceRoot":"../../../../../../src","sources":["components/Content/Card/Styles/One.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","memo","useCallback","useMemo","useRef","View","FlatList","TouchableOpacity","StyleSheet","SkeletonPlaceholder","FastImage","moderateScale","verticalScale","RFValue","useInternalTheme","CardPoster","NavigateToMore","AdsPoster","useCards","jsx","_jsx","jsxs","_jsxs","DEFAULT_ITEM_WIDTH","DEFAULT_ITEM_HEIGHT","DEFAULT_BORDER_RADIUS","DEFAULT_SKELETON_COUNT","END_REACHED_THRESHOLD","SKELETON_TITLE_WIDTH","SKELETON_TITLE_HEIGHT","SKELETON_TITLE_BORDER_RADIUS","SKELETON_ITEM_MARGIN","ITEM_ACTIVE_OPACITY","MovieCard","title","section_id","type","data","externalData","moreFetchData","onPressItem","onPressMore","renderItemImage","itemWidth","itemHeight","borderRadius","skeletonCount","paginationSkeletonCount","containerStyle","titleStyle","itemStyle","isLoading","theme","accessibilityLabel","accessibilityHint","onDisplayAds","screenDimensions","viewportOffsets","flatListRef","containerRef","onEndReachedCalledDuringMomentum","appliedTheme","styles","getStyles","listData","pagination","loadMore","isEmpty","isPaging","isPaginating","sectionId","fetchMore","loading","initialSkeleton","pagingSkeleton","adsRender","handleItemPress","item","handlePressMore","name","handleEndReached","current","hasNextPage","nextPage","handleMomentumScrollBegin","renderItem","index","adItem","style","children","ad","width","height","imageStyle","image","onPress","tracking","impression","contentItem","isSkeleton","_id","startsWith","activeOpacity","posterUri","poster","content_offering_type","posterWrapperStyle","resizeMode","cover","renderSkeletonItem","highlightColor","colors","skeletonHighlightColor","backgroundColor","skeletonBaseColor","Item","marginLeft","marginRight","keyExtractor","length","root","marginBottom","Array","from","horizontal","_","showsHorizontalScrollIndicator","contentContainerStyle","listContent","ref","testID","color","textPrimary","navigateToMoreContainer","showAllProps","iconColor","onEndReached","onEndReachedThreshold","onMomentumScrollBegin","ListFooterComponent","radius","create","marginVertical","surfaceVariant","paddingHorizontal","fontSize","fontWeight","paddingRight"],"sourceRoot":"../../../../../../src","sources":["components/Content/Card/Styles/One.tsx"],"mappings":"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","ignoreList":[]}
@@ -15,19 +15,45 @@ import { debounce } from 'lodash';
15
15
  import { useInternalTheme } from "../../../../theme/hook/useInternalTheme.js";
16
16
  import CardPoster from "../components/CardPoster.js";
17
17
  import NavigateToMore from "../components/NavigateToMore.js";
18
- import { usePaginatedSection } from "../../../../hooks/usePaginatedSection.js";
18
+ import { AdsPoster } from "../components/index.js";
19
19
  import { useSkeletonItems } from "../../../../hooks/useSkeletonItems.js";
20
20
  import { RFValue } from 'react-native-responsive-fontsize';
21
+ import { useCards } from "../../../../hooks/index.js";
22
+
23
+ // Constants
21
24
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
22
25
  const {
23
26
  width,
24
27
  height
25
28
  } = Dimensions.get('window');
26
- const DEFAULT_ITEM_WIDTH = width * 0.42;
27
- const DEFAULT_ITEM_HEIGHT = height * 0.28;
29
+ const ITEM_WIDTH_RATIO = 0.42;
30
+ const ITEM_HEIGHT_RATIO = 0.28;
31
+ const DEFAULT_ITEM_WIDTH = width * ITEM_WIDTH_RATIO;
32
+ const DEFAULT_ITEM_HEIGHT = height * ITEM_HEIGHT_RATIO;
28
33
  const DEFAULT_BORDER_RADIUS = moderateScale(10);
34
+ const DEFAULT_SKELETON_COUNT = 5;
35
+ const DEBOUNCE_DELAY = 300;
36
+ const ITEM_ACTIVE_OPACITY = 0.8;
37
+ const CAROUSEL_FIRST_ITEM = 1;
38
+ const CAROUSEL_INACTIVE_OPACITY = 0.6;
39
+ const CAROUSEL_INACTIVE_SCALE = 0.9;
40
+ const PAGINATION_TRIGGER_OFFSET = 2;
41
+ const SKELETON_TITLE_WIDTH = moderateScale(100);
42
+ const SKELETON_TITLE_HEIGHT = verticalScale(14);
43
+ const SKELETON_TITLE_BORDER_RADIUS = moderateScale(4);
44
+ const SKELETON_TITLE_MARGIN_LEFT = moderateScale(12);
45
+ const SKELETON_TITLE_MARGIN_BOTTOM = verticalScale(6);
46
+ const SKELETON_ITEM_MARGIN_RIGHT = moderateScale(12);
47
+ const DEFAULT_SKELETON_BACKGROUND_COLOR = '#222';
48
+ const SHADOW_ELEVATION = 0;
49
+ const SHADOW_OFFSET = {
50
+ width: 0,
51
+ height: 0
52
+ };
53
+ const SHADOW_OPACITY = 0;
54
+ const SHADOW_RADIUS = 0;
29
55
 
30
- // Static styles defined outside getStyles to avoid recalculation
56
+ // Static Styles
31
57
  const staticStyles = StyleSheet.create({
32
58
  root: {
33
59
  marginVertical: verticalScale(6)
@@ -43,11 +69,15 @@ const staticStyles = StyleSheet.create({
43
69
  marginVertical: moderateScale(5)
44
70
  }
45
71
  });
72
+
73
+ // Types
74
+
75
+ // Main Component
46
76
  const RotateCarousel = ({
47
77
  title,
48
78
  section_id,
49
79
  type,
50
- data: initialData,
80
+ data: externalData,
51
81
  moreFetchData,
52
82
  onPressMore,
53
83
  onPressItem,
@@ -55,64 +85,80 @@ const RotateCarousel = ({
55
85
  itemWidth = DEFAULT_ITEM_WIDTH,
56
86
  itemHeight = DEFAULT_ITEM_HEIGHT,
57
87
  borderRadius = DEFAULT_BORDER_RADIUS,
58
- skeletonCount = 5,
88
+ skeletonCount = DEFAULT_SKELETON_COUNT,
59
89
  containerStyle,
60
90
  titleStyle,
91
+ paginationSkeletonCount,
61
92
  itemStyle,
62
93
  isLoading = false,
63
- theme
94
+ theme,
95
+ onDisplayAds,
96
+ screenDimensions,
97
+ viewportOffsets
64
98
  }) => {
99
+ // Refs
100
+ const carouselRef = useRef(null);
101
+
102
+ // Theme
65
103
  const {
66
104
  theme: appliedTheme
67
105
  } = useInternalTheme(theme);
68
- const carouselRef = useRef(null);
69
106
 
70
- // Memoized dynamic styles
107
+ // Styles
71
108
  const styles = useMemo(() => StyleSheet.create({
72
109
  item: {
73
110
  width: itemWidth,
74
111
  height: itemHeight,
75
112
  borderRadius,
76
113
  overflow: 'hidden',
77
- elevation: 0,
114
+ elevation: SHADOW_ELEVATION,
78
115
  shadowColor: 'transparent',
79
- shadowOffset: {
80
- width: 0,
81
- height: 0
82
- },
83
- shadowOpacity: 0,
84
- shadowRadius: 0
116
+ shadowOffset: SHADOW_OFFSET,
117
+ shadowOpacity: SHADOW_OPACITY,
118
+ shadowRadius: SHADOW_RADIUS
85
119
  },
86
120
  image: {
87
121
  width: '100%',
88
122
  height: '100%',
89
- backgroundColor: appliedTheme.colors.skeletonBaseColor ?? '#222'
123
+ backgroundColor: appliedTheme.colors.skeletonBaseColor ?? DEFAULT_SKELETON_BACKGROUND_COLOR
90
124
  },
91
125
  skeleton: {
92
126
  width: itemWidth,
93
127
  height: itemHeight,
94
128
  borderRadius,
95
129
  overflow: 'hidden',
96
- marginRight: moderateScale(12)
130
+ marginRight: SKELETON_ITEM_MARGIN_RIGHT
97
131
  }
98
132
  }), [appliedTheme.colors.skeletonBaseColor, itemWidth, itemHeight, borderRadius]);
133
+
134
+ // Data Management
99
135
  const {
100
- data,
101
- loading: isPaginating,
136
+ listData,
102
137
  pagination,
103
- loadMoreData
104
- } = usePaginatedSection(section_id, moreFetchData, initialData?.data || [], isLoading);
138
+ loadMore,
139
+ isEmpty,
140
+ isPaging: isPaginating
141
+ } = useCards({
142
+ sectionId: section_id,
143
+ data: externalData,
144
+ fetchMore: moreFetchData,
145
+ loading: isLoading,
146
+ initialSkeleton: skeletonCount,
147
+ pagingSkeleton: paginationSkeletonCount,
148
+ adsRender: true
149
+ });
105
150
 
106
- // Memoized skeleton items
151
+ // Skeleton Data
107
152
  const skeletonCountMemo = useMemo(() => isLoading ? skeletonCount : isPaginating ? 1 : 0, [isLoading, isPaginating, skeletonCount]);
108
153
  const skeletonItems = useSkeletonItems(skeletonCountMemo);
154
+ const finalData = useMemo(() => isLoading ? skeletonItems : skeletonItems.length > 0 ? [...listData, ...skeletonItems] : listData, [isLoading, listData, skeletonItems]);
109
155
 
110
- // Optimized finalData to avoid unnecessary spread
111
- const finalData = useMemo(() => isLoading ? skeletonItems : skeletonItems.length > 0 ? [...data, ...skeletonItems] : data, [isLoading, data, skeletonItems]);
112
- // Debounced loadMoreData to prevent excessive calls
156
+ // Debounced Functions
113
157
  const debouncedLoadMore = useMemo(() => debounce(nextPage => {
114
- return loadMoreData(nextPage);
115
- }, 300), [loadMoreData]);
158
+ return loadMore(nextPage);
159
+ }, DEBOUNCE_DELAY), [loadMore]);
160
+
161
+ // Event Handlers
116
162
  const handleItemPress = useCallback(item => {
117
163
  onPressItem?.(item);
118
164
  }, [onPressItem]);
@@ -123,10 +169,13 @@ const RotateCarousel = ({
123
169
  type
124
170
  });
125
171
  }, [onPressMore, section_id, title, type]);
172
+
173
+ // Render Functions
126
174
  const renderItem = useCallback(({
127
175
  item,
128
176
  index
129
177
  }) => {
178
+ // Handle skeleton items
130
179
  if ('isSkeleton' in item) {
131
180
  return /*#__PURE__*/_jsx(View, {
132
181
  style: styles.skeleton,
@@ -141,29 +190,70 @@ const RotateCarousel = ({
141
190
  })
142
191
  }, item._id);
143
192
  }
193
+
194
+ // Handle ads
195
+ if ('type' in item && item.type === 'ads') {
196
+ const adItem = item;
197
+ return /*#__PURE__*/_jsx(View, {
198
+ style: [styles.item, itemStyle],
199
+ children: /*#__PURE__*/_jsx(AdsPoster, {
200
+ ad: adItem,
201
+ theme: appliedTheme,
202
+ isLoading: isLoading,
203
+ containerStyle: {
204
+ width: itemWidth,
205
+ height: itemHeight
206
+ },
207
+ imageStyle: styles.image,
208
+ borderRadius: borderRadius,
209
+ onDisplayAds: onDisplayAds,
210
+ screenDimensions: screenDimensions,
211
+ viewportOffsets: viewportOffsets
212
+ })
213
+ }, `ad-${adItem.tracking?.impression || index}`);
214
+ }
215
+
216
+ // Handle content items
217
+ const contentItem = item;
218
+ const isSkeleton = contentItem._id?.startsWith?.('pagination-skeleton') ?? false;
144
219
  return /*#__PURE__*/_jsx(TouchableOpacity, {
145
- activeOpacity: 0.8,
220
+ activeOpacity: ITEM_ACTIVE_OPACITY,
146
221
  style: [styles.item, itemStyle],
147
- disabled: !item || !onPressItem || isLoading,
148
- onPress: () => handleItemPress(item),
222
+ disabled: !contentItem || !onPressItem || isLoading || isSkeleton,
223
+ onPress: () => {
224
+ if (!isSkeleton && !isLoading) {
225
+ handleItemPress(contentItem);
226
+ }
227
+ },
149
228
  children: renderItemImage ? renderItemImage({
150
- item,
229
+ item: contentItem,
151
230
  index
152
231
  }) : /*#__PURE__*/_jsx(CardPoster, {
153
- content_offering_type: item.content_offering_type,
154
- posterUri: item.poster,
232
+ content_offering_type: contentItem.content_offering_type,
233
+ posterUri: contentItem.poster,
155
234
  theme: appliedTheme,
156
235
  borderRadius: borderRadius,
157
236
  posterWrapperStyle: styles.image,
158
237
  resizeMode: FastImage.resizeMode.cover,
159
- isLoading: isLoading
238
+ isLoading: isSkeleton || isLoading
160
239
  })
161
- }, item._id || `item-${index}`);
162
- }, [styles.item, styles.image, styles.skeleton, itemStyle, onPressItem, isLoading, renderItemImage, appliedTheme, borderRadius, itemWidth, itemHeight, handleItemPress]);
163
- if (!initialData) {
240
+ }, contentItem._id || `item-${index}`);
241
+ }, [styles.item, styles.image, styles.skeleton, itemStyle, onPressItem, isLoading, renderItemImage, appliedTheme, borderRadius, itemWidth, itemHeight, handleItemPress, onDisplayAds, screenDimensions, viewportOffsets]);
242
+ const handleSnapToItem = useCallback(index => {
243
+ if (isLoading || !pagination?.hasNextPage || !pagination?.nextPage) {
244
+ return;
245
+ }
246
+ if (index >= finalData.length - PAGINATION_TRIGGER_OFFSET) {
247
+ debouncedLoadMore(pagination.nextPage);
248
+ }
249
+ }, [isLoading, pagination, finalData.length, debouncedLoadMore]);
250
+
251
+ // Early Returns
252
+ if (!externalData || !isLoading && listData.length === 0 || !isLoading && isEmpty) {
164
253
  return null;
165
254
  }
166
- if (!isLoading && (!data || data.length === 0)) return null;
255
+
256
+ // Main Render
167
257
  return /*#__PURE__*/_jsxs(View, {
168
258
  style: [staticStyles.root, containerStyle],
169
259
  testID: `movie-card-${section_id}`,
@@ -171,11 +261,11 @@ const RotateCarousel = ({
171
261
  highlightColor: appliedTheme.colors.skeletonHighlightColor,
172
262
  backgroundColor: appliedTheme.colors.skeletonBaseColor,
173
263
  children: /*#__PURE__*/_jsx(SkeletonPlaceholder.Item, {
174
- width: moderateScale(100),
175
- height: verticalScale(14),
176
- borderRadius: moderateScale(4),
177
- marginLeft: moderateScale(12),
178
- marginBottom: verticalScale(6)
264
+ width: SKELETON_TITLE_WIDTH,
265
+ height: SKELETON_TITLE_HEIGHT,
266
+ borderRadius: SKELETON_TITLE_BORDER_RADIUS,
267
+ marginLeft: SKELETON_TITLE_MARGIN_LEFT,
268
+ marginBottom: SKELETON_TITLE_MARGIN_BOTTOM
179
269
  })
180
270
  }) : /*#__PURE__*/_jsx(NavigateToMore, {
181
271
  title: title,
@@ -193,17 +283,12 @@ const RotateCarousel = ({
193
283
  data: finalData,
194
284
  vertical: false,
195
285
  renderItem: renderItem,
196
- firstItem: 2,
197
- inactiveSlideOpacity: 0.6,
198
- inactiveSlideScale: 0.9,
286
+ firstItem: CAROUSEL_FIRST_ITEM,
287
+ inactiveSlideOpacity: CAROUSEL_INACTIVE_OPACITY,
288
+ inactiveSlideScale: CAROUSEL_INACTIVE_SCALE,
199
289
  sliderWidth: width,
200
290
  itemWidth: itemWidth,
201
- onSnapToItem: index => {
202
- if (isLoading || !pagination?.hasNextPage || !pagination?.nextPage) return;
203
- if (index >= finalData.length - 2) {
204
- debouncedLoadMore(pagination.nextPage);
205
- }
206
- }
291
+ onSnapToItem: handleSnapToItem
207
292
  })]
208
293
  });
209
294
  };