@zezosoft/zezo-ott-react-native-ui-kit 1.1.1 → 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 (437) hide show
  1. package/lib/module/Styles/globalStyles.js +0 -5
  2. package/lib/module/Styles/globalStyles.js.map +1 -1
  3. package/lib/module/components/Auth/AuthProvider/AuthProvider.js +64 -40
  4. package/lib/module/components/Auth/AuthProvider/AuthProvider.js.map +1 -1
  5. package/lib/module/components/Auth/ForgotPassword/ForgotPassword.js +5 -2
  6. package/lib/module/components/Auth/ForgotPassword/ForgotPassword.js.map +1 -1
  7. package/lib/module/components/Auth/Login/LoginWithEmail.js +17 -11
  8. package/lib/module/components/Auth/Login/LoginWithEmail.js.map +1 -1
  9. package/lib/module/components/Auth/Login/LoginWithPhone.js +12 -6
  10. package/lib/module/components/Auth/Login/LoginWithPhone.js.map +1 -1
  11. package/lib/module/components/Auth/OTP/OTP.js +7 -4
  12. package/lib/module/components/Auth/OTP/OTP.js.map +1 -1
  13. package/lib/module/components/Auth/QrLogin/QrLogin.js +357 -144
  14. package/lib/module/components/Auth/QrLogin/QrLogin.js.map +1 -1
  15. package/lib/module/components/Auth/QrLogin/components/QrViewArea.js +227 -110
  16. package/lib/module/components/Auth/QrLogin/components/QrViewArea.js.map +1 -1
  17. package/lib/module/components/Auth/SignUp/SignUp.js +19 -13
  18. package/lib/module/components/Auth/SignUp/SignUp.js.map +1 -1
  19. package/lib/module/components/Auth/SplashScreen/SplashScreen.js +54 -36
  20. package/lib/module/components/Auth/SplashScreen/SplashScreen.js.map +1 -1
  21. package/lib/module/components/Auth/SplashScreen/components/SplashImage/SplashImage.js +29 -11
  22. package/lib/module/components/Auth/SplashScreen/components/SplashImage/SplashImage.js.map +1 -1
  23. package/lib/module/components/Auth/SplashScreen/components/SplashLottie/SplashLottie.js +13 -7
  24. package/lib/module/components/Auth/SplashScreen/components/SplashLottie/SplashLottie.js.map +1 -1
  25. package/lib/module/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.js +33 -21
  26. package/lib/module/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.js.map +1 -1
  27. package/lib/module/components/BackgroundLayout/BackgroundLayout.js +26 -20
  28. package/lib/module/components/BackgroundLayout/BackgroundLayout.js.map +1 -1
  29. package/lib/module/components/BlogView/BlogView.js +36 -20
  30. package/lib/module/components/BlogView/BlogView.js.map +1 -1
  31. package/lib/module/components/Button/BackBtn.js +24 -20
  32. package/lib/module/components/Button/BackBtn.js.map +1 -1
  33. package/lib/module/components/Button/PrimaryBtn.js +19 -13
  34. package/lib/module/components/Button/PrimaryBtn.js.map +1 -1
  35. package/lib/module/components/Button/SecondaryBtn.js +19 -13
  36. package/lib/module/components/Button/SecondaryBtn.js.map +1 -1
  37. package/lib/module/components/Button/TextButton.js +19 -13
  38. package/lib/module/components/Button/TextButton.js.map +1 -1
  39. package/lib/module/components/Content/Card/Category/Category.js +151 -46
  40. package/lib/module/components/Content/Card/Category/Category.js.map +1 -1
  41. package/lib/module/components/Content/Card/NowWatching/NowWatching.js +237 -108
  42. package/lib/module/components/Content/Card/NowWatching/NowWatching.js.map +1 -1
  43. package/lib/module/components/Content/Card/Sliders/Styles/One.js +200 -133
  44. package/lib/module/components/Content/Card/Sliders/Styles/One.js.map +1 -1
  45. package/lib/module/components/Content/Card/Sliders/Styles/Two.js +192 -84
  46. package/lib/module/components/Content/Card/Sliders/Styles/Two.js.map +1 -1
  47. package/lib/module/components/Content/Card/Styles/Five.js +131 -48
  48. package/lib/module/components/Content/Card/Styles/Five.js.map +1 -1
  49. package/lib/module/components/Content/Card/Styles/Four.js +126 -59
  50. package/lib/module/components/Content/Card/Styles/Four.js.map +1 -1
  51. package/lib/module/components/Content/Card/Styles/One.js +125 -50
  52. package/lib/module/components/Content/Card/Styles/One.js.map +1 -1
  53. package/lib/module/components/Content/Card/Styles/RotateInOut.js +143 -65
  54. package/lib/module/components/Content/Card/Styles/RotateInOut.js.map +1 -1
  55. package/lib/module/components/Content/Card/Styles/Six.js +207 -115
  56. package/lib/module/components/Content/Card/Styles/Six.js.map +1 -1
  57. package/lib/module/components/Content/Card/Styles/Three.js +134 -79
  58. package/lib/module/components/Content/Card/Styles/Three.js.map +1 -1
  59. package/lib/module/components/Content/Card/Styles/TopTen.js +186 -171
  60. package/lib/module/components/Content/Card/Styles/TopTen.js.map +1 -1
  61. package/lib/module/components/Content/Card/Styles/Two.js +144 -64
  62. package/lib/module/components/Content/Card/Styles/Two.js.map +1 -1
  63. package/lib/module/components/Content/Card/components/AdsPoster.js +162 -0
  64. package/lib/module/components/Content/Card/components/AdsPoster.js.map +1 -0
  65. package/lib/module/components/Content/Card/components/CardPoster.js +139 -93
  66. package/lib/module/components/Content/Card/components/CardPoster.js.map +1 -1
  67. package/lib/module/components/Content/Card/components/RentOrBuyIcon.js +18 -17
  68. package/lib/module/components/Content/Card/components/RentOrBuyIcon.js.map +1 -1
  69. package/lib/module/components/Content/Card/components/ThumbnailCard.js +78 -28
  70. package/lib/module/components/Content/Card/components/ThumbnailCard.js.map +1 -1
  71. package/lib/module/components/Content/Card/components/index.js +4 -0
  72. package/lib/module/components/Content/Card/components/index.js.map +1 -0
  73. package/lib/module/components/Content/Content.js +99 -40
  74. package/lib/module/components/Content/Content.js.map +1 -1
  75. package/lib/module/components/Content/Sections.js +63 -34
  76. package/lib/module/components/Content/Sections.js.map +1 -1
  77. package/lib/module/components/ContentView/ContentView.js +70 -41
  78. package/lib/module/components/ContentView/ContentView.js.map +1 -1
  79. package/lib/module/components/ContentView/MoreContentList.js +74 -40
  80. package/lib/module/components/ContentView/MoreContentList.js.map +1 -1
  81. package/lib/module/components/ContentView/components/AboutSection.js +40 -19
  82. package/lib/module/components/ContentView/components/AboutSection.js.map +1 -1
  83. package/lib/module/components/ContentView/components/CastCard.js +6 -7
  84. package/lib/module/components/ContentView/components/CastCard.js.map +1 -1
  85. package/lib/module/components/ContentView/components/EpisodeCard.js +2 -2
  86. package/lib/module/components/ContentView/components/EpisodeCard.js.map +1 -1
  87. package/lib/module/components/ContentView/components/GenreTags.js +25 -13
  88. package/lib/module/components/ContentView/components/GenreTags.js.map +1 -1
  89. package/lib/module/components/ContentView/components/HeroBanner.js +39 -11
  90. package/lib/module/components/ContentView/components/HeroBanner.js.map +1 -1
  91. package/lib/module/components/ContentView/components/MiniInfo.js +84 -77
  92. package/lib/module/components/ContentView/components/MiniInfo.js.map +1 -1
  93. package/lib/module/components/ContentView/components/PlayButton.js +11 -7
  94. package/lib/module/components/ContentView/components/PlayButton.js.map +1 -1
  95. package/lib/module/components/ContentView/components/Title.js +12 -12
  96. package/lib/module/components/ContentView/components/Title.js.map +1 -1
  97. package/lib/module/components/ContentView/components/TrailerButton.js +12 -7
  98. package/lib/module/components/ContentView/components/TrailerButton.js.map +1 -1
  99. package/lib/module/components/Fallbacks/NoContentFallback.js +27 -22
  100. package/lib/module/components/Fallbacks/NoContentFallback.js.map +1 -1
  101. package/lib/module/components/Fallbacks/NotFoundFallback.js +6 -4
  102. package/lib/module/components/Fallbacks/NotFoundFallback.js.map +1 -1
  103. package/lib/module/components/Headers/AppHeader.js +22 -13
  104. package/lib/module/components/Headers/AppHeader.js.map +1 -1
  105. package/lib/module/components/Headers/Three.js +6 -5
  106. package/lib/module/components/Headers/Three.js.map +1 -1
  107. package/lib/module/components/Headers/Two.js +19 -14
  108. package/lib/module/components/Headers/Two.js.map +1 -1
  109. package/lib/module/components/Input/InputOne.js +46 -31
  110. package/lib/module/components/Input/InputOne.js.map +1 -1
  111. package/lib/module/components/Loader/Loader.js +2 -2
  112. package/lib/module/components/Loader/Loader.js.map +1 -1
  113. package/lib/module/components/Logo/Logo.js +17 -14
  114. package/lib/module/components/Logo/Logo.js.map +1 -1
  115. package/lib/module/components/Search/One.js +2 -1
  116. package/lib/module/components/Search/One.js.map +1 -1
  117. package/lib/module/components/Search/components/SearchCard.js +15 -19
  118. package/lib/module/components/Search/components/SearchCard.js.map +1 -1
  119. package/lib/module/components/Settings/AppSettings.js +97 -62
  120. package/lib/module/components/Settings/AppSettings.js.map +1 -1
  121. package/lib/module/components/Subscription/SubOne.js +313 -254
  122. package/lib/module/components/Subscription/SubOne.js.map +1 -1
  123. package/lib/module/components/Text/Text.js +15 -12
  124. package/lib/module/components/Text/Text.js.map +1 -1
  125. package/lib/module/components/User/DeviceSessions/DeviceSessions.js +25 -23
  126. package/lib/module/components/User/DeviceSessions/DeviceSessions.js.map +1 -1
  127. package/lib/module/components/User/ProfileUpdate/ProfileUpdate.js +23 -18
  128. package/lib/module/components/User/ProfileUpdate/ProfileUpdate.js.map +1 -1
  129. package/lib/module/components/User/PurchaseHistory/PurchaseHistory.js +38 -24
  130. package/lib/module/components/User/PurchaseHistory/PurchaseHistory.js.map +1 -1
  131. package/lib/module/components/User/WatchHistory/WatchHistory.js +21 -14
  132. package/lib/module/components/User/WatchHistory/WatchHistory.js.map +1 -1
  133. package/lib/module/components/User/WatchLater/WatchLater.js +30 -21
  134. package/lib/module/components/User/WatchLater/WatchLater.js.map +1 -1
  135. package/lib/module/components/User/components/UserAvatar.js +38 -19
  136. package/lib/module/components/User/components/UserAvatar.js.map +1 -1
  137. package/lib/module/components/User/components/UserSection.js +37 -17
  138. package/lib/module/components/User/components/UserSection.js.map +1 -1
  139. package/lib/module/components/View/View.js +7 -4
  140. package/lib/module/components/View/View.js.map +1 -1
  141. package/lib/module/components/index.js +0 -1
  142. package/lib/module/components/index.js.map +1 -1
  143. package/lib/module/constants/dummySections.js +44 -4
  144. package/lib/module/constants/dummySections.js.map +1 -1
  145. package/lib/module/hooks/Images/index.js +5 -0
  146. package/lib/module/hooks/Images/index.js.map +1 -0
  147. package/lib/module/hooks/Images/useImageLoader.js +168 -0
  148. package/lib/module/hooks/Images/useImageLoader.js.map +1 -0
  149. package/lib/module/hooks/Images/useImageValidation.js +36 -0
  150. package/lib/module/hooks/Images/useImageValidation.js.map +1 -0
  151. package/lib/module/hooks/index.js +20 -0
  152. package/lib/module/hooks/index.js.map +1 -0
  153. package/lib/module/hooks/useAdTracking.js +270 -0
  154. package/lib/module/hooks/useAdTracking.js.map +1 -0
  155. package/lib/module/hooks/useCards.js +164 -0
  156. package/lib/module/hooks/useCards.js.map +1 -0
  157. package/lib/module/hooks/useDebounce.js +25 -6
  158. package/lib/module/hooks/useDebounce.js.map +1 -1
  159. package/lib/module/hooks/useKeyboard.js +7 -4
  160. package/lib/module/hooks/useKeyboard.js.map +1 -1
  161. package/lib/module/hooks/useNavigationMode.js +10 -4
  162. package/lib/module/hooks/useNavigationMode.js.map +1 -1
  163. package/lib/module/hooks/usePaginatedSection.js +12 -7
  164. package/lib/module/hooks/usePaginatedSection.js.map +1 -1
  165. package/lib/module/hooks/usePrevious.js +30 -0
  166. package/lib/module/hooks/usePrevious.js.map +1 -0
  167. package/lib/module/hooks/useSafeCallback.js +33 -0
  168. package/lib/module/hooks/useSafeCallback.js.map +1 -0
  169. package/lib/module/hooks/useSkeletonItems.js +33 -0
  170. package/lib/module/hooks/useSkeletonItems.js.map +1 -0
  171. package/lib/module/hooks/useSplashCache.js +2 -1
  172. package/lib/module/hooks/useSplashCache.js.map +1 -1
  173. package/lib/module/hooks/useThemeColors.js +33 -0
  174. package/lib/module/hooks/useThemeColors.js.map +1 -0
  175. package/lib/module/theme/ThemeProvider.js +17 -11
  176. package/lib/module/theme/ThemeProvider.js.map +1 -1
  177. package/lib/module/theme/hook/useInternalTheme.js +18 -11
  178. package/lib/module/theme/hook/useInternalTheme.js.map +1 -1
  179. package/lib/module/theme/hook/useThemeStatusBar.js +10 -4
  180. package/lib/module/theme/hook/useThemeStatusBar.js.map +1 -1
  181. package/lib/typescript/src/Styles/globalStyles.d.ts +0 -5
  182. package/lib/typescript/src/Styles/globalStyles.d.ts.map +1 -1
  183. package/lib/typescript/src/components/Auth/AuthProvider/AuthProvider.d.ts.map +1 -1
  184. package/lib/typescript/src/components/Auth/ForgotPassword/ForgotPassword.d.ts.map +1 -1
  185. package/lib/typescript/src/components/Auth/Login/LoginWithEmail.d.ts.map +1 -1
  186. package/lib/typescript/src/components/Auth/Login/LoginWithPhone.d.ts.map +1 -1
  187. package/lib/typescript/src/components/Auth/OTP/OTP.d.ts.map +1 -1
  188. package/lib/typescript/src/components/Auth/QrLogin/QrLogin.d.ts +2 -15
  189. package/lib/typescript/src/components/Auth/QrLogin/QrLogin.d.ts.map +1 -1
  190. package/lib/typescript/src/components/Auth/QrLogin/components/QrViewArea.d.ts +0 -1
  191. package/lib/typescript/src/components/Auth/QrLogin/components/QrViewArea.d.ts.map +1 -1
  192. package/lib/typescript/src/components/Auth/SignUp/SignUp.d.ts.map +1 -1
  193. package/lib/typescript/src/components/Auth/SplashScreen/SplashScreen.d.ts.map +1 -1
  194. package/lib/typescript/src/components/Auth/SplashScreen/components/SplashImage/SplashImage.d.ts.map +1 -1
  195. package/lib/typescript/src/components/Auth/SplashScreen/components/SplashLottie/SplashLottie.d.ts.map +1 -1
  196. package/lib/typescript/src/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.d.ts.map +1 -1
  197. package/lib/typescript/src/components/Auth/index.d.ts.map +1 -1
  198. package/lib/typescript/src/components/BackgroundLayout/BackgroundLayout.d.ts +1 -1
  199. package/lib/typescript/src/components/BackgroundLayout/BackgroundLayout.d.ts.map +1 -1
  200. package/lib/typescript/src/components/BlogView/BlogView.d.ts +2 -1
  201. package/lib/typescript/src/components/BlogView/BlogView.d.ts.map +1 -1
  202. package/lib/typescript/src/components/Button/BackBtn.d.ts +2 -2
  203. package/lib/typescript/src/components/Button/BackBtn.d.ts.map +1 -1
  204. package/lib/typescript/src/components/Button/PrimaryBtn.d.ts +2 -1
  205. package/lib/typescript/src/components/Button/PrimaryBtn.d.ts.map +1 -1
  206. package/lib/typescript/src/components/Button/SecondaryBtn.d.ts +2 -1
  207. package/lib/typescript/src/components/Button/SecondaryBtn.d.ts.map +1 -1
  208. package/lib/typescript/src/components/Button/TextButton.d.ts +2 -2
  209. package/lib/typescript/src/components/Button/TextButton.d.ts.map +1 -1
  210. package/lib/typescript/src/components/Button/index.d.ts +2 -2
  211. package/lib/typescript/src/components/Content/Card/Category/Category.d.ts.map +1 -1
  212. package/lib/typescript/src/components/Content/Card/NowWatching/NowWatching.d.ts.map +1 -1
  213. package/lib/typescript/src/components/Content/Card/Sliders/Styles/One.d.ts.map +1 -1
  214. package/lib/typescript/src/components/Content/Card/Sliders/Styles/Two.d.ts.map +1 -1
  215. package/lib/typescript/src/components/Content/Card/Styles/Five.d.ts +13 -1
  216. package/lib/typescript/src/components/Content/Card/Styles/Five.d.ts.map +1 -1
  217. package/lib/typescript/src/components/Content/Card/Styles/Four.d.ts +13 -1
  218. package/lib/typescript/src/components/Content/Card/Styles/Four.d.ts.map +1 -1
  219. package/lib/typescript/src/components/Content/Card/Styles/One.d.ts +15 -3
  220. package/lib/typescript/src/components/Content/Card/Styles/One.d.ts.map +1 -1
  221. package/lib/typescript/src/components/Content/Card/Styles/RotateInOut.d.ts +13 -1
  222. package/lib/typescript/src/components/Content/Card/Styles/RotateInOut.d.ts.map +1 -1
  223. package/lib/typescript/src/components/Content/Card/Styles/Six.d.ts +1 -0
  224. package/lib/typescript/src/components/Content/Card/Styles/Six.d.ts.map +1 -1
  225. package/lib/typescript/src/components/Content/Card/Styles/Three.d.ts +13 -5
  226. package/lib/typescript/src/components/Content/Card/Styles/Three.d.ts.map +1 -1
  227. package/lib/typescript/src/components/Content/Card/Styles/TopTen.d.ts +1 -0
  228. package/lib/typescript/src/components/Content/Card/Styles/TopTen.d.ts.map +1 -1
  229. package/lib/typescript/src/components/Content/Card/Styles/Two.d.ts +13 -1
  230. package/lib/typescript/src/components/Content/Card/Styles/Two.d.ts.map +1 -1
  231. package/lib/typescript/src/components/Content/Card/components/AdsPoster.d.ts +26 -0
  232. package/lib/typescript/src/components/Content/Card/components/AdsPoster.d.ts.map +1 -0
  233. package/lib/typescript/src/components/Content/Card/components/CardPoster.d.ts +3 -1
  234. package/lib/typescript/src/components/Content/Card/components/CardPoster.d.ts.map +1 -1
  235. package/lib/typescript/src/components/Content/Card/components/RentOrBuyIcon.d.ts +2 -2
  236. package/lib/typescript/src/components/Content/Card/components/RentOrBuyIcon.d.ts.map +1 -1
  237. package/lib/typescript/src/components/Content/Card/components/ThumbnailCard.d.ts +2 -0
  238. package/lib/typescript/src/components/Content/Card/components/ThumbnailCard.d.ts.map +1 -1
  239. package/lib/typescript/src/components/Content/Card/components/index.d.ts +2 -0
  240. package/lib/typescript/src/components/Content/Card/components/index.d.ts.map +1 -0
  241. package/lib/typescript/src/components/Content/Card/index.d.ts +76 -6
  242. package/lib/typescript/src/components/Content/Card/index.d.ts.map +1 -1
  243. package/lib/typescript/src/components/Content/Content.d.ts +6 -3
  244. package/lib/typescript/src/components/Content/Content.d.ts.map +1 -1
  245. package/lib/typescript/src/components/Content/Sections.d.ts +22 -8
  246. package/lib/typescript/src/components/Content/Sections.d.ts.map +1 -1
  247. package/lib/typescript/src/components/ContentView/ContentView.d.ts +6 -1
  248. package/lib/typescript/src/components/ContentView/ContentView.d.ts.map +1 -1
  249. package/lib/typescript/src/components/ContentView/MoreContentList.d.ts.map +1 -1
  250. package/lib/typescript/src/components/ContentView/components/AboutSection.d.ts +2 -1
  251. package/lib/typescript/src/components/ContentView/components/AboutSection.d.ts.map +1 -1
  252. package/lib/typescript/src/components/ContentView/components/CastCard.d.ts +6 -1
  253. package/lib/typescript/src/components/ContentView/components/CastCard.d.ts.map +1 -1
  254. package/lib/typescript/src/components/ContentView/components/EpisodeCard.d.ts +2 -1
  255. package/lib/typescript/src/components/ContentView/components/EpisodeCard.d.ts.map +1 -1
  256. package/lib/typescript/src/components/ContentView/components/GenreTags.d.ts +1 -1
  257. package/lib/typescript/src/components/ContentView/components/GenreTags.d.ts.map +1 -1
  258. package/lib/typescript/src/components/ContentView/components/HeroBanner.d.ts +2 -1
  259. package/lib/typescript/src/components/ContentView/components/HeroBanner.d.ts.map +1 -1
  260. package/lib/typescript/src/components/ContentView/components/MiniInfo.d.ts +1 -1
  261. package/lib/typescript/src/components/ContentView/components/MiniInfo.d.ts.map +1 -1
  262. package/lib/typescript/src/components/ContentView/components/PlayButton.d.ts +2 -1
  263. package/lib/typescript/src/components/ContentView/components/PlayButton.d.ts.map +1 -1
  264. package/lib/typescript/src/components/ContentView/components/Title.d.ts +1 -1
  265. package/lib/typescript/src/components/ContentView/components/Title.d.ts.map +1 -1
  266. package/lib/typescript/src/components/ContentView/components/TrailerButton.d.ts +2 -1
  267. package/lib/typescript/src/components/ContentView/components/TrailerButton.d.ts.map +1 -1
  268. package/lib/typescript/src/components/Fallbacks/NoContentFallback.d.ts +2 -1
  269. package/lib/typescript/src/components/Fallbacks/NoContentFallback.d.ts.map +1 -1
  270. package/lib/typescript/src/components/Fallbacks/NotFoundFallback.d.ts +1 -1
  271. package/lib/typescript/src/components/Fallbacks/NotFoundFallback.d.ts.map +1 -1
  272. package/lib/typescript/src/components/Headers/AppHeader.d.ts +2 -2
  273. package/lib/typescript/src/components/Headers/AppHeader.d.ts.map +1 -1
  274. package/lib/typescript/src/components/Headers/Three.d.ts +2 -2
  275. package/lib/typescript/src/components/Headers/Three.d.ts.map +1 -1
  276. package/lib/typescript/src/components/Headers/Two.d.ts +2 -2
  277. package/lib/typescript/src/components/Headers/Two.d.ts.map +1 -1
  278. package/lib/typescript/src/components/Headers/index.d.ts +2 -2
  279. package/lib/typescript/src/components/Input/Input.d.ts +1 -1
  280. package/lib/typescript/src/components/Input/InputOne.d.ts +2 -2
  281. package/lib/typescript/src/components/Input/InputOne.d.ts.map +1 -1
  282. package/lib/typescript/src/components/Loader/Loader.d.ts.map +1 -1
  283. package/lib/typescript/src/components/Logo/Logo.d.ts +2 -1
  284. package/lib/typescript/src/components/Logo/Logo.d.ts.map +1 -1
  285. package/lib/typescript/src/components/Search/One.d.ts.map +1 -1
  286. package/lib/typescript/src/components/Search/components/SearchCard.d.ts +2 -5
  287. package/lib/typescript/src/components/Search/components/SearchCard.d.ts.map +1 -1
  288. package/lib/typescript/src/components/Search/index.d.ts +1 -1
  289. package/lib/typescript/src/components/Settings/AppSettings.d.ts +2 -2
  290. package/lib/typescript/src/components/Settings/AppSettings.d.ts.map +1 -1
  291. package/lib/typescript/src/components/Subscription/SubOne.d.ts.map +1 -1
  292. package/lib/typescript/src/components/Subscription/index.d.ts.map +1 -1
  293. package/lib/typescript/src/components/Text/Text.d.ts +2 -2
  294. package/lib/typescript/src/components/Text/Text.d.ts.map +1 -1
  295. package/lib/typescript/src/components/User/DeviceSessions/DeviceSessions.d.ts +1 -1
  296. package/lib/typescript/src/components/User/DeviceSessions/DeviceSessions.d.ts.map +1 -1
  297. package/lib/typescript/src/components/User/ProfileUpdate/ProfileUpdate.d.ts +1 -1
  298. package/lib/typescript/src/components/User/ProfileUpdate/ProfileUpdate.d.ts.map +1 -1
  299. package/lib/typescript/src/components/User/PurchaseHistory/PurchaseHistory.d.ts +1 -1
  300. package/lib/typescript/src/components/User/PurchaseHistory/PurchaseHistory.d.ts.map +1 -1
  301. package/lib/typescript/src/components/User/WatchHistory/WatchHistory.d.ts +1 -1
  302. package/lib/typescript/src/components/User/WatchHistory/WatchHistory.d.ts.map +1 -1
  303. package/lib/typescript/src/components/User/WatchLater/WatchLater.d.ts +1 -1
  304. package/lib/typescript/src/components/User/WatchLater/WatchLater.d.ts.map +1 -1
  305. package/lib/typescript/src/components/User/components/UserAvatar.d.ts +1 -1
  306. package/lib/typescript/src/components/User/components/UserAvatar.d.ts.map +1 -1
  307. package/lib/typescript/src/components/User/components/UserSection.d.ts +1 -1
  308. package/lib/typescript/src/components/User/components/UserSection.d.ts.map +1 -1
  309. package/lib/typescript/src/components/View/View.d.ts +2 -0
  310. package/lib/typescript/src/components/View/View.d.ts.map +1 -1
  311. package/lib/typescript/src/components/index.d.ts +0 -1
  312. package/lib/typescript/src/components/index.d.ts.map +1 -1
  313. package/lib/typescript/src/constants/dummySections.d.ts +5 -0
  314. package/lib/typescript/src/constants/dummySections.d.ts.map +1 -1
  315. package/lib/typescript/src/hooks/Images/index.d.ts +3 -0
  316. package/lib/typescript/src/hooks/Images/index.d.ts.map +1 -0
  317. package/lib/typescript/src/hooks/Images/useImageLoader.d.ts +36 -0
  318. package/lib/typescript/src/hooks/Images/useImageLoader.d.ts.map +1 -0
  319. package/lib/typescript/src/hooks/Images/useImageValidation.d.ts +17 -0
  320. package/lib/typescript/src/hooks/Images/useImageValidation.d.ts.map +1 -0
  321. package/lib/typescript/src/hooks/index.d.ts +17 -0
  322. package/lib/typescript/src/hooks/index.d.ts.map +1 -0
  323. package/lib/typescript/src/hooks/useAdTracking.d.ts +39 -0
  324. package/lib/typescript/src/hooks/useAdTracking.d.ts.map +1 -0
  325. package/lib/typescript/src/hooks/useCards.d.ts +36 -0
  326. package/lib/typescript/src/hooks/useCards.d.ts.map +1 -0
  327. package/lib/typescript/src/hooks/useDebounce.d.ts.map +1 -1
  328. package/lib/typescript/src/hooks/useKeyboard.d.ts.map +1 -1
  329. package/lib/typescript/src/hooks/useNavigationMode.d.ts.map +1 -1
  330. package/lib/typescript/src/hooks/usePaginatedSection.d.ts +12 -2
  331. package/lib/typescript/src/hooks/usePaginatedSection.d.ts.map +1 -1
  332. package/lib/typescript/src/hooks/usePrevious.d.ts +12 -0
  333. package/lib/typescript/src/hooks/usePrevious.d.ts.map +1 -0
  334. package/lib/typescript/src/hooks/useSafeCallback.d.ts +15 -0
  335. package/lib/typescript/src/hooks/useSafeCallback.d.ts.map +1 -0
  336. package/lib/typescript/src/hooks/useSkeletonItems.d.ts +11 -0
  337. package/lib/typescript/src/hooks/useSkeletonItems.d.ts.map +1 -0
  338. package/lib/typescript/src/hooks/useSplashCache.d.ts.map +1 -1
  339. package/lib/typescript/src/hooks/useThemeColors.d.ts +27 -0
  340. package/lib/typescript/src/hooks/useThemeColors.d.ts.map +1 -0
  341. package/lib/typescript/src/theme/ThemeProvider.d.ts.map +1 -1
  342. package/lib/typescript/src/theme/hook/useInternalTheme.d.ts.map +1 -1
  343. package/lib/typescript/src/theme/hook/useThemeStatusBar.d.ts.map +1 -1
  344. package/lib/typescript/src/types/sections/index.d.ts +7 -4
  345. package/lib/typescript/src/types/sections/index.d.ts.map +1 -1
  346. package/package.json +6 -3
  347. package/src/Styles/globalStyles.ts +0 -5
  348. package/src/components/Auth/AuthProvider/AuthProvider.tsx +288 -212
  349. package/src/components/Auth/ForgotPassword/ForgotPassword.tsx +11 -4
  350. package/src/components/Auth/Login/LoginWithEmail.tsx +266 -238
  351. package/src/components/Auth/Login/LoginWithPhone.tsx +18 -6
  352. package/src/components/Auth/OTP/OTP.tsx +21 -5
  353. package/src/components/Auth/QrLogin/QrLogin.tsx +477 -177
  354. package/src/components/Auth/QrLogin/components/QrViewArea.tsx +349 -139
  355. package/src/components/Auth/SignUp/SignUp.tsx +312 -293
  356. package/src/components/Auth/SplashScreen/SplashScreen.tsx +186 -131
  357. package/src/components/Auth/SplashScreen/components/SplashImage/SplashImage.tsx +32 -15
  358. package/src/components/Auth/SplashScreen/components/SplashLottie/SplashLottie.tsx +11 -5
  359. package/src/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.tsx +34 -18
  360. package/src/components/BackgroundLayout/BackgroundLayout.tsx +43 -37
  361. package/src/components/BlogView/BlogView.tsx +66 -30
  362. package/src/components/Button/BackBtn.tsx +64 -34
  363. package/src/components/Button/PrimaryBtn.tsx +42 -25
  364. package/src/components/Button/SecondaryBtn.tsx +41 -25
  365. package/src/components/Button/TextButton.tsx +54 -32
  366. package/src/components/Content/Card/Category/Category.tsx +189 -64
  367. package/src/components/Content/Card/NowWatching/NowWatching.tsx +281 -136
  368. package/src/components/Content/Card/Sliders/Styles/One.tsx +270 -158
  369. package/src/components/Content/Card/Sliders/Styles/Two.tsx +239 -90
  370. package/src/components/Content/Card/Styles/Five.tsx +161 -62
  371. package/src/components/Content/Card/Styles/Four.tsx +164 -85
  372. package/src/components/Content/Card/Styles/One.tsx +161 -71
  373. package/src/components/Content/Card/Styles/RotateInOut.tsx +162 -67
  374. package/src/components/Content/Card/Styles/Six.tsx +242 -142
  375. package/src/components/Content/Card/Styles/Three.tsx +166 -133
  376. package/src/components/Content/Card/Styles/TopTen.tsx +230 -191
  377. package/src/components/Content/Card/Styles/Two.tsx +182 -79
  378. package/src/components/Content/Card/components/AdsPoster.tsx +202 -0
  379. package/src/components/Content/Card/components/CardPoster.tsx +166 -105
  380. package/src/components/Content/Card/components/RentOrBuyIcon.tsx +58 -38
  381. package/src/components/Content/Card/components/ThumbnailCard.tsx +122 -47
  382. package/src/components/Content/Card/components/index.ts +1 -0
  383. package/src/components/Content/Content.tsx +211 -106
  384. package/src/components/Content/Sections.tsx +148 -51
  385. package/src/components/ContentView/ContentView.tsx +194 -128
  386. package/src/components/ContentView/MoreContentList.tsx +215 -151
  387. package/src/components/ContentView/components/AboutSection.tsx +132 -93
  388. package/src/components/ContentView/components/CastCard.tsx +148 -138
  389. package/src/components/ContentView/components/EpisodeCard.tsx +160 -155
  390. package/src/components/ContentView/components/GenreTags.tsx +68 -53
  391. package/src/components/ContentView/components/HeroBanner.tsx +326 -284
  392. package/src/components/ContentView/components/MiniInfo.tsx +181 -159
  393. package/src/components/ContentView/components/PlayButton.tsx +27 -16
  394. package/src/components/ContentView/components/Title.tsx +89 -72
  395. package/src/components/ContentView/components/TrailerButton.tsx +35 -22
  396. package/src/components/Fallbacks/NoContentFallback.tsx +107 -103
  397. package/src/components/Fallbacks/NotFoundFallback.tsx +12 -4
  398. package/src/components/Headers/AppHeader.tsx +42 -26
  399. package/src/components/Headers/Three.tsx +12 -8
  400. package/src/components/Headers/Two.tsx +31 -10
  401. package/src/components/Input/InputOne.tsx +136 -108
  402. package/src/components/Loader/Loader.tsx +2 -2
  403. package/src/components/Logo/Logo.tsx +43 -27
  404. package/src/components/Search/One.tsx +2 -4
  405. package/src/components/Search/components/SearchCard.tsx +19 -13
  406. package/src/components/Settings/AppSettings.tsx +217 -128
  407. package/src/components/Subscription/SubOne.tsx +394 -317
  408. package/src/components/Text/Text.tsx +33 -22
  409. package/src/components/User/DeviceSessions/DeviceSessions.tsx +129 -102
  410. package/src/components/User/ProfileUpdate/ProfileUpdate.tsx +36 -17
  411. package/src/components/User/PurchaseHistory/PurchaseHistory.tsx +194 -140
  412. package/src/components/User/WatchHistory/WatchHistory.tsx +63 -36
  413. package/src/components/User/WatchLater/WatchLater.tsx +119 -81
  414. package/src/components/User/components/UserAvatar.tsx +49 -15
  415. package/src/components/User/components/UserSection.tsx +71 -37
  416. package/src/components/View/View.tsx +10 -2
  417. package/src/components/index.ts +0 -1
  418. package/src/constants/dummySections.ts +48 -1
  419. package/src/hooks/Images/index.ts +2 -0
  420. package/src/hooks/Images/useImageLoader.ts +206 -0
  421. package/src/hooks/Images/useImageValidation.ts +36 -0
  422. package/src/hooks/index.ts +17 -0
  423. package/src/hooks/useAdTracking.ts +349 -0
  424. package/src/hooks/useCards.ts +228 -0
  425. package/src/hooks/useDebounce.ts +25 -6
  426. package/src/hooks/useKeyboard.ts +12 -5
  427. package/src/hooks/useNavigationMode.ts +16 -5
  428. package/src/hooks/usePaginatedSection.ts +27 -8
  429. package/src/hooks/usePrevious.ts +28 -0
  430. package/src/hooks/useSafeCallback.ts +43 -0
  431. package/src/hooks/useSkeletonItems.ts +30 -0
  432. package/src/hooks/useSplashCache.ts +2 -1
  433. package/src/hooks/useThemeColors.ts +51 -0
  434. package/src/theme/ThemeProvider.tsx +25 -9
  435. package/src/theme/hook/useInternalTheme.ts +19 -13
  436. package/src/theme/hook/useThemeStatusBar.ts +14 -5
  437. package/src/types/sections/index.ts +7 -4
@@ -13,33 +13,52 @@ import {
13
13
  Dimensions,
14
14
  TouchableOpacity,
15
15
  } from 'react-native';
16
+
16
17
  import SkeletonPlaceholder from 'react-native-skeleton-placeholder';
17
18
  import FastImage from 'react-native-fast-image';
18
19
  import Carousel from 'react-native-snap-carousel';
19
20
  import { moderateScale, verticalScale } from 'react-native-size-matters';
20
21
  import { debounce } from 'lodash';
21
-
22
- import { usePaginatedSection } from '../../../../hooks/usePaginatedSection';
22
+ import { RFValue } from 'react-native-responsive-fontsize';
23
23
 
24
24
  import { useInternalTheme } from '../../../../theme/hook/useInternalTheme';
25
+
25
26
  import CardPoster from '../components/CardPoster';
26
27
  import NavigateToMore from '../components/NavigateToMore';
28
+ import { AdsPoster } from '../components';
29
+
27
30
  import type {
31
+ IAdItem,
28
32
  IGetSectionData,
29
33
  ISectionContent,
30
34
  MoreFetchData,
31
35
  } from '../../../../types';
32
36
  import type { ThemeOverride } from '../../../../theme/themes';
33
- import { RFValue } from 'react-native-responsive-fontsize';
34
- import type { IContentData } from '@zezosoft/zezo-ott-api-client';
37
+ import type { IContentData, IServeAd } from '@zezosoft/zezo-ott-api-client';
38
+ import { useCards } from '../../../../hooks';
35
39
 
40
+ // Constants
36
41
  const { width, height } = Dimensions.get('window');
37
-
38
- const DEFAULT_ITEM_WIDTH = width * 0.42;
39
- const DEFAULT_ITEM_HEIGHT = height * 0.28;
42
+ const ITEM_WIDTH_RATIO = 0.42;
43
+ const ITEM_HEIGHT_RATIO = 0.28;
44
+ const DEFAULT_ITEM_WIDTH = width * ITEM_WIDTH_RATIO;
45
+ const DEFAULT_ITEM_HEIGHT = height * ITEM_HEIGHT_RATIO;
40
46
  const DEFAULT_BORDER_RADIUS = moderateScale(10);
47
+ const DEFAULT_SKELETON_COUNT = 5;
48
+ const DEBOUNCE_DELAY = 300;
49
+ const ITEM_ACTIVE_OPACITY = 0.8;
50
+ const CAROUSEL_FIRST_ITEM = 1;
51
+ const CAROUSEL_INACTIVE_OPACITY = 0.6;
52
+ const CAROUSEL_INACTIVE_SCALE = 0.9;
53
+ const PAGINATION_TRIGGER_OFFSET = 2;
54
+ const SKELETON_TITLE_WIDTH = moderateScale(100);
55
+ const SKELETON_TITLE_HEIGHT = verticalScale(14);
56
+ const SKELETON_TITLE_BORDER_RADIUS = moderateScale(4);
57
+ const SKELETON_TITLE_MARGIN_LEFT = moderateScale(12);
58
+ const SKELETON_TITLE_MARGIN_BOTTOM = verticalScale(6);
59
+ const SKELETON_ITEM_MARGIN_RIGHT = moderateScale(12);
41
60
 
42
- // Static styles defined outside getStyles to avoid recalculation
61
+ // Static Styles
43
62
  const staticStyles = StyleSheet.create({
44
63
  root: {
45
64
  marginVertical: verticalScale(6),
@@ -56,6 +75,7 @@ const staticStyles = StyleSheet.create({
56
75
  },
57
76
  });
58
77
 
78
+ // Types
59
79
  type Props = {
60
80
  title: string;
61
81
  section_id: string;
@@ -68,45 +88,56 @@ type Props = {
68
88
  name: IGetSectionData['name'];
69
89
  type: IGetSectionData['type'];
70
90
  }) => void;
71
- renderItemImage?: (params: {
72
- item: IContentData;
73
- index: number;
74
- }) => React.ReactNode;
75
91
  itemWidth?: number;
76
92
  itemHeight?: number;
77
93
  borderRadius?: number;
78
94
  skeletonCount?: number;
79
95
  containerStyle?: StyleProp<ViewStyle>;
80
96
  titleStyle?: StyleProp<TextStyle>;
97
+ paginationSkeletonCount?: number;
81
98
  itemStyle?: StyleProp<ViewStyle>;
82
99
  isLoading?: boolean;
83
100
  theme?: ThemeOverride;
101
+ onDisplayAds?: (ad: IServeAd) => void;
102
+ screenDimensions?: { width: number; height: number };
103
+ viewportOffsets?: {
104
+ top: number;
105
+ bottom: number;
106
+ left: number;
107
+ right: number;
108
+ };
84
109
  };
85
110
 
111
+ // Main Component
86
112
  const MovieCardThree: React.FC<Props> = ({
87
113
  title,
88
114
  section_id,
89
115
  type,
90
- data: initialData,
116
+ data: externalData,
91
117
  moreFetchData,
92
118
  onPressMore,
93
119
  onPressItem,
94
- renderItemImage,
95
120
  itemWidth = DEFAULT_ITEM_WIDTH,
96
121
  itemHeight = DEFAULT_ITEM_HEIGHT,
97
122
  borderRadius = DEFAULT_BORDER_RADIUS,
98
- skeletonCount = 5,
123
+ skeletonCount = DEFAULT_SKELETON_COUNT,
124
+ paginationSkeletonCount,
99
125
  containerStyle,
100
126
  titleStyle,
101
127
  itemStyle,
102
128
  isLoading = false,
103
129
  theme,
130
+ onDisplayAds,
131
+ screenDimensions,
132
+ viewportOffsets,
104
133
  }) => {
105
- const { theme: appliedTheme } = useInternalTheme(theme);
134
+ // Refs
135
+ const carouselRef = useRef<Carousel<IContentData | IAdItem> | null>(null);
106
136
 
107
- const carouselRef = useRef<any>(null);
137
+ // Theme
138
+ const { theme: appliedTheme } = useInternalTheme(theme);
108
139
 
109
- // Memoized dynamic styles
140
+ // Styles
110
141
  const styles = useMemo(
111
142
  () =>
112
143
  StyleSheet.create({
@@ -115,167 +146,175 @@ const MovieCardThree: React.FC<Props> = ({
115
146
  height: itemHeight,
116
147
  borderRadius,
117
148
  overflow: 'hidden',
118
- elevation: 0,
119
- shadowColor: 'transparent',
120
- shadowOffset: { width: 0, height: 0 },
121
- shadowOpacity: 0,
122
- shadowRadius: 0,
123
149
  },
124
150
  image: {
125
151
  width: '100%',
126
152
  height: '100%',
127
- backgroundColor: appliedTheme.colors.skeletonBaseColor ?? '#222',
153
+ backgroundColor: appliedTheme.colors.surfaceVariant,
128
154
  },
129
155
  skeleton: {
130
156
  width: itemWidth,
131
157
  height: itemHeight,
132
158
  borderRadius,
159
+ marginRight: SKELETON_ITEM_MARGIN_RIGHT,
133
160
  overflow: 'hidden',
134
- marginRight: moderateScale(12),
135
161
  },
136
162
  }),
137
- [appliedTheme.colors.skeletonBaseColor, itemWidth, itemHeight, borderRadius]
163
+ [appliedTheme, itemWidth, itemHeight, borderRadius]
138
164
  );
139
165
 
166
+ // Data Management
140
167
  const {
141
- data,
142
- loading: isPaginating,
168
+ listData,
143
169
  pagination,
144
- loadMoreData,
145
- } = usePaginatedSection(
146
- section_id,
147
- moreFetchData,
148
- initialData?.data || [],
149
- isLoading
150
- );
170
+ loadMore,
171
+ isEmpty,
172
+ isPaging: isPaginating,
173
+ } = useCards({
174
+ sectionId: section_id,
175
+ data: externalData,
176
+ fetchMore: moreFetchData,
177
+ loading: isLoading,
178
+ initialSkeleton: skeletonCount,
179
+ pagingSkeleton: paginationSkeletonCount,
180
+ adsRender: true,
181
+ });
151
182
 
152
- // Memoized skeleton items
183
+ // Skeleton Data
153
184
  const skeletonItems = useMemo(() => {
154
185
  const count = isLoading ? skeletonCount : isPaginating ? 1 : 0;
155
- return Array.from({ length: count }, (_, i) => ({
156
- _id: `skeleton-${i}`,
186
+
187
+ if (!count) {
188
+ return [];
189
+ }
190
+
191
+ return Array.from({ length: count }, (_, index) => ({
192
+ _id: `skeleton-${index}`,
157
193
  isSkeleton: true,
158
194
  }));
159
195
  }, [isLoading, isPaginating, skeletonCount]);
160
196
 
161
- // Optimized finalData to avoid unnecessary spread
162
- const finalData = useMemo(
163
- () =>
164
- isLoading
165
- ? skeletonItems
166
- : skeletonItems.length > 0
167
- ? [...data, ...skeletonItems]
168
- : data,
169
- [isLoading, data, skeletonItems]
170
- );
197
+ const finalData = useMemo(() => {
198
+ if (isLoading) {
199
+ return skeletonItems;
200
+ }
171
201
 
172
- // Debounced loadMoreData to prevent excessive calls
202
+ if (!skeletonItems.length) {
203
+ return listData;
204
+ }
205
+
206
+ return [...listData, ...skeletonItems];
207
+ }, [listData, isLoading, skeletonItems]);
208
+
209
+ // Debounced Functions
173
210
  const debouncedLoadMore = useMemo(
174
211
  () =>
175
212
  debounce((nextPage: number) => {
176
- return loadMoreData(nextPage);
177
- }, 300),
178
- [loadMoreData]
179
- );
180
-
181
- const handleItemPress = useCallback(
182
- (item: IContentData) => {
183
- onPressItem?.(item);
184
- },
185
- [onPressItem]
213
+ loadMore(nextPage);
214
+ }, DEBOUNCE_DELAY),
215
+ [loadMore]
186
216
  );
187
217
 
218
+ // Event Handlers
188
219
  const handlePressMore = useCallback(() => {
189
- onPressMore?.({
190
- section_id,
191
- name: title,
192
- type,
193
- });
220
+ onPressMore?.({ section_id, name: title, type });
194
221
  }, [onPressMore, section_id, title, type]);
195
222
 
223
+ const handleSnapToItem = useCallback(
224
+ (index: number) => {
225
+ // Pagination logic
226
+ if (!pagination?.hasNextPage || !pagination?.nextPage) return;
227
+ if (index >= finalData.length - PAGINATION_TRIGGER_OFFSET) {
228
+ debouncedLoadMore(pagination.nextPage);
229
+ }
230
+ },
231
+ [finalData, pagination, debouncedLoadMore]
232
+ );
233
+
234
+ // Render Functions
196
235
  const renderItem = useCallback(
197
- ({
198
- item,
199
- index,
200
- }: {
201
- item: IContentData | { isSkeleton: true; _id: string };
202
- index: number;
203
- }) => {
204
- if ('isSkeleton' in item) {
236
+ ({ item, index }: { item: IContentData | IAdItem; index: number }) => {
237
+ // Handle ads
238
+ if ('type' in item && item.type === 'ads') {
239
+ const adItem = item as IAdItem;
205
240
  return (
206
- <View key={item._id} style={styles.skeleton}>
207
- <SkeletonPlaceholder
208
- highlightColor={appliedTheme.colors.skeletonHighlightColor}
209
- backgroundColor={appliedTheme.colors.skeletonBaseColor}
210
- >
211
- <SkeletonPlaceholder.Item
212
- width={itemWidth}
213
- height={itemHeight}
214
- borderRadius={borderRadius}
215
- />
216
- </SkeletonPlaceholder>
241
+ <View
242
+ key={`ad-${adItem.tracking?.impression || index}`}
243
+ style={[styles.item, itemStyle]}
244
+ >
245
+ <AdsPoster
246
+ ad={adItem}
247
+ theme={appliedTheme}
248
+ isLoading={isLoading}
249
+ containerStyle={{ width: itemWidth, height: itemHeight }}
250
+ imageStyle={styles.image}
251
+ borderRadius={borderRadius}
252
+ onDisplayAds={onDisplayAds}
253
+ screenDimensions={screenDimensions}
254
+ viewportOffsets={viewportOffsets}
255
+ />
217
256
  </View>
218
257
  );
219
258
  }
220
-
259
+ // Handle content items
260
+ const contentItem = item as IContentData;
261
+ const isSkeleton =
262
+ contentItem._id?.startsWith?.('pagination-skeleton') ?? false;
221
263
  return (
222
264
  <TouchableOpacity
223
- key={item._id || `item-${index}`}
224
- activeOpacity={0.8}
225
265
  style={[styles.item, itemStyle]}
226
- disabled={!item || !onPressItem || isLoading}
227
- onPress={() => handleItemPress(item)}
266
+ activeOpacity={ITEM_ACTIVE_OPACITY}
267
+ onPress={() => {
268
+ if (!isSkeleton && !isLoading) {
269
+ onPressItem?.(contentItem);
270
+ }
271
+ }}
228
272
  >
229
- {renderItemImage ? (
230
- renderItemImage({ item, index })
231
- ) : (
232
- <CardPoster
233
- content_offering_type={item.content_offering_type}
234
- posterUri={item.poster}
235
- theme={appliedTheme}
236
- borderRadius={borderRadius}
237
- posterWrapperStyle={styles.image}
238
- resizeMode={FastImage.resizeMode.cover}
239
- isLoading={isLoading}
240
- />
241
- )}
273
+ <CardPoster
274
+ posterUri={item.poster}
275
+ content_offering_type={item.content_offering_type}
276
+ theme={appliedTheme}
277
+ borderRadius={borderRadius}
278
+ posterWrapperStyle={styles.image}
279
+ resizeMode={FastImage.resizeMode.cover}
280
+ isLoading={isSkeleton || isLoading}
281
+ />
242
282
  </TouchableOpacity>
243
283
  );
244
284
  },
245
285
  [
246
- styles.item,
247
- styles.image,
248
- styles.skeleton,
249
- itemStyle,
250
- onPressItem,
251
- isLoading,
252
- renderItemImage,
253
286
  appliedTheme,
254
- borderRadius,
287
+ styles,
288
+ itemStyle,
255
289
  itemWidth,
256
290
  itemHeight,
257
- handleItemPress,
291
+ borderRadius,
292
+ isLoading,
293
+ onPressItem,
294
+ onDisplayAds,
295
+ screenDimensions,
296
+ viewportOffsets,
258
297
  ]
259
298
  );
260
- if (!initialData) return null;
261
- if (!isLoading && (!data || data.length === 0)) return null;
262
299
 
300
+ // Early Returns
301
+ if (!externalData) return null;
302
+ if (!isLoading && listData.length === 0 && !isEmpty) return null;
303
+
304
+ // Main Render
263
305
  return (
264
- <View
265
- style={[staticStyles.root, containerStyle]}
266
- testID={`movie-card-${section_id}`}
267
- >
306
+ <View style={[staticStyles.root, containerStyle]}>
268
307
  {isLoading ? (
269
308
  <SkeletonPlaceholder
270
309
  highlightColor={appliedTheme.colors.skeletonHighlightColor}
271
310
  backgroundColor={appliedTheme.colors.skeletonBaseColor}
272
311
  >
273
312
  <SkeletonPlaceholder.Item
274
- width={moderateScale(100)}
275
- height={verticalScale(14)}
276
- borderRadius={moderateScale(4)}
277
- marginLeft={moderateScale(12)}
278
- marginBottom={verticalScale(6)}
313
+ width={SKELETON_TITLE_WIDTH}
314
+ height={SKELETON_TITLE_HEIGHT}
315
+ borderRadius={SKELETON_TITLE_BORDER_RADIUS}
316
+ marginLeft={SKELETON_TITLE_MARGIN_LEFT}
317
+ marginBottom={SKELETON_TITLE_MARGIN_BOTTOM}
279
318
  />
280
319
  </SkeletonPlaceholder>
281
320
  ) : (
@@ -291,23 +330,17 @@ const MovieCardThree: React.FC<Props> = ({
291
330
  showAllProps={{ iconColor: appliedTheme.colors.textPrimary, theme }}
292
331
  />
293
332
  )}
333
+
294
334
  <Carousel
295
335
  ref={carouselRef}
296
- data={finalData as any}
297
- vertical={false}
336
+ data={finalData as IContentData[]}
298
337
  renderItem={renderItem}
299
- firstItem={1}
300
- inactiveSlideOpacity={0.6}
301
- inactiveSlideScale={0.9}
338
+ firstItem={CAROUSEL_FIRST_ITEM}
302
339
  sliderWidth={width}
303
340
  itemWidth={itemWidth}
304
- onSnapToItem={(index) => {
305
- if (isLoading || !pagination?.hasNextPage || !pagination?.nextPage)
306
- return;
307
- if (index >= finalData.length - 2) {
308
- debouncedLoadMore(pagination.nextPage);
309
- }
310
- }}
341
+ inactiveSlideOpacity={CAROUSEL_INACTIVE_OPACITY}
342
+ inactiveSlideScale={CAROUSEL_INACTIVE_SCALE}
343
+ onSnapToItem={handleSnapToItem}
311
344
  />
312
345
  </View>
313
346
  );