@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.
- package/lib/module/components/Auth/QrLogin/QrLogin.js +304 -138
- package/lib/module/components/Auth/QrLogin/QrLogin.js.map +1 -1
- package/lib/module/components/Auth/QrLogin/components/QrViewArea.js +193 -141
- package/lib/module/components/Auth/QrLogin/components/QrViewArea.js.map +1 -1
- package/lib/module/components/Content/Card/Category/Category.js +83 -11
- package/lib/module/components/Content/Card/Category/Category.js.map +1 -1
- package/lib/module/components/Content/Card/NowWatching/NowWatching.js +237 -108
- package/lib/module/components/Content/Card/NowWatching/NowWatching.js.map +1 -1
- package/lib/module/components/Content/Card/Sliders/Styles/One.js +185 -126
- package/lib/module/components/Content/Card/Sliders/Styles/One.js.map +1 -1
- package/lib/module/components/Content/Card/Sliders/Styles/Two.js +139 -92
- package/lib/module/components/Content/Card/Sliders/Styles/Two.js.map +1 -1
- package/lib/module/components/Content/Card/Styles/Five.js +131 -48
- package/lib/module/components/Content/Card/Styles/Five.js.map +1 -1
- package/lib/module/components/Content/Card/Styles/Four.js +126 -59
- package/lib/module/components/Content/Card/Styles/Four.js.map +1 -1
- package/lib/module/components/Content/Card/Styles/One.js +125 -50
- package/lib/module/components/Content/Card/Styles/One.js.map +1 -1
- package/lib/module/components/Content/Card/Styles/RotateInOut.js +138 -53
- package/lib/module/components/Content/Card/Styles/RotateInOut.js.map +1 -1
- package/lib/module/components/Content/Card/Styles/Six.js +207 -115
- package/lib/module/components/Content/Card/Styles/Six.js.map +1 -1
- package/lib/module/components/Content/Card/Styles/Three.js +134 -79
- package/lib/module/components/Content/Card/Styles/Three.js.map +1 -1
- package/lib/module/components/Content/Card/Styles/TopTen.js +186 -171
- package/lib/module/components/Content/Card/Styles/TopTen.js.map +1 -1
- package/lib/module/components/Content/Card/Styles/Two.js +144 -64
- package/lib/module/components/Content/Card/Styles/Two.js.map +1 -1
- package/lib/module/components/Content/Card/components/AdsPoster.js +162 -0
- package/lib/module/components/Content/Card/components/AdsPoster.js.map +1 -0
- package/lib/module/components/Content/Card/components/CardPoster.js +120 -136
- package/lib/module/components/Content/Card/components/CardPoster.js.map +1 -1
- package/lib/module/components/Content/Card/components/index.js +4 -0
- package/lib/module/components/Content/Card/components/index.js.map +1 -0
- package/lib/module/components/Content/Content.js +67 -27
- package/lib/module/components/Content/Content.js.map +1 -1
- package/lib/module/components/Content/Sections.js +32 -11
- package/lib/module/components/Content/Sections.js.map +1 -1
- package/lib/module/constants/dummySections.js +44 -4
- package/lib/module/constants/dummySections.js.map +1 -1
- package/lib/module/hooks/Images/index.js +5 -0
- package/lib/module/hooks/Images/index.js.map +1 -0
- package/lib/module/hooks/Images/useImageLoader.js +168 -0
- package/lib/module/hooks/Images/useImageLoader.js.map +1 -0
- package/lib/module/hooks/Images/useImageValidation.js +36 -0
- package/lib/module/hooks/Images/useImageValidation.js.map +1 -0
- package/lib/module/hooks/index.js +3 -0
- package/lib/module/hooks/index.js.map +1 -1
- package/lib/module/hooks/useAdTracking.js +270 -0
- package/lib/module/hooks/useAdTracking.js.map +1 -0
- package/lib/module/hooks/useCards.js +164 -0
- package/lib/module/hooks/useCards.js.map +1 -0
- package/lib/module/hooks/usePaginatedSection.js +11 -6
- package/lib/module/hooks/usePaginatedSection.js.map +1 -1
- package/lib/typescript/src/components/Auth/QrLogin/QrLogin.d.ts +2 -0
- package/lib/typescript/src/components/Auth/QrLogin/QrLogin.d.ts.map +1 -1
- package/lib/typescript/src/components/Auth/QrLogin/components/QrViewArea.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/Category/Category.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/NowWatching/NowWatching.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/Sliders/Styles/One.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/Sliders/Styles/Two.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/Styles/Five.d.ts +13 -1
- package/lib/typescript/src/components/Content/Card/Styles/Five.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/Styles/Four.d.ts +13 -1
- package/lib/typescript/src/components/Content/Card/Styles/Four.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/Styles/One.d.ts +15 -3
- package/lib/typescript/src/components/Content/Card/Styles/One.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/Styles/RotateInOut.d.ts +13 -1
- package/lib/typescript/src/components/Content/Card/Styles/RotateInOut.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/Styles/Six.d.ts +1 -0
- package/lib/typescript/src/components/Content/Card/Styles/Six.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/Styles/Three.d.ts +13 -5
- package/lib/typescript/src/components/Content/Card/Styles/Three.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/Styles/TopTen.d.ts +1 -0
- package/lib/typescript/src/components/Content/Card/Styles/TopTen.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/Styles/Two.d.ts +13 -1
- package/lib/typescript/src/components/Content/Card/Styles/Two.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/components/AdsPoster.d.ts +26 -0
- package/lib/typescript/src/components/Content/Card/components/AdsPoster.d.ts.map +1 -0
- package/lib/typescript/src/components/Content/Card/components/CardPoster.d.ts +3 -1
- package/lib/typescript/src/components/Content/Card/components/CardPoster.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/components/index.d.ts +2 -0
- package/lib/typescript/src/components/Content/Card/components/index.d.ts.map +1 -0
- package/lib/typescript/src/components/Content/Card/index.d.ts +76 -6
- package/lib/typescript/src/components/Content/Card/index.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Content.d.ts +4 -3
- package/lib/typescript/src/components/Content/Content.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Sections.d.ts +20 -6
- package/lib/typescript/src/components/Content/Sections.d.ts.map +1 -1
- package/lib/typescript/src/constants/dummySections.d.ts +5 -0
- package/lib/typescript/src/constants/dummySections.d.ts.map +1 -1
- package/lib/typescript/src/hooks/Images/index.d.ts +3 -0
- package/lib/typescript/src/hooks/Images/index.d.ts.map +1 -0
- package/lib/typescript/src/hooks/Images/useImageLoader.d.ts +36 -0
- package/lib/typescript/src/hooks/Images/useImageLoader.d.ts.map +1 -0
- package/lib/typescript/src/hooks/Images/useImageValidation.d.ts +17 -0
- package/lib/typescript/src/hooks/Images/useImageValidation.d.ts.map +1 -0
- package/lib/typescript/src/hooks/index.d.ts +3 -0
- package/lib/typescript/src/hooks/index.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useAdTracking.d.ts +39 -0
- package/lib/typescript/src/hooks/useAdTracking.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useCards.d.ts +36 -0
- package/lib/typescript/src/hooks/useCards.d.ts.map +1 -0
- package/lib/typescript/src/hooks/usePaginatedSection.d.ts +12 -2
- package/lib/typescript/src/hooks/usePaginatedSection.d.ts.map +1 -1
- package/lib/typescript/src/types/sections/index.d.ts +7 -4
- package/lib/typescript/src/types/sections/index.d.ts.map +1 -1
- package/package.json +6 -3
- package/src/components/Auth/QrLogin/QrLogin.tsx +382 -122
- package/src/components/Auth/QrLogin/components/QrViewArea.tsx +291 -197
- package/src/components/Content/Card/Category/Category.tsx +95 -8
- package/src/components/Content/Card/NowWatching/NowWatching.tsx +281 -136
- package/src/components/Content/Card/Sliders/Styles/One.tsx +244 -148
- package/src/components/Content/Card/Sliders/Styles/Two.tsx +171 -102
- package/src/components/Content/Card/Styles/Five.tsx +161 -62
- package/src/components/Content/Card/Styles/Four.tsx +164 -85
- package/src/components/Content/Card/Styles/One.tsx +161 -71
- package/src/components/Content/Card/Styles/RotateInOut.tsx +157 -60
- package/src/components/Content/Card/Styles/Six.tsx +242 -142
- package/src/components/Content/Card/Styles/Three.tsx +166 -133
- package/src/components/Content/Card/Styles/TopTen.tsx +230 -191
- package/src/components/Content/Card/Styles/Two.tsx +182 -79
- package/src/components/Content/Card/components/AdsPoster.tsx +202 -0
- package/src/components/Content/Card/components/CardPoster.tsx +134 -154
- package/src/components/Content/Card/components/index.ts +1 -0
- package/src/components/Content/Content.tsx +83 -45
- package/src/components/Content/Sections.tsx +51 -10
- package/src/constants/dummySections.ts +48 -1
- package/src/hooks/Images/index.ts +2 -0
- package/src/hooks/Images/useImageLoader.ts +206 -0
- package/src/hooks/Images/useImageValidation.ts +36 -0
- package/src/hooks/index.ts +3 -0
- package/src/hooks/useAdTracking.ts +349 -0
- package/src/hooks/useCards.ts +228 -0
- package/src/hooks/usePaginatedSection.ts +26 -7
- package/src/types/sections/index.ts +7 -4
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* @author Naresh Dhamu
|
|
5
|
-
* @lastModified
|
|
5
|
+
* @lastModified Wed 24 Dec 2025 at 04:01 PM
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import React, {
|
|
8
|
+
import React, { useMemo } from 'react';
|
|
9
9
|
import { View, StyleSheet } from 'react-native';
|
|
10
10
|
import FastImage from 'react-native-fast-image';
|
|
11
11
|
import SkeletonPlaceholder from 'react-native-skeleton-placeholder';
|
|
@@ -13,56 +13,68 @@ import { scale } from 'react-native-size-matters';
|
|
|
13
13
|
import { Text } from "../../../Text/index.js";
|
|
14
14
|
import { ImageOff } from 'lucide-react-native';
|
|
15
15
|
import RentOrBuyIcon from "./RentOrBuyIcon.js";
|
|
16
|
+
import { useImageLoader } from "../../../../hooks/index.js";
|
|
17
|
+
import LinearGradient from 'react-native-linear-gradient';
|
|
18
|
+
import { RFValue } from 'react-native-responsive-fontsize';
|
|
19
|
+
|
|
20
|
+
// Rank number styling constants
|
|
16
21
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
17
|
-
|
|
18
|
-
const
|
|
22
|
+
const RANK_NUMBER_SIZE = scale(40);
|
|
23
|
+
const RANK_NUMBER_BORDER_RADIUS = scale(30);
|
|
24
|
+
const RANK_NUMBER_TEXT_SIZE = RFValue(25);
|
|
25
|
+
const RANK_NUMBER_TEXT_MARGIN_TOP = scale(2);
|
|
26
|
+
const RANK_NUMBER_TEXT_MARGIN_RIGHT = scale(6);
|
|
27
|
+
const GRADIENT_START = {
|
|
28
|
+
x: 1,
|
|
29
|
+
y: 0.5
|
|
30
|
+
};
|
|
31
|
+
const GRADIENT_END = {
|
|
32
|
+
x: 0.5,
|
|
33
|
+
y: 1
|
|
34
|
+
};
|
|
35
|
+
// ----------------------------------
|
|
36
|
+
// Image Fallback
|
|
37
|
+
// ----------------------------------
|
|
38
|
+
const ImageFallback = /*#__PURE__*/React.memo(({
|
|
39
|
+
errorColor,
|
|
40
|
+
bg
|
|
41
|
+
}) => /*#__PURE__*/_jsxs(View, {
|
|
42
|
+
style: [styles.absolute, styles.center, {
|
|
43
|
+
backgroundColor: bg
|
|
44
|
+
}],
|
|
45
|
+
children: [/*#__PURE__*/_jsx(ImageOff, {
|
|
46
|
+
size: scale(18),
|
|
47
|
+
color: errorColor
|
|
48
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
49
|
+
style: styles.fallbackText,
|
|
50
|
+
color: errorColor,
|
|
51
|
+
children: "Image Failed"
|
|
52
|
+
})]
|
|
53
|
+
}));
|
|
19
54
|
const CardPoster = ({
|
|
20
55
|
content_offering_type,
|
|
21
56
|
posterUri,
|
|
22
57
|
theme,
|
|
23
|
-
isLoading = false,
|
|
24
58
|
borderRadius = scale(6),
|
|
25
59
|
posterWrapperStyle,
|
|
26
60
|
imageStyle,
|
|
27
|
-
|
|
61
|
+
isLoading = false,
|
|
62
|
+
resizeMode = FastImage.resizeMode.cover,
|
|
63
|
+
showRankNumber = false,
|
|
64
|
+
rankNumber
|
|
28
65
|
}) => {
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
setImageError(false);
|
|
42
|
-
}
|
|
43
|
-
}, [isLoading]);
|
|
44
|
-
useEffect(() => {
|
|
45
|
-
if (hasValidPoster) {
|
|
46
|
-
// Check if this image was already loaded successfully before
|
|
47
|
-
const isAlreadyLoaded = loadedImageCache.has(posterUri);
|
|
48
|
-
if (isAlreadyLoaded) {
|
|
49
|
-
// Image was loaded before, skip loading state
|
|
50
|
-
setImageLoading(false);
|
|
51
|
-
setImageError(false);
|
|
52
|
-
} else {
|
|
53
|
-
// Image not loaded before, show loading
|
|
54
|
-
setImageLoading(true);
|
|
55
|
-
setImageError(false);
|
|
56
|
-
FastImage.preload([{
|
|
57
|
-
uri: posterUri
|
|
58
|
-
}]);
|
|
59
|
-
}
|
|
60
|
-
} else {
|
|
61
|
-
setImageLoading(false);
|
|
62
|
-
setImageError(true);
|
|
63
|
-
}
|
|
64
|
-
}, [posterUri, hasValidPoster]);
|
|
65
|
-
const showSkeleton = useMemo(() => isLoading || imageLoading && !imageError && hasValidPoster, [isLoading, imageLoading, imageError, hasValidPoster]);
|
|
66
|
+
const {
|
|
67
|
+
showSkeleton,
|
|
68
|
+
showFallback,
|
|
69
|
+
hasValidImage,
|
|
70
|
+
imageSource,
|
|
71
|
+
imageLoading,
|
|
72
|
+
handleLoad,
|
|
73
|
+
handleError
|
|
74
|
+
} = useImageLoader({
|
|
75
|
+
imageUri: posterUri,
|
|
76
|
+
isLoading
|
|
77
|
+
});
|
|
66
78
|
|
|
67
79
|
// Memoize theme colors
|
|
68
80
|
const themeColors = useMemo(() => ({
|
|
@@ -70,106 +82,62 @@ const CardPoster = ({
|
|
|
70
82
|
skeletonBaseColor: theme.colors.skeletonBaseColor,
|
|
71
83
|
skeletonHighlightColor: theme.colors.skeletonHighlightColor,
|
|
72
84
|
error: theme.colors.error,
|
|
73
|
-
errorContainer: theme.colors.errorContainer
|
|
85
|
+
errorContainer: theme.colors.errorContainer,
|
|
86
|
+
border: theme.colors.border
|
|
74
87
|
}), [theme.colors]);
|
|
75
|
-
const fallbackImageStyle = useMemo(() => ({
|
|
76
|
-
width: '100%',
|
|
77
|
-
aspectRatio: 2 / 3,
|
|
78
|
-
borderRadius,
|
|
79
|
-
position: 'absolute',
|
|
80
|
-
top: 0,
|
|
81
|
-
left: 0
|
|
82
|
-
}), [borderRadius]);
|
|
83
|
-
|
|
84
|
-
// Memoize FastImage source
|
|
85
|
-
const imageSource = useMemo(() => ({
|
|
86
|
-
uri: posterUri,
|
|
87
|
-
cache: FastImage.cacheControl.immutable,
|
|
88
|
-
priority: FastImage.priority.normal
|
|
89
|
-
}), [posterUri]);
|
|
90
|
-
|
|
91
|
-
// Memoize callback handlers
|
|
92
|
-
const handleLoadStart = useCallback(() => {
|
|
93
|
-
// Only set loading if image is not already in cache
|
|
94
|
-
if (!loadedImageCache.has(posterUri)) {
|
|
95
|
-
setImageLoading(true);
|
|
96
|
-
setImageError(false);
|
|
97
|
-
}
|
|
98
|
-
}, [posterUri]);
|
|
99
|
-
const handleLoad = useCallback(() => {
|
|
100
|
-
setImageLoading(false);
|
|
101
|
-
setImageError(false);
|
|
102
|
-
// Add to cache when successfully loaded
|
|
103
|
-
loadedImageCache.add(posterUri);
|
|
104
|
-
}, [posterUri]);
|
|
105
|
-
const handleError = useCallback(() => {
|
|
106
|
-
setImageLoading(false);
|
|
107
|
-
setImageError(true);
|
|
108
|
-
}, []);
|
|
109
88
|
|
|
110
89
|
// Memoize wrapper style
|
|
111
90
|
const wrapperStyle = useMemo(() => [styles.posterWrapper, {
|
|
91
|
+
width: '100%',
|
|
92
|
+
aspectRatio: 2 / 3,
|
|
112
93
|
borderRadius,
|
|
113
|
-
backgroundColor: themeColors.background
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
const skeletonWrapperStyle = useMemo(() => [styles.skeletonWrapper, {
|
|
118
|
-
borderRadius
|
|
119
|
-
}], [borderRadius]);
|
|
94
|
+
backgroundColor: themeColors.background,
|
|
95
|
+
borderWidth: showSkeleton ? scale(0.5) : showFallback ? scale(0.3) : 0,
|
|
96
|
+
borderColor: showSkeleton ? themeColors.border : showFallback ? themeColors.error : 'transparent'
|
|
97
|
+
}, posterWrapperStyle], [borderRadius, themeColors.background, themeColors.border, themeColors.error, showSkeleton, showFallback, posterWrapperStyle]);
|
|
120
98
|
|
|
121
99
|
// Memoize skeleton item style
|
|
122
|
-
const skeletonItemStyle = useMemo(() => [styles.skeleton, {
|
|
123
|
-
borderRadius
|
|
124
|
-
}], [borderRadius]);
|
|
125
100
|
|
|
126
|
-
// Memoize image style array
|
|
127
|
-
const imageStyleArray = useMemo(() => [
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
const fallbackWrapperStyle = useMemo(() => [styles.fallbackWrapper, {
|
|
131
|
-
borderRadius,
|
|
132
|
-
backgroundColor: themeColors.background,
|
|
133
|
-
borderColor: themeColors.error
|
|
134
|
-
}], [borderRadius, themeColors.background, themeColors.error]);
|
|
135
|
-
|
|
136
|
-
// Memoize fallback inner style
|
|
137
|
-
const fallbackInnerStyle = useMemo(() => [styles.fallback, {
|
|
138
|
-
backgroundColor: themeColors.errorContainer
|
|
139
|
-
}], [themeColors.errorContainer]);
|
|
101
|
+
// Memoize image style array - hide image until it successfully loads
|
|
102
|
+
const imageStyleArray = useMemo(() => [styles.absolute,
|
|
103
|
+
// Hide image when skeleton is showing or image is still loading
|
|
104
|
+
showSkeleton || imageLoading ? styles.hidden : styles.visible, imageStyle], [showSkeleton, imageLoading, imageStyle]);
|
|
140
105
|
return /*#__PURE__*/_jsxs(View, {
|
|
141
106
|
style: wrapperStyle,
|
|
142
|
-
children: [!showSkeleton && content_offering_type && /*#__PURE__*/_jsx(RentOrBuyIcon, {
|
|
143
|
-
|
|
144
|
-
|
|
107
|
+
children: [!showSkeleton && !showFallback && content_offering_type && /*#__PURE__*/_jsx(RentOrBuyIcon, {
|
|
108
|
+
content_offering_type: content_offering_type,
|
|
109
|
+
theme: theme
|
|
145
110
|
}, posterUri), showSkeleton && /*#__PURE__*/_jsx(View, {
|
|
146
|
-
style:
|
|
111
|
+
style: [styles.absolute],
|
|
147
112
|
children: /*#__PURE__*/_jsx(SkeletonPlaceholder, {
|
|
148
113
|
backgroundColor: themeColors.skeletonBaseColor,
|
|
149
114
|
highlightColor: themeColors.skeletonHighlightColor,
|
|
150
115
|
children: /*#__PURE__*/_jsx(SkeletonPlaceholder.Item, {
|
|
151
|
-
|
|
116
|
+
width: "100%",
|
|
117
|
+
height: "100%"
|
|
152
118
|
})
|
|
153
119
|
})
|
|
154
|
-
}),
|
|
120
|
+
}), hasValidImage && !showFallback && /*#__PURE__*/_jsx(FastImage, {
|
|
155
121
|
source: imageSource,
|
|
156
122
|
style: imageStyleArray,
|
|
157
123
|
resizeMode: resizeMode,
|
|
158
|
-
onLoadStart: handleLoadStart,
|
|
159
124
|
onLoad: handleLoad,
|
|
160
125
|
onError: handleError
|
|
161
|
-
}), !
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
126
|
+
}, `${posterUri}-image`), !isLoading && !showSkeleton && showFallback && /*#__PURE__*/_jsx(ImageFallback, {
|
|
127
|
+
errorColor: themeColors.error,
|
|
128
|
+
bg: themeColors.errorContainer
|
|
129
|
+
}, `${posterUri}-fallback`), !showSkeleton && showRankNumber && /*#__PURE__*/_jsx(View, {
|
|
130
|
+
style: styles.numberContainer,
|
|
131
|
+
children: /*#__PURE__*/_jsx(LinearGradient, {
|
|
132
|
+
colors: theme.colors.backgroundLayoutGradient,
|
|
133
|
+
start: GRADIENT_START,
|
|
134
|
+
end: GRADIENT_END,
|
|
135
|
+
style: [styles.rankNumberBox],
|
|
136
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
137
|
+
style: styles.rankNumberText,
|
|
138
|
+
color: theme.colors.textPrimary,
|
|
139
|
+
children: rankNumber ?? ''
|
|
140
|
+
})
|
|
173
141
|
})
|
|
174
142
|
})]
|
|
175
143
|
});
|
|
@@ -177,21 +145,15 @@ const CardPoster = ({
|
|
|
177
145
|
export default /*#__PURE__*/React.memo(CardPoster);
|
|
178
146
|
const styles = StyleSheet.create({
|
|
179
147
|
posterWrapper: {
|
|
180
|
-
width: '100%',
|
|
181
|
-
aspectRatio: 2 / 3,
|
|
182
148
|
overflow: 'hidden',
|
|
183
149
|
position: 'relative'
|
|
184
150
|
},
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
top: 0,
|
|
188
|
-
left: 0,
|
|
189
|
-
width: '100%',
|
|
190
|
-
aspectRatio: 2 / 3
|
|
151
|
+
absolute: {
|
|
152
|
+
...StyleSheet.absoluteFillObject
|
|
191
153
|
},
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
154
|
+
center: {
|
|
155
|
+
justifyContent: 'center',
|
|
156
|
+
alignItems: 'center'
|
|
195
157
|
},
|
|
196
158
|
visible: {
|
|
197
159
|
opacity: 1
|
|
@@ -203,8 +165,6 @@ const styles = StyleSheet.create({
|
|
|
203
165
|
position: 'absolute',
|
|
204
166
|
top: 0,
|
|
205
167
|
left: 0,
|
|
206
|
-
width: '100%',
|
|
207
|
-
aspectRatio: 2 / 3,
|
|
208
168
|
borderWidth: scale(1),
|
|
209
169
|
alignItems: 'center',
|
|
210
170
|
justifyContent: 'center'
|
|
@@ -213,14 +173,38 @@ const styles = StyleSheet.create({
|
|
|
213
173
|
position: 'absolute',
|
|
214
174
|
top: 0,
|
|
215
175
|
left: 0,
|
|
216
|
-
width: '100%',
|
|
217
|
-
aspectRatio: 2 / 3,
|
|
218
176
|
alignItems: 'center',
|
|
219
177
|
justifyContent: 'center'
|
|
220
178
|
},
|
|
221
179
|
fallbackText: {
|
|
222
180
|
marginTop: scale(4),
|
|
223
181
|
fontSize: 10
|
|
182
|
+
},
|
|
183
|
+
numberContainer: {
|
|
184
|
+
position: 'absolute',
|
|
185
|
+
bottom: -1,
|
|
186
|
+
left: 0,
|
|
187
|
+
zIndex: 10
|
|
188
|
+
},
|
|
189
|
+
rankNumberBox: {
|
|
190
|
+
width: RANK_NUMBER_SIZE,
|
|
191
|
+
height: RANK_NUMBER_SIZE,
|
|
192
|
+
borderTopRightRadius: RANK_NUMBER_BORDER_RADIUS,
|
|
193
|
+
justifyContent: 'center',
|
|
194
|
+
alignItems: 'center'
|
|
195
|
+
},
|
|
196
|
+
rankNumberText: {
|
|
197
|
+
fontSize: RANK_NUMBER_TEXT_SIZE,
|
|
198
|
+
fontWeight: '900',
|
|
199
|
+
textShadowColor: 'rgba(0, 0, 0, 0.6)',
|
|
200
|
+
textShadowOffset: {
|
|
201
|
+
width: 1,
|
|
202
|
+
height: 1
|
|
203
|
+
},
|
|
204
|
+
textShadowRadius: 3,
|
|
205
|
+
marginTop: RANK_NUMBER_TEXT_MARGIN_TOP,
|
|
206
|
+
marginRight: RANK_NUMBER_TEXT_MARGIN_RIGHT,
|
|
207
|
+
letterSpacing: 0.5
|
|
224
208
|
}
|
|
225
209
|
});
|
|
226
210
|
//# sourceMappingURL=CardPoster.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","
|
|
1
|
+
{"version":3,"names":["React","useMemo","View","StyleSheet","FastImage","SkeletonPlaceholder","scale","Text","ImageOff","RentOrBuyIcon","useImageLoader","LinearGradient","RFValue","jsx","_jsx","jsxs","_jsxs","RANK_NUMBER_SIZE","RANK_NUMBER_BORDER_RADIUS","RANK_NUMBER_TEXT_SIZE","RANK_NUMBER_TEXT_MARGIN_TOP","RANK_NUMBER_TEXT_MARGIN_RIGHT","GRADIENT_START","x","y","GRADIENT_END","ImageFallback","memo","errorColor","bg","style","styles","absolute","center","backgroundColor","children","size","color","fallbackText","CardPoster","content_offering_type","posterUri","theme","borderRadius","posterWrapperStyle","imageStyle","isLoading","resizeMode","cover","showRankNumber","rankNumber","showSkeleton","showFallback","hasValidImage","imageSource","imageLoading","handleLoad","handleError","imageUri","themeColors","background","colors","skeletonBaseColor","skeletonHighlightColor","error","errorContainer","border","wrapperStyle","posterWrapper","width","aspectRatio","borderWidth","borderColor","imageStyleArray","hidden","visible","highlightColor","Item","height","source","onLoad","onError","numberContainer","backgroundLayoutGradient","start","end","rankNumberBox","rankNumberText","textPrimary","create","overflow","position","absoluteFillObject","justifyContent","alignItems","opacity","fallbackWrapper","top","left","fallback","marginTop","fontSize","bottom","zIndex","borderTopRightRadius","fontWeight","textShadowColor","textShadowOffset","textShadowRadius","marginRight","letterSpacing"],"sourceRoot":"../../../../../../src","sources":["components/Content/Card/components/CardPoster.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../../../src","sources":["components/Content/Card/components/index.ts"],"mappings":";;AAAA,cAAc,gBAAa","ignoreList":[]}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* @lastModified Sun 08 Jun 2025 at 03:50 PM
|
|
6
6
|
*/
|
|
7
7
|
import React, { useMemo, useCallback } from 'react';
|
|
8
|
-
import { ActivityIndicator, FlatList } from 'react-native';
|
|
8
|
+
import { ActivityIndicator, Dimensions, FlatList } from 'react-native';
|
|
9
9
|
import { scale, verticalScale } from 'react-native-size-matters';
|
|
10
10
|
import Animated from 'react-native-reanimated';
|
|
11
11
|
import SectionType from "./Sections.js";
|
|
@@ -15,7 +15,27 @@ import { NoContentFallback } from "../Fallbacks/index.js";
|
|
|
15
15
|
import { useInternalTheme } from "../../theme/hook/index.js";
|
|
16
16
|
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
17
17
|
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
18
|
+
// Constants
|
|
19
|
+
const VIEWPORT_OFFSETS = {
|
|
20
|
+
top: 140,
|
|
21
|
+
bottom: 140,
|
|
22
|
+
left: 20,
|
|
23
|
+
right: 20
|
|
24
|
+
};
|
|
25
|
+
const INITIAL_NUM_TO_RENDER = 5;
|
|
26
|
+
const SCROLL_EVENT_THROTTLE = 16;
|
|
27
|
+
const END_REACHED_THRESHOLD = 0.7;
|
|
28
|
+
const LOADER_PADDING_VERTICAL = 30;
|
|
29
|
+
const CONTENT_PADDING_BOTTOM = 100;
|
|
30
|
+
|
|
31
|
+
// Types
|
|
32
|
+
|
|
33
|
+
// Animated Components
|
|
18
34
|
const AnimatedFlatList = Animated.createAnimatedComponent(FlatList);
|
|
35
|
+
|
|
36
|
+
// Footer Component Types
|
|
37
|
+
|
|
38
|
+
// Footer Component
|
|
19
39
|
const ContentFooter = /*#__PURE__*/React.memo(({
|
|
20
40
|
isEmpty,
|
|
21
41
|
ErrorComponent,
|
|
@@ -28,7 +48,7 @@ const ContentFooter = /*#__PURE__*/React.memo(({
|
|
|
28
48
|
theme: appliedTheme
|
|
29
49
|
} = useInternalTheme(theme);
|
|
30
50
|
const loaderStyle = useMemo(() => ({
|
|
31
|
-
paddingVertical: scale(
|
|
51
|
+
paddingVertical: scale(LOADER_PADDING_VERTICAL),
|
|
32
52
|
alignItems: 'center',
|
|
33
53
|
justifyContent: 'center',
|
|
34
54
|
backgroundColor: 'transparent'
|
|
@@ -53,6 +73,8 @@ const ContentFooter = /*#__PURE__*/React.memo(({
|
|
|
53
73
|
}
|
|
54
74
|
return null;
|
|
55
75
|
});
|
|
76
|
+
|
|
77
|
+
// Main Content Component
|
|
56
78
|
export const Content = ({
|
|
57
79
|
customComponents,
|
|
58
80
|
InfiniteScrollLoaderComponent,
|
|
@@ -70,23 +92,29 @@ export const Content = ({
|
|
|
70
92
|
isLoading,
|
|
71
93
|
noContentFallbackProps
|
|
72
94
|
}) => {
|
|
95
|
+
// Hooks
|
|
73
96
|
const insets = useSafeAreaInsets();
|
|
74
|
-
const sectionData = useMemo(() => contentData?.sectionData ?? [], [contentData?.sectionData]);
|
|
75
97
|
|
|
76
|
-
//
|
|
98
|
+
// Memoized Data
|
|
99
|
+
const sectionData = useMemo(() => contentData?.sectionData ?? [], [contentData?.sectionData]);
|
|
77
100
|
const sectionDataMemo = useMemo(() => ({
|
|
78
101
|
historyData: contentData.historyData,
|
|
79
102
|
category: contentData.category
|
|
80
103
|
}), [contentData.historyData, contentData.category]);
|
|
81
|
-
|
|
82
|
-
// Memoize loading state object
|
|
83
104
|
const loadingStateMemo = useMemo(() => ({
|
|
84
105
|
section: isLoading?.section ?? false,
|
|
85
106
|
history: isLoading?.history ?? false,
|
|
86
107
|
category: isLoading?.category ?? false
|
|
87
108
|
}), [isLoading?.section, isLoading?.history, isLoading?.category]);
|
|
109
|
+
const screenDimensions = useMemo(() => Dimensions.get('window'), []);
|
|
110
|
+
const listData = useMemo(() => isLoading?.section ? dummySections : sectionData, [isLoading?.section, sectionData]);
|
|
111
|
+
const isEmpty = useMemo(() => !isLoading?.section && (!sectionData || sectionData.length === 0), [isLoading?.section, sectionData]);
|
|
112
|
+
|
|
113
|
+
// Header Component
|
|
88
114
|
const headerComponent = useMemo(() => {
|
|
89
|
-
if (!contentData?.category || contentData.category.length === 0)
|
|
115
|
+
if (!contentData?.category || contentData.category.length === 0) {
|
|
116
|
+
return null;
|
|
117
|
+
}
|
|
90
118
|
return /*#__PURE__*/_jsx(CategoryCard, {
|
|
91
119
|
category: contentData.category,
|
|
92
120
|
onPressCategory: events?.onPressCategory,
|
|
@@ -94,8 +122,10 @@ export const Content = ({
|
|
|
94
122
|
isLoading: isLoading?.category,
|
|
95
123
|
mode: "filled",
|
|
96
124
|
theme: theme
|
|
97
|
-
},
|
|
125
|
+
}, "category");
|
|
98
126
|
}, [contentData?.category, events?.onPressCategory, events?.activeCategory, isLoading?.category, theme]);
|
|
127
|
+
|
|
128
|
+
// Render Item Callback
|
|
99
129
|
const renderItem = useCallback(({
|
|
100
130
|
item,
|
|
101
131
|
index
|
|
@@ -124,38 +154,48 @@ export const Content = ({
|
|
|
124
154
|
},
|
|
125
155
|
sectionProps: sectionProps,
|
|
126
156
|
moreFetchDataHistory: moreFetchDataHistory,
|
|
127
|
-
moreFetchData: moreFetchData
|
|
157
|
+
moreFetchData: moreFetchData,
|
|
158
|
+
onDisplayAds: events?.onDisplayAds,
|
|
159
|
+
screenDimensions: screenDimensions,
|
|
160
|
+
viewportOffsets: VIEWPORT_OFFSETS
|
|
128
161
|
}, index);
|
|
129
|
-
}, [isLoading, LoaderComponent, sectionDataMemo,
|
|
130
|
-
|
|
162
|
+
}, [isLoading?.section, LoaderComponent, sectionDataMemo, theme, customComponents, events, loadingStateMemo, sectionProps, moreFetchDataHistory, moreFetchData, screenDimensions]);
|
|
163
|
+
|
|
164
|
+
// Key Extractor
|
|
131
165
|
const keyExtractor = useCallback((_item, index) => index.toString(), []);
|
|
166
|
+
|
|
167
|
+
// Handlers
|
|
132
168
|
const handleEndReached = useCallback(() => {
|
|
133
169
|
onEndReached?.();
|
|
134
170
|
}, [onEndReached]);
|
|
171
|
+
|
|
172
|
+
// Styles
|
|
135
173
|
const contentContainerStyleMemo = useMemo(() => [{
|
|
136
|
-
paddingBottom: verticalScale(
|
|
174
|
+
paddingBottom: verticalScale(CONTENT_PADDING_BOTTOM) + insets.bottom
|
|
137
175
|
}, contentContainerStyle], [insets.bottom, contentContainerStyle]);
|
|
138
|
-
|
|
176
|
+
|
|
177
|
+
// Footer Component
|
|
178
|
+
const footerComponent = useMemo(() => /*#__PURE__*/_jsx(ContentFooter, {
|
|
179
|
+
InfiniteScrollLoaderComponent: InfiniteScrollLoaderComponent,
|
|
180
|
+
InfiniteScrollIsLoading: isLoading?.InfiniteScrollIsLoading,
|
|
181
|
+
isEmpty: isEmpty,
|
|
182
|
+
ErrorComponent: ErrorComponent,
|
|
183
|
+
theme: theme,
|
|
184
|
+
noContentFallbackProps: noContentFallbackProps
|
|
185
|
+
}), [InfiniteScrollLoaderComponent, isLoading?.InfiniteScrollIsLoading, isEmpty, ErrorComponent, theme, noContentFallbackProps]);
|
|
139
186
|
return /*#__PURE__*/_jsx(AnimatedFlatList, {
|
|
140
|
-
initialNumToRender: 5,
|
|
141
|
-
showsVerticalScrollIndicator: false,
|
|
142
|
-
removeClippedSubviews: true,
|
|
143
|
-
onScroll: onScroll,
|
|
144
|
-
scrollEventThrottle: 16,
|
|
145
187
|
data: listData,
|
|
146
188
|
renderItem: renderItem,
|
|
147
189
|
keyExtractor: keyExtractor,
|
|
190
|
+
onScroll: onScroll,
|
|
148
191
|
onEndReached: handleEndReached,
|
|
192
|
+
onEndReachedThreshold: END_REACHED_THRESHOLD,
|
|
193
|
+
scrollEventThrottle: SCROLL_EVENT_THROTTLE,
|
|
194
|
+
initialNumToRender: INITIAL_NUM_TO_RENDER,
|
|
195
|
+
showsVerticalScrollIndicator: false,
|
|
196
|
+
removeClippedSubviews: true,
|
|
149
197
|
ListHeaderComponent: headerComponent,
|
|
150
|
-
ListFooterComponent:
|
|
151
|
-
InfiniteScrollLoaderComponent: InfiniteScrollLoaderComponent,
|
|
152
|
-
InfiniteScrollIsLoading: isLoading?.InfiniteScrollIsLoading,
|
|
153
|
-
isEmpty: isEmpty,
|
|
154
|
-
ErrorComponent: ErrorComponent,
|
|
155
|
-
theme: theme,
|
|
156
|
-
noContentFallbackProps: noContentFallbackProps
|
|
157
|
-
}), [InfiniteScrollLoaderComponent, isLoading?.InfiniteScrollIsLoading, isEmpty, ErrorComponent, theme, noContentFallbackProps]),
|
|
158
|
-
onEndReachedThreshold: 0.7,
|
|
198
|
+
ListFooterComponent: footerComponent,
|
|
159
199
|
contentContainerStyle: contentContainerStyleMemo
|
|
160
200
|
});
|
|
161
201
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useMemo","useCallback","ActivityIndicator","FlatList","scale","verticalScale","Animated","SectionType","dummySections","CategoryCard","NoContentFallback","useInternalTheme","useSafeAreaInsets","jsx","_jsx","Fragment","_Fragment","AnimatedFlatList","createAnimatedComponent","ContentFooter","memo","isEmpty","ErrorComponent","InfiniteScrollIsLoading","InfiniteScrollLoaderComponent","theme","noContentFallbackProps","appliedTheme","loaderStyle","paddingVertical","alignItems","justifyContent","backgroundColor","View","style","children","size","color","colors","primary","isLoading","Content","customComponents","LoaderComponent","onScroll","contentContainerStyle","contentData","onEndReached","events","sectionProps","moreFetchData","moreFetchDataHistory","insets","sectionData","sectionDataMemo","historyData","category","loadingStateMemo","section","history","
|
|
1
|
+
{"version":3,"names":["React","useMemo","useCallback","ActivityIndicator","Dimensions","FlatList","scale","verticalScale","Animated","SectionType","dummySections","CategoryCard","NoContentFallback","useInternalTheme","useSafeAreaInsets","jsx","_jsx","Fragment","_Fragment","VIEWPORT_OFFSETS","top","bottom","left","right","INITIAL_NUM_TO_RENDER","SCROLL_EVENT_THROTTLE","END_REACHED_THRESHOLD","LOADER_PADDING_VERTICAL","CONTENT_PADDING_BOTTOM","AnimatedFlatList","createAnimatedComponent","ContentFooter","memo","isEmpty","ErrorComponent","InfiniteScrollIsLoading","InfiniteScrollLoaderComponent","theme","noContentFallbackProps","appliedTheme","loaderStyle","paddingVertical","alignItems","justifyContent","backgroundColor","View","style","children","size","color","colors","primary","isLoading","Content","customComponents","LoaderComponent","onScroll","contentContainerStyle","contentData","onEndReached","events","sectionProps","moreFetchData","moreFetchDataHistory","insets","sectionData","sectionDataMemo","historyData","category","loadingStateMemo","section","history","screenDimensions","get","listData","length","headerComponent","onPressCategory","activeCategory","mode","renderItem","item","index","isDummy","_id","startsWith","isLoadingItem","type","data","content","name","section_id","toString","onDisplayAds","viewportOffsets","keyExtractor","_item","handleEndReached","contentContainerStyleMemo","paddingBottom","footerComponent","onEndReachedThreshold","scrollEventThrottle","initialNumToRender","showsVerticalScrollIndicator","removeClippedSubviews","ListHeaderComponent","ListFooterComponent"],"sourceRoot":"../../../../src","sources":["components/Content/Content.tsx"],"mappings":"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","ignoreList":[]}
|