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

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 (512) 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 +133 -86
  14. package/lib/module/components/Auth/QrLogin/QrLogin.js.map +1 -1
  15. package/lib/module/components/Auth/QrLogin/components/QrViewArea.js +174 -109
  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/BottomSheet/BottomSheet.js +152 -0
  32. package/lib/module/components/BottomSheet/BottomSheet.js.map +1 -0
  33. package/lib/module/components/BottomSheet/index.js +4 -0
  34. package/lib/module/components/BottomSheet/index.js.map +1 -0
  35. package/lib/module/components/Button/BackBtn.js +46 -16
  36. package/lib/module/components/Button/BackBtn.js.map +1 -1
  37. package/lib/module/components/Button/PrimaryBtn.js +19 -13
  38. package/lib/module/components/Button/PrimaryBtn.js.map +1 -1
  39. package/lib/module/components/Button/SecondaryBtn.js +19 -13
  40. package/lib/module/components/Button/SecondaryBtn.js.map +1 -1
  41. package/lib/module/components/Button/TextButton.js +19 -13
  42. package/lib/module/components/Button/TextButton.js.map +1 -1
  43. package/lib/module/components/Content/Card/Category/Category.js +70 -37
  44. package/lib/module/components/Content/Card/Category/Category.js.map +1 -1
  45. package/lib/module/components/Content/Card/Sliders/Styles/One.js +40 -32
  46. package/lib/module/components/Content/Card/Sliders/Styles/One.js.map +1 -1
  47. package/lib/module/components/Content/Card/Sliders/Styles/Two.js +109 -48
  48. package/lib/module/components/Content/Card/Sliders/Styles/Two.js.map +1 -1
  49. package/lib/module/components/Content/Card/Styles/RotateInOut.js +4 -11
  50. package/lib/module/components/Content/Card/Styles/RotateInOut.js.map +1 -1
  51. package/lib/module/components/Content/Card/components/CardPoster.js +105 -43
  52. package/lib/module/components/Content/Card/components/CardPoster.js.map +1 -1
  53. package/lib/module/components/Content/Card/components/RentOrBuyIcon.js +18 -17
  54. package/lib/module/components/Content/Card/components/RentOrBuyIcon.js.map +1 -1
  55. package/lib/module/components/Content/Card/components/ThumbnailCard.js +78 -28
  56. package/lib/module/components/Content/Card/components/ThumbnailCard.js.map +1 -1
  57. package/lib/module/components/Content/Content.js +44 -25
  58. package/lib/module/components/Content/Content.js.map +1 -1
  59. package/lib/module/components/Content/Sections.js +37 -29
  60. package/lib/module/components/Content/Sections.js.map +1 -1
  61. package/lib/module/components/ContentView/ContentView.js +70 -41
  62. package/lib/module/components/ContentView/ContentView.js.map +1 -1
  63. package/lib/module/components/ContentView/MoreContentList.js +74 -40
  64. package/lib/module/components/ContentView/MoreContentList.js.map +1 -1
  65. package/lib/module/components/ContentView/components/AboutSection.js +40 -19
  66. package/lib/module/components/ContentView/components/AboutSection.js.map +1 -1
  67. package/lib/module/components/ContentView/components/CastCard.js +6 -7
  68. package/lib/module/components/ContentView/components/CastCard.js.map +1 -1
  69. package/lib/module/components/ContentView/components/EpisodeCard.js +2 -2
  70. package/lib/module/components/ContentView/components/EpisodeCard.js.map +1 -1
  71. package/lib/module/components/ContentView/components/GenreTags.js +25 -13
  72. package/lib/module/components/ContentView/components/GenreTags.js.map +1 -1
  73. package/lib/module/components/ContentView/components/HeroBanner.js +39 -11
  74. package/lib/module/components/ContentView/components/HeroBanner.js.map +1 -1
  75. package/lib/module/components/ContentView/components/MiniInfo.js +84 -77
  76. package/lib/module/components/ContentView/components/MiniInfo.js.map +1 -1
  77. package/lib/module/components/ContentView/components/PlayButton.js +11 -7
  78. package/lib/module/components/ContentView/components/PlayButton.js.map +1 -1
  79. package/lib/module/components/ContentView/components/Title.js +12 -12
  80. package/lib/module/components/ContentView/components/Title.js.map +1 -1
  81. package/lib/module/components/ContentView/components/TrailerButton.js +12 -7
  82. package/lib/module/components/ContentView/components/TrailerButton.js.map +1 -1
  83. package/lib/module/components/Fallbacks/NoContentFallback.js +27 -22
  84. package/lib/module/components/Fallbacks/NoContentFallback.js.map +1 -1
  85. package/lib/module/components/Fallbacks/NotFoundFallback.js +6 -4
  86. package/lib/module/components/Fallbacks/NotFoundFallback.js.map +1 -1
  87. package/lib/module/components/Headers/AppHeader.js +22 -13
  88. package/lib/module/components/Headers/AppHeader.js.map +1 -1
  89. package/lib/module/components/Headers/Three.js +6 -5
  90. package/lib/module/components/Headers/Three.js.map +1 -1
  91. package/lib/module/components/Headers/Two.js +19 -14
  92. package/lib/module/components/Headers/Two.js.map +1 -1
  93. package/lib/module/components/Input/InputOne.js +46 -31
  94. package/lib/module/components/Input/InputOne.js.map +1 -1
  95. package/lib/module/components/Loader/Loader.js +2 -2
  96. package/lib/module/components/Loader/Loader.js.map +1 -1
  97. package/lib/module/components/Logo/Logo.js +17 -14
  98. package/lib/module/components/Logo/Logo.js.map +1 -1
  99. package/lib/module/components/Reels/ReelsSeries/MediaControls/BottomControls.js +134 -0
  100. package/lib/module/components/Reels/ReelsSeries/MediaControls/BottomControls.js.map +1 -0
  101. package/lib/module/components/Reels/ReelsSeries/MediaControls/MediaControlsProvider.js +154 -0
  102. package/lib/module/components/Reels/ReelsSeries/MediaControls/MediaControlsProvider.js.map +1 -0
  103. package/lib/module/components/Reels/ReelsSeries/MediaControls/MiddleControls.js +173 -0
  104. package/lib/module/components/Reels/ReelsSeries/MediaControls/MiddleControls.js.map +1 -0
  105. package/lib/module/components/Reels/ReelsSeries/MediaControls/RightControls.js +77 -0
  106. package/lib/module/components/Reels/ReelsSeries/MediaControls/RightControls.js.map +1 -0
  107. package/lib/module/components/Reels/ReelsSeries/MediaControls/TopControls.js +132 -0
  108. package/lib/module/components/Reels/ReelsSeries/MediaControls/TopControls.js.map +1 -0
  109. package/lib/module/components/Reels/ReelsSeries/Model/DetailsModal.js +165 -0
  110. package/lib/module/components/Reels/ReelsSeries/Model/DetailsModal.js.map +1 -0
  111. package/lib/module/components/Reels/ReelsSeries/Model/SettingModal.js +106 -0
  112. package/lib/module/components/Reels/ReelsSeries/Model/SettingModal.js.map +1 -0
  113. package/lib/module/components/Reels/ReelsSeries/Model/UnlockModal.js +124 -0
  114. package/lib/module/components/Reels/ReelsSeries/Model/UnlockModal.js.map +1 -0
  115. package/lib/module/components/Reels/ReelsSeries/ReelsSeries.js +102 -64
  116. package/lib/module/components/Reels/ReelsSeries/ReelsSeries.js.map +1 -1
  117. package/lib/module/components/Reels/ReelsSeries/ReelsSeriesItem.js +241 -232
  118. package/lib/module/components/Reels/ReelsSeries/ReelsSeriesItem.js.map +1 -1
  119. package/lib/module/components/Reels/ReelsSeries/components/AnimatedThreeLines.js +153 -0
  120. package/lib/module/components/Reels/ReelsSeries/components/AnimatedThreeLines.js.map +1 -0
  121. package/lib/module/components/Reels/ReelsSeries/{Model → components}/Episodes.js +46 -36
  122. package/lib/module/components/Reels/ReelsSeries/components/Episodes.js.map +1 -0
  123. package/lib/module/components/Reels/ReelsSeries/components/GradientOverlay.js +35 -0
  124. package/lib/module/components/Reels/ReelsSeries/components/GradientOverlay.js.map +1 -0
  125. package/lib/module/components/Reels/ReelsSeries/components/Like.js +37 -0
  126. package/lib/module/components/Reels/ReelsSeries/components/Like.js.map +1 -0
  127. package/lib/module/components/Reels/ReelsSeries/components/RotatingLoader.js +55 -0
  128. package/lib/module/components/Reels/ReelsSeries/components/RotatingLoader.js.map +1 -0
  129. package/lib/module/components/Reels/ReelsSeries/components/Synopsis.js +268 -0
  130. package/lib/module/components/Reels/ReelsSeries/components/Synopsis.js.map +1 -0
  131. package/lib/module/components/Reels/ReelsSeries/components/VideoControls/QualityControl.js +143 -0
  132. package/lib/module/components/Reels/ReelsSeries/components/VideoControls/QualityControl.js.map +1 -0
  133. package/lib/module/components/Reels/ReelsSeries/components/VideoControls/SpeedControl.js +56 -0
  134. package/lib/module/components/Reels/ReelsSeries/components/VideoControls/SpeedControl.js.map +1 -0
  135. package/lib/module/components/Reels/ReelsSeries/components/VideoControls/index.js +5 -0
  136. package/lib/module/components/Reels/ReelsSeries/components/VideoControls/index.js.map +1 -0
  137. package/lib/module/components/Reels/utils/Controls/gestureUtils.js +30 -0
  138. package/lib/module/components/Reels/utils/Controls/gestureUtils.js.map +1 -0
  139. package/lib/module/components/Reels/utils/Controls/index.js +7 -0
  140. package/lib/module/components/Reels/utils/Controls/index.js.map +1 -0
  141. package/lib/module/components/Reels/utils/Controls/overlayUtils.js +28 -0
  142. package/lib/module/components/Reels/utils/Controls/overlayUtils.js.map +1 -0
  143. package/lib/module/components/Reels/utils/Controls/videoControlsConstants.js +27 -0
  144. package/lib/module/components/Reels/utils/Controls/videoControlsConstants.js.map +1 -0
  145. package/lib/module/components/Reels/utils/Controls/videoRef.js +5 -0
  146. package/lib/module/components/Reels/utils/Controls/videoRef.js.map +1 -0
  147. package/lib/module/components/Reels/utils/index.js +4 -0
  148. package/lib/module/components/Reels/utils/index.js.map +1 -0
  149. package/lib/module/components/Reels/utils/timeoutUtils.js +24 -0
  150. package/lib/module/components/Reels/utils/timeoutUtils.js.map +1 -0
  151. package/lib/module/components/Search/One.js +2 -1
  152. package/lib/module/components/Search/One.js.map +1 -1
  153. package/lib/module/components/Search/components/SearchCard.js +15 -19
  154. package/lib/module/components/Search/components/SearchCard.js.map +1 -1
  155. package/lib/module/components/Settings/AppSettings.js +97 -62
  156. package/lib/module/components/Settings/AppSettings.js.map +1 -1
  157. package/lib/module/components/Subscription/SubOne.js +313 -254
  158. package/lib/module/components/Subscription/SubOne.js.map +1 -1
  159. package/lib/module/components/Text/Text.js +15 -12
  160. package/lib/module/components/Text/Text.js.map +1 -1
  161. package/lib/module/components/User/DeviceSessions/DeviceSessions.js +25 -23
  162. package/lib/module/components/User/DeviceSessions/DeviceSessions.js.map +1 -1
  163. package/lib/module/components/User/ProfileUpdate/ProfileUpdate.js +23 -18
  164. package/lib/module/components/User/ProfileUpdate/ProfileUpdate.js.map +1 -1
  165. package/lib/module/components/User/PurchaseHistory/PurchaseHistory.js +38 -24
  166. package/lib/module/components/User/PurchaseHistory/PurchaseHistory.js.map +1 -1
  167. package/lib/module/components/User/WatchHistory/WatchHistory.js +21 -14
  168. package/lib/module/components/User/WatchHistory/WatchHistory.js.map +1 -1
  169. package/lib/module/components/User/WatchLater/WatchLater.js +30 -21
  170. package/lib/module/components/User/WatchLater/WatchLater.js.map +1 -1
  171. package/lib/module/components/User/components/UserAvatar.js +38 -19
  172. package/lib/module/components/User/components/UserAvatar.js.map +1 -1
  173. package/lib/module/components/User/components/UserSection.js +37 -17
  174. package/lib/module/components/User/components/UserSection.js.map +1 -1
  175. package/lib/module/components/View/View.js +7 -4
  176. package/lib/module/components/View/View.js.map +1 -1
  177. package/lib/module/components/index.js +1 -1
  178. package/lib/module/components/index.js.map +1 -1
  179. package/lib/module/hooks/index.js +17 -0
  180. package/lib/module/hooks/index.js.map +1 -0
  181. package/lib/module/hooks/useDebounce.js +25 -6
  182. package/lib/module/hooks/useDebounce.js.map +1 -1
  183. package/lib/module/hooks/useKeyboard.js +7 -4
  184. package/lib/module/hooks/useKeyboard.js.map +1 -1
  185. package/lib/module/hooks/useNavigationMode.js +10 -4
  186. package/lib/module/hooks/useNavigationMode.js.map +1 -1
  187. package/lib/module/hooks/usePaginatedSection.js +1 -1
  188. package/lib/module/hooks/usePaginatedSection.js.map +1 -1
  189. package/lib/module/hooks/usePrevious.js +30 -0
  190. package/lib/module/hooks/usePrevious.js.map +1 -0
  191. package/lib/module/hooks/useSafeCallback.js +33 -0
  192. package/lib/module/hooks/useSafeCallback.js.map +1 -0
  193. package/lib/module/hooks/useSkeletonItems.js +33 -0
  194. package/lib/module/hooks/useSkeletonItems.js.map +1 -0
  195. package/lib/module/hooks/useSplashCache.js +2 -1
  196. package/lib/module/hooks/useSplashCache.js.map +1 -1
  197. package/lib/module/hooks/useThemeColors.js +33 -0
  198. package/lib/module/hooks/useThemeColors.js.map +1 -0
  199. package/lib/module/theme/ThemeProvider.js +24 -15
  200. package/lib/module/theme/ThemeProvider.js.map +1 -1
  201. package/lib/module/theme/hook/useInternalTheme.js +18 -11
  202. package/lib/module/theme/hook/useInternalTheme.js.map +1 -1
  203. package/lib/module/theme/hook/useThemeStatusBar.js +10 -4
  204. package/lib/module/theme/hook/useThemeStatusBar.js.map +1 -1
  205. package/lib/module/theme/themes.js +3 -3
  206. package/lib/typescript/src/Styles/globalStyles.d.ts +0 -5
  207. package/lib/typescript/src/Styles/globalStyles.d.ts.map +1 -1
  208. package/lib/typescript/src/components/Auth/AuthProvider/AuthProvider.d.ts.map +1 -1
  209. package/lib/typescript/src/components/Auth/ForgotPassword/ForgotPassword.d.ts.map +1 -1
  210. package/lib/typescript/src/components/Auth/Login/LoginWithEmail.d.ts.map +1 -1
  211. package/lib/typescript/src/components/Auth/Login/LoginWithPhone.d.ts.map +1 -1
  212. package/lib/typescript/src/components/Auth/OTP/OTP.d.ts.map +1 -1
  213. package/lib/typescript/src/components/Auth/QrLogin/QrLogin.d.ts +0 -15
  214. package/lib/typescript/src/components/Auth/QrLogin/QrLogin.d.ts.map +1 -1
  215. package/lib/typescript/src/components/Auth/QrLogin/components/QrViewArea.d.ts +0 -1
  216. package/lib/typescript/src/components/Auth/QrLogin/components/QrViewArea.d.ts.map +1 -1
  217. package/lib/typescript/src/components/Auth/SignUp/SignUp.d.ts.map +1 -1
  218. package/lib/typescript/src/components/Auth/SplashScreen/SplashScreen.d.ts.map +1 -1
  219. package/lib/typescript/src/components/Auth/SplashScreen/components/SplashImage/SplashImage.d.ts.map +1 -1
  220. package/lib/typescript/src/components/Auth/SplashScreen/components/SplashLottie/SplashLottie.d.ts.map +1 -1
  221. package/lib/typescript/src/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.d.ts.map +1 -1
  222. package/lib/typescript/src/components/Auth/index.d.ts.map +1 -1
  223. package/lib/typescript/src/components/BackgroundLayout/BackgroundLayout.d.ts +1 -1
  224. package/lib/typescript/src/components/BackgroundLayout/BackgroundLayout.d.ts.map +1 -1
  225. package/lib/typescript/src/components/BlogView/BlogView.d.ts +2 -1
  226. package/lib/typescript/src/components/BlogView/BlogView.d.ts.map +1 -1
  227. package/lib/typescript/src/components/BottomSheet/BottomSheet.d.ts +18 -0
  228. package/lib/typescript/src/components/BottomSheet/BottomSheet.d.ts.map +1 -0
  229. package/lib/typescript/src/components/BottomSheet/index.d.ts +3 -0
  230. package/lib/typescript/src/components/BottomSheet/index.d.ts.map +1 -0
  231. package/lib/typescript/src/components/Button/BackBtn.d.ts +5 -3
  232. package/lib/typescript/src/components/Button/BackBtn.d.ts.map +1 -1
  233. package/lib/typescript/src/components/Button/PrimaryBtn.d.ts +2 -1
  234. package/lib/typescript/src/components/Button/PrimaryBtn.d.ts.map +1 -1
  235. package/lib/typescript/src/components/Button/SecondaryBtn.d.ts +2 -1
  236. package/lib/typescript/src/components/Button/SecondaryBtn.d.ts.map +1 -1
  237. package/lib/typescript/src/components/Button/TextButton.d.ts +2 -2
  238. package/lib/typescript/src/components/Button/TextButton.d.ts.map +1 -1
  239. package/lib/typescript/src/components/Button/index.d.ts +4 -2
  240. package/lib/typescript/src/components/Button/index.d.ts.map +1 -1
  241. package/lib/typescript/src/components/Content/Card/Category/Category.d.ts.map +1 -1
  242. package/lib/typescript/src/components/Content/Card/Sliders/Styles/One.d.ts.map +1 -1
  243. package/lib/typescript/src/components/Content/Card/Sliders/Styles/Two.d.ts.map +1 -1
  244. package/lib/typescript/src/components/Content/Card/Styles/RotateInOut.d.ts.map +1 -1
  245. package/lib/typescript/src/components/Content/Card/components/CardPoster.d.ts.map +1 -1
  246. package/lib/typescript/src/components/Content/Card/components/RentOrBuyIcon.d.ts +2 -2
  247. package/lib/typescript/src/components/Content/Card/components/RentOrBuyIcon.d.ts.map +1 -1
  248. package/lib/typescript/src/components/Content/Card/components/ThumbnailCard.d.ts +2 -0
  249. package/lib/typescript/src/components/Content/Card/components/ThumbnailCard.d.ts.map +1 -1
  250. package/lib/typescript/src/components/Content/Content.d.ts +2 -0
  251. package/lib/typescript/src/components/Content/Content.d.ts.map +1 -1
  252. package/lib/typescript/src/components/Content/Sections.d.ts +2 -2
  253. package/lib/typescript/src/components/Content/Sections.d.ts.map +1 -1
  254. package/lib/typescript/src/components/ContentView/ContentView.d.ts +6 -1
  255. package/lib/typescript/src/components/ContentView/ContentView.d.ts.map +1 -1
  256. package/lib/typescript/src/components/ContentView/MoreContentList.d.ts.map +1 -1
  257. package/lib/typescript/src/components/ContentView/components/AboutSection.d.ts +2 -1
  258. package/lib/typescript/src/components/ContentView/components/AboutSection.d.ts.map +1 -1
  259. package/lib/typescript/src/components/ContentView/components/CastCard.d.ts +6 -1
  260. package/lib/typescript/src/components/ContentView/components/CastCard.d.ts.map +1 -1
  261. package/lib/typescript/src/components/ContentView/components/EpisodeCard.d.ts +2 -1
  262. package/lib/typescript/src/components/ContentView/components/EpisodeCard.d.ts.map +1 -1
  263. package/lib/typescript/src/components/ContentView/components/GenreTags.d.ts +1 -1
  264. package/lib/typescript/src/components/ContentView/components/GenreTags.d.ts.map +1 -1
  265. package/lib/typescript/src/components/ContentView/components/HeroBanner.d.ts +2 -1
  266. package/lib/typescript/src/components/ContentView/components/HeroBanner.d.ts.map +1 -1
  267. package/lib/typescript/src/components/ContentView/components/MiniInfo.d.ts +1 -1
  268. package/lib/typescript/src/components/ContentView/components/MiniInfo.d.ts.map +1 -1
  269. package/lib/typescript/src/components/ContentView/components/PlayButton.d.ts +2 -1
  270. package/lib/typescript/src/components/ContentView/components/PlayButton.d.ts.map +1 -1
  271. package/lib/typescript/src/components/ContentView/components/Title.d.ts +1 -1
  272. package/lib/typescript/src/components/ContentView/components/Title.d.ts.map +1 -1
  273. package/lib/typescript/src/components/ContentView/components/TrailerButton.d.ts +2 -1
  274. package/lib/typescript/src/components/ContentView/components/TrailerButton.d.ts.map +1 -1
  275. package/lib/typescript/src/components/Fallbacks/NoContentFallback.d.ts +2 -1
  276. package/lib/typescript/src/components/Fallbacks/NoContentFallback.d.ts.map +1 -1
  277. package/lib/typescript/src/components/Fallbacks/NotFoundFallback.d.ts +1 -1
  278. package/lib/typescript/src/components/Fallbacks/NotFoundFallback.d.ts.map +1 -1
  279. package/lib/typescript/src/components/Headers/AppHeader.d.ts +2 -2
  280. package/lib/typescript/src/components/Headers/AppHeader.d.ts.map +1 -1
  281. package/lib/typescript/src/components/Headers/Three.d.ts +2 -2
  282. package/lib/typescript/src/components/Headers/Three.d.ts.map +1 -1
  283. package/lib/typescript/src/components/Headers/Two.d.ts +2 -2
  284. package/lib/typescript/src/components/Headers/Two.d.ts.map +1 -1
  285. package/lib/typescript/src/components/Headers/index.d.ts +2 -2
  286. package/lib/typescript/src/components/Input/Input.d.ts +1 -1
  287. package/lib/typescript/src/components/Input/InputOne.d.ts +2 -2
  288. package/lib/typescript/src/components/Input/InputOne.d.ts.map +1 -1
  289. package/lib/typescript/src/components/Loader/Loader.d.ts.map +1 -1
  290. package/lib/typescript/src/components/Logo/Logo.d.ts +2 -1
  291. package/lib/typescript/src/components/Logo/Logo.d.ts.map +1 -1
  292. package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/BottomControls.d.ts +14 -0
  293. package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/BottomControls.d.ts.map +1 -0
  294. package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/MediaControlsProvider.d.ts +60 -0
  295. package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/MediaControlsProvider.d.ts.map +1 -0
  296. package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/MiddleControls.d.ts +14 -0
  297. package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/MiddleControls.d.ts.map +1 -0
  298. package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/RightControls.d.ts +14 -0
  299. package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/RightControls.d.ts.map +1 -0
  300. package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/TopControls.d.ts +12 -0
  301. package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/TopControls.d.ts.map +1 -0
  302. package/lib/typescript/src/components/Reels/ReelsSeries/Model/DetailsModal.d.ts +16 -0
  303. package/lib/typescript/src/components/Reels/ReelsSeries/Model/DetailsModal.d.ts.map +1 -0
  304. package/lib/typescript/src/components/Reels/ReelsSeries/Model/SettingModal.d.ts +15 -0
  305. package/lib/typescript/src/components/Reels/ReelsSeries/Model/SettingModal.d.ts.map +1 -0
  306. package/lib/typescript/src/components/Reels/ReelsSeries/Model/UnlockModal.d.ts +14 -0
  307. package/lib/typescript/src/components/Reels/ReelsSeries/Model/UnlockModal.d.ts.map +1 -0
  308. package/lib/typescript/src/components/Reels/ReelsSeries/ReelsSeries.d.ts +8 -2
  309. package/lib/typescript/src/components/Reels/ReelsSeries/ReelsSeries.d.ts.map +1 -1
  310. package/lib/typescript/src/components/Reels/ReelsSeries/ReelsSeriesItem.d.ts +8 -2
  311. package/lib/typescript/src/components/Reels/ReelsSeries/ReelsSeriesItem.d.ts.map +1 -1
  312. package/lib/typescript/src/components/Reels/ReelsSeries/components/AnimatedThreeLines.d.ts +13 -0
  313. package/lib/typescript/src/components/Reels/ReelsSeries/components/AnimatedThreeLines.d.ts.map +1 -0
  314. package/lib/typescript/src/components/Reels/ReelsSeries/{Model → components}/Episodes.d.ts +3 -2
  315. package/lib/typescript/src/components/Reels/ReelsSeries/components/Episodes.d.ts.map +1 -0
  316. package/lib/typescript/src/components/Reels/ReelsSeries/components/GradientOverlay.d.ts +7 -0
  317. package/lib/typescript/src/components/Reels/ReelsSeries/components/GradientOverlay.d.ts.map +1 -0
  318. package/lib/typescript/src/components/Reels/ReelsSeries/components/Like.d.ts +7 -0
  319. package/lib/typescript/src/components/Reels/ReelsSeries/components/Like.d.ts.map +1 -0
  320. package/lib/typescript/src/components/Reels/ReelsSeries/components/RotatingLoader.d.ts +12 -0
  321. package/lib/typescript/src/components/Reels/ReelsSeries/components/RotatingLoader.d.ts.map +1 -0
  322. package/lib/typescript/src/components/Reels/ReelsSeries/components/Synopsis.d.ts +12 -0
  323. package/lib/typescript/src/components/Reels/ReelsSeries/components/Synopsis.d.ts.map +1 -0
  324. package/lib/typescript/src/components/Reels/ReelsSeries/components/VideoControls/QualityControl.d.ts +11 -0
  325. package/lib/typescript/src/components/Reels/ReelsSeries/components/VideoControls/QualityControl.d.ts.map +1 -0
  326. package/lib/typescript/src/components/Reels/ReelsSeries/components/VideoControls/SpeedControl.d.ts +10 -0
  327. package/lib/typescript/src/components/Reels/ReelsSeries/components/VideoControls/SpeedControl.d.ts.map +1 -0
  328. package/lib/typescript/src/components/Reels/ReelsSeries/components/VideoControls/index.d.ts +3 -0
  329. package/lib/typescript/src/components/Reels/ReelsSeries/components/VideoControls/index.d.ts.map +1 -0
  330. package/lib/typescript/src/components/Reels/ReelsSeries/types.d.ts +13 -0
  331. package/lib/typescript/src/components/Reels/ReelsSeries/types.d.ts.map +1 -1
  332. package/lib/typescript/src/components/Reels/utils/Controls/gestureUtils.d.ts +10 -0
  333. package/lib/typescript/src/components/Reels/utils/Controls/gestureUtils.d.ts.map +1 -0
  334. package/lib/typescript/src/components/Reels/utils/Controls/index.d.ts +5 -0
  335. package/lib/typescript/src/components/Reels/utils/Controls/index.d.ts.map +1 -0
  336. package/lib/typescript/src/components/Reels/utils/Controls/overlayUtils.d.ts +12 -0
  337. package/lib/typescript/src/components/Reels/utils/Controls/overlayUtils.d.ts.map +1 -0
  338. package/lib/typescript/src/components/Reels/utils/Controls/videoControlsConstants.d.ts +24 -0
  339. package/lib/typescript/src/components/Reels/utils/Controls/videoControlsConstants.d.ts.map +1 -0
  340. package/lib/typescript/src/components/Reels/utils/Controls/videoRef.d.ts +3 -0
  341. package/lib/typescript/src/components/Reels/utils/Controls/videoRef.d.ts.map +1 -0
  342. package/lib/typescript/src/components/Reels/utils/index.d.ts +2 -0
  343. package/lib/typescript/src/components/Reels/utils/index.d.ts.map +1 -0
  344. package/lib/typescript/src/components/Reels/utils/timeoutUtils.d.ts +14 -0
  345. package/lib/typescript/src/components/Reels/utils/timeoutUtils.d.ts.map +1 -0
  346. package/lib/typescript/src/components/Search/One.d.ts.map +1 -1
  347. package/lib/typescript/src/components/Search/components/SearchCard.d.ts +2 -5
  348. package/lib/typescript/src/components/Search/components/SearchCard.d.ts.map +1 -1
  349. package/lib/typescript/src/components/Search/index.d.ts +1 -1
  350. package/lib/typescript/src/components/Settings/AppSettings.d.ts +2 -2
  351. package/lib/typescript/src/components/Settings/AppSettings.d.ts.map +1 -1
  352. package/lib/typescript/src/components/Subscription/SubOne.d.ts.map +1 -1
  353. package/lib/typescript/src/components/Subscription/index.d.ts.map +1 -1
  354. package/lib/typescript/src/components/Text/Text.d.ts +2 -2
  355. package/lib/typescript/src/components/Text/Text.d.ts.map +1 -1
  356. package/lib/typescript/src/components/User/DeviceSessions/DeviceSessions.d.ts +1 -1
  357. package/lib/typescript/src/components/User/DeviceSessions/DeviceSessions.d.ts.map +1 -1
  358. package/lib/typescript/src/components/User/ProfileUpdate/ProfileUpdate.d.ts +1 -1
  359. package/lib/typescript/src/components/User/ProfileUpdate/ProfileUpdate.d.ts.map +1 -1
  360. package/lib/typescript/src/components/User/PurchaseHistory/PurchaseHistory.d.ts +1 -1
  361. package/lib/typescript/src/components/User/PurchaseHistory/PurchaseHistory.d.ts.map +1 -1
  362. package/lib/typescript/src/components/User/WatchHistory/WatchHistory.d.ts +1 -1
  363. package/lib/typescript/src/components/User/WatchHistory/WatchHistory.d.ts.map +1 -1
  364. package/lib/typescript/src/components/User/WatchLater/WatchLater.d.ts +1 -1
  365. package/lib/typescript/src/components/User/WatchLater/WatchLater.d.ts.map +1 -1
  366. package/lib/typescript/src/components/User/components/UserAvatar.d.ts +1 -1
  367. package/lib/typescript/src/components/User/components/UserAvatar.d.ts.map +1 -1
  368. package/lib/typescript/src/components/User/components/UserSection.d.ts +1 -1
  369. package/lib/typescript/src/components/User/components/UserSection.d.ts.map +1 -1
  370. package/lib/typescript/src/components/View/View.d.ts +2 -0
  371. package/lib/typescript/src/components/View/View.d.ts.map +1 -1
  372. package/lib/typescript/src/components/index.d.ts +1 -1
  373. package/lib/typescript/src/components/index.d.ts.map +1 -1
  374. package/lib/typescript/src/hooks/index.d.ts +14 -0
  375. package/lib/typescript/src/hooks/index.d.ts.map +1 -0
  376. package/lib/typescript/src/hooks/useDebounce.d.ts.map +1 -1
  377. package/lib/typescript/src/hooks/useKeyboard.d.ts.map +1 -1
  378. package/lib/typescript/src/hooks/useNavigationMode.d.ts.map +1 -1
  379. package/lib/typescript/src/hooks/usePrevious.d.ts +12 -0
  380. package/lib/typescript/src/hooks/usePrevious.d.ts.map +1 -0
  381. package/lib/typescript/src/hooks/useSafeCallback.d.ts +15 -0
  382. package/lib/typescript/src/hooks/useSafeCallback.d.ts.map +1 -0
  383. package/lib/typescript/src/hooks/useSkeletonItems.d.ts +11 -0
  384. package/lib/typescript/src/hooks/useSkeletonItems.d.ts.map +1 -0
  385. package/lib/typescript/src/hooks/useSplashCache.d.ts.map +1 -1
  386. package/lib/typescript/src/hooks/useThemeColors.d.ts +27 -0
  387. package/lib/typescript/src/hooks/useThemeColors.d.ts.map +1 -0
  388. package/lib/typescript/src/theme/ThemeProvider.d.ts.map +1 -1
  389. package/lib/typescript/src/theme/hook/useInternalTheme.d.ts.map +1 -1
  390. package/lib/typescript/src/theme/hook/useThemeStatusBar.d.ts.map +1 -1
  391. package/package.json +2 -2
  392. package/src/Styles/globalStyles.ts +0 -5
  393. package/src/components/Auth/AuthProvider/AuthProvider.tsx +288 -212
  394. package/src/components/Auth/ForgotPassword/ForgotPassword.tsx +11 -4
  395. package/src/components/Auth/Login/LoginWithEmail.tsx +266 -238
  396. package/src/components/Auth/Login/LoginWithPhone.tsx +18 -6
  397. package/src/components/Auth/OTP/OTP.tsx +21 -5
  398. package/src/components/Auth/QrLogin/QrLogin.tsx +225 -185
  399. package/src/components/Auth/QrLogin/components/QrViewArea.tsx +282 -166
  400. package/src/components/Auth/SignUp/SignUp.tsx +312 -293
  401. package/src/components/Auth/SplashScreen/SplashScreen.tsx +186 -131
  402. package/src/components/Auth/SplashScreen/components/SplashImage/SplashImage.tsx +32 -15
  403. package/src/components/Auth/SplashScreen/components/SplashLottie/SplashLottie.tsx +11 -5
  404. package/src/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.tsx +34 -18
  405. package/src/components/BackgroundLayout/BackgroundLayout.tsx +43 -37
  406. package/src/components/BlogView/BlogView.tsx +66 -30
  407. package/src/components/BottomSheet/BottomSheet.tsx +195 -0
  408. package/src/components/BottomSheet/index.ts +2 -0
  409. package/src/components/Button/BackBtn.tsx +87 -24
  410. package/src/components/Button/PrimaryBtn.tsx +42 -25
  411. package/src/components/Button/SecondaryBtn.tsx +41 -25
  412. package/src/components/Button/TextButton.tsx +54 -32
  413. package/src/components/Content/Card/Category/Category.tsx +94 -56
  414. package/src/components/Content/Card/Sliders/Styles/One.tsx +63 -47
  415. package/src/components/Content/Card/Sliders/Styles/Two.tsx +131 -51
  416. package/src/components/Content/Card/Styles/RotateInOut.tsx +7 -9
  417. package/src/components/Content/Card/components/CardPoster.tsx +136 -55
  418. package/src/components/Content/Card/components/RentOrBuyIcon.tsx +58 -38
  419. package/src/components/Content/Card/components/ThumbnailCard.tsx +122 -47
  420. package/src/components/Content/Content.tsx +164 -97
  421. package/src/components/Content/Sections.tsx +99 -43
  422. package/src/components/ContentView/ContentView.tsx +194 -128
  423. package/src/components/ContentView/MoreContentList.tsx +215 -151
  424. package/src/components/ContentView/components/AboutSection.tsx +132 -93
  425. package/src/components/ContentView/components/CastCard.tsx +148 -138
  426. package/src/components/ContentView/components/EpisodeCard.tsx +160 -155
  427. package/src/components/ContentView/components/GenreTags.tsx +68 -53
  428. package/src/components/ContentView/components/HeroBanner.tsx +326 -284
  429. package/src/components/ContentView/components/MiniInfo.tsx +181 -159
  430. package/src/components/ContentView/components/PlayButton.tsx +27 -16
  431. package/src/components/ContentView/components/Title.tsx +89 -72
  432. package/src/components/ContentView/components/TrailerButton.tsx +35 -22
  433. package/src/components/Fallbacks/NoContentFallback.tsx +107 -103
  434. package/src/components/Fallbacks/NotFoundFallback.tsx +12 -4
  435. package/src/components/Headers/AppHeader.tsx +42 -26
  436. package/src/components/Headers/Three.tsx +12 -8
  437. package/src/components/Headers/Two.tsx +31 -10
  438. package/src/components/Input/InputOne.tsx +136 -108
  439. package/src/components/Loader/Loader.tsx +2 -2
  440. package/src/components/Logo/Logo.tsx +43 -27
  441. package/src/components/Reels/ReelsSeries/MediaControls/BottomControls.tsx +156 -0
  442. package/src/components/Reels/ReelsSeries/MediaControls/MediaControlsProvider.tsx +234 -0
  443. package/src/components/Reels/ReelsSeries/MediaControls/MiddleControls.tsx +196 -0
  444. package/src/components/Reels/ReelsSeries/MediaControls/RightControls.tsx +92 -0
  445. package/src/components/Reels/ReelsSeries/MediaControls/TopControls.tsx +163 -0
  446. package/src/components/Reels/ReelsSeries/Model/DetailsModal.tsx +210 -0
  447. package/src/components/Reels/ReelsSeries/Model/SettingModal.tsx +143 -0
  448. package/src/components/Reels/ReelsSeries/Model/UnlockModal.tsx +154 -0
  449. package/src/components/Reels/ReelsSeries/ReelsSeries.tsx +142 -74
  450. package/src/components/Reels/ReelsSeries/ReelsSeriesItem.tsx +349 -250
  451. package/src/components/Reels/ReelsSeries/components/AnimatedThreeLines.tsx +184 -0
  452. package/src/components/Reels/ReelsSeries/{Model → components}/Episodes.tsx +54 -33
  453. package/src/components/Reels/ReelsSeries/components/GradientOverlay.tsx +41 -0
  454. package/src/components/Reels/ReelsSeries/components/Like.tsx +40 -0
  455. package/src/components/Reels/ReelsSeries/components/RotatingLoader.tsx +79 -0
  456. package/src/components/Reels/ReelsSeries/components/Synopsis.tsx +332 -0
  457. package/src/components/Reels/ReelsSeries/components/VideoControls/QualityControl.tsx +190 -0
  458. package/src/components/Reels/ReelsSeries/components/VideoControls/SpeedControl.tsx +80 -0
  459. package/src/components/Reels/ReelsSeries/components/VideoControls/index.ts +2 -0
  460. package/src/components/Reels/ReelsSeries/types.ts +13 -2
  461. package/src/components/Reels/utils/Controls/gestureUtils.ts +42 -0
  462. package/src/components/Reels/utils/Controls/index.ts +4 -0
  463. package/src/components/Reels/utils/Controls/overlayUtils.ts +35 -0
  464. package/src/components/Reels/utils/Controls/videoControlsConstants.ts +25 -0
  465. package/src/components/Reels/utils/Controls/videoRef.ts +4 -0
  466. package/src/components/Reels/utils/index.ts +1 -0
  467. package/src/components/Reels/utils/timeoutUtils.ts +29 -0
  468. package/src/components/Search/One.tsx +2 -4
  469. package/src/components/Search/components/SearchCard.tsx +19 -13
  470. package/src/components/Settings/AppSettings.tsx +217 -128
  471. package/src/components/Subscription/SubOne.tsx +394 -317
  472. package/src/components/Text/Text.tsx +33 -22
  473. package/src/components/User/DeviceSessions/DeviceSessions.tsx +129 -102
  474. package/src/components/User/ProfileUpdate/ProfileUpdate.tsx +36 -17
  475. package/src/components/User/PurchaseHistory/PurchaseHistory.tsx +194 -140
  476. package/src/components/User/WatchHistory/WatchHistory.tsx +63 -36
  477. package/src/components/User/WatchLater/WatchLater.tsx +119 -81
  478. package/src/components/User/components/UserAvatar.tsx +49 -15
  479. package/src/components/User/components/UserSection.tsx +71 -37
  480. package/src/components/View/View.tsx +10 -2
  481. package/src/components/index.ts +1 -1
  482. package/src/hooks/index.ts +14 -0
  483. package/src/hooks/useDebounce.ts +25 -6
  484. package/src/hooks/useKeyboard.ts +12 -5
  485. package/src/hooks/useNavigationMode.ts +16 -5
  486. package/src/hooks/usePaginatedSection.ts +1 -1
  487. package/src/hooks/usePrevious.ts +28 -0
  488. package/src/hooks/useSafeCallback.ts +43 -0
  489. package/src/hooks/useSkeletonItems.ts +30 -0
  490. package/src/hooks/useSplashCache.ts +2 -1
  491. package/src/hooks/useThemeColors.ts +51 -0
  492. package/src/theme/ThemeProvider.tsx +33 -11
  493. package/src/theme/hook/useInternalTheme.ts +19 -13
  494. package/src/theme/hook/useThemeStatusBar.ts +14 -5
  495. package/src/theme/themes.ts +3 -3
  496. package/lib/module/components/Reels/ReelsSeries/Model/Episodes.js.map +0 -1
  497. package/lib/module/components/Reels/ReelsSeries/Model/Synopsis.js +0 -212
  498. package/lib/module/components/Reels/ReelsSeries/Model/Synopsis.js.map +0 -1
  499. package/lib/module/components/Reels/ReelsSeries/ReelSeriesDetailsModal.js +0 -182
  500. package/lib/module/components/Reels/ReelsSeries/ReelSeriesDetailsModal.js.map +0 -1
  501. package/lib/module/components/Reels/ReelsSeries/ReelSeriesOverlay.js +0 -203
  502. package/lib/module/components/Reels/ReelsSeries/ReelSeriesOverlay.js.map +0 -1
  503. package/lib/typescript/src/components/Reels/ReelsSeries/Model/Episodes.d.ts.map +0 -1
  504. package/lib/typescript/src/components/Reels/ReelsSeries/Model/Synopsis.d.ts +0 -9
  505. package/lib/typescript/src/components/Reels/ReelsSeries/Model/Synopsis.d.ts.map +0 -1
  506. package/lib/typescript/src/components/Reels/ReelsSeries/ReelSeriesDetailsModal.d.ts +0 -13
  507. package/lib/typescript/src/components/Reels/ReelsSeries/ReelSeriesDetailsModal.d.ts.map +0 -1
  508. package/lib/typescript/src/components/Reels/ReelsSeries/ReelSeriesOverlay.d.ts +0 -18
  509. package/lib/typescript/src/components/Reels/ReelsSeries/ReelSeriesOverlay.d.ts.map +0 -1
  510. package/src/components/Reels/ReelsSeries/Model/Synopsis.tsx +0 -242
  511. package/src/components/Reels/ReelsSeries/ReelSeriesDetailsModal.tsx +0 -209
  512. package/src/components/Reels/ReelsSeries/ReelSeriesOverlay.tsx +0 -185
@@ -2,7 +2,8 @@
2
2
  * @author Naresh Dhamu
3
3
  * @lastModified Wed 02 Jul 2025 at 09:58 PM
4
4
  */
5
- import { useCallback } from 'react';
5
+ import React, { useCallback, useMemo } from 'react';
6
+ import { useSkeletonItems } from '../../../hooks/useSkeletonItems';
6
7
  import {
7
8
  View,
8
9
  StyleSheet,
@@ -46,157 +47,166 @@ type Props = {
46
47
  const IMAGE_SIZE = scale(70);
47
48
  const PLACEHOLDER_COUNT = 6;
48
49
 
49
- export const CastCard = ({
50
- theme,
51
- data,
52
- isLoading = false,
53
- heading = 'Cast',
54
- onItemPress,
55
- style = {},
56
- }: Props) => {
57
- const placeholderData: IContentCast[] = Array.from({
58
- length: PLACEHOLDER_COUNT,
59
- }).map((_, idx) => ({
60
- _id: `skeleton-${idx}`,
61
- name: '',
62
- avatar: '',
63
- castType: '',
64
- type: 'actor',
65
- }));
50
+ export const CastCard = React.memo(
51
+ ({
52
+ theme,
53
+ data,
54
+ isLoading = false,
55
+ heading = 'Cast',
56
+ onItemPress,
57
+ style = {},
58
+ }: Props) => {
59
+ const placeholderData = useSkeletonItems<IContentCast>(
60
+ PLACEHOLDER_COUNT,
61
+ (idx) => ({
62
+ _id: `skeleton-${idx}`,
63
+ name: '',
64
+ avatar: '',
65
+ castType: '',
66
+ type: 'actor',
67
+ })
68
+ );
66
69
 
67
- const listData = isLoading ? placeholderData : (data ?? []);
70
+ const listData = useMemo(
71
+ () => (isLoading ? placeholderData : (data ?? [])),
72
+ [isLoading, placeholderData, data]
73
+ );
68
74
 
69
- const renderItem: ListRenderItem<IContentCast> = useCallback(
70
- ({ item }) => {
71
- if (isLoading) {
72
- return (
73
- <View style={[styles.card, style.card]}>
74
- <View style={[styles.imageSkeleton, style.imageSkeleton]} />
75
- <View style={[styles.nameSkeleton, style.nameSkeleton]} />
76
- <View style={[styles.roleSkeleton, style.roleSkeleton]} />
77
- </View>
78
- );
79
- }
75
+ const renderItem: ListRenderItem<IContentCast> = useCallback(
76
+ ({ item }) => {
77
+ if (isLoading) {
78
+ return (
79
+ <View style={[styles.card, style.card]}>
80
+ <View style={[styles.imageSkeleton, style.imageSkeleton]} />
81
+ <View style={[styles.nameSkeleton, style.nameSkeleton]} />
82
+ <View style={[styles.roleSkeleton, style.roleSkeleton]} />
83
+ </View>
84
+ );
85
+ }
80
86
 
81
- return (
82
- <TouchableOpacity
83
- style={[styles.card, style.card]}
84
- activeOpacity={0.9}
85
- onPress={() => onItemPress?.(item)}
86
- >
87
- <FastImage
88
- source={{ uri: String(item.avatar) }}
89
- style={[
90
- styles.image,
91
- { backgroundColor: theme.colors.skeletonBaseColor },
92
- style.image,
93
- ]}
94
- resizeMode={FastImage.resizeMode.cover}
95
- />
96
- <Text
97
- numberOfLines={1}
98
- ellipsizeMode="tail"
99
- style={[
100
- styles.name,
101
- { color: theme.colors.textPrimary },
102
- style.name,
103
- ]}
87
+ return (
88
+ <TouchableOpacity
89
+ style={[styles.card, style.card]}
90
+ activeOpacity={0.9}
91
+ onPress={() => onItemPress?.(item)}
104
92
  >
105
- {item.name}
106
- </Text>
107
- {!!item.castType && (
93
+ <FastImage
94
+ source={{ uri: String(item.avatar) }}
95
+ style={[
96
+ styles.image,
97
+ { backgroundColor: theme.colors.skeletonBaseColor },
98
+ style.image,
99
+ ]}
100
+ resizeMode={FastImage.resizeMode.cover}
101
+ />
108
102
  <Text
109
103
  numberOfLines={1}
110
104
  ellipsizeMode="tail"
111
105
  style={[
112
- styles.role,
113
- { color: theme.colors.textSecondary },
114
- style.role,
106
+ styles.name,
107
+ { color: theme.colors.textPrimary },
108
+ style.name,
115
109
  ]}
116
110
  >
117
- as {item.castType}
111
+ {item.name}
118
112
  </Text>
119
- )}
120
- </TouchableOpacity>
121
- );
122
- },
123
- [isLoading, onItemPress, style, theme.colors]
124
- );
113
+ {!!item.castType && (
114
+ <Text
115
+ numberOfLines={1}
116
+ ellipsizeMode="tail"
117
+ style={[
118
+ styles.role,
119
+ { color: theme.colors.textSecondary },
120
+ style.role,
121
+ ]}
122
+ >
123
+ as {item.castType}
124
+ </Text>
125
+ )}
126
+ </TouchableOpacity>
127
+ );
128
+ },
129
+ [isLoading, onItemPress, style, theme.colors]
130
+ );
125
131
 
126
- if (!listData.length) return null;
132
+ if (!listData.length) return null;
127
133
 
128
- return (
129
- <View style={[styles.container, style.container]}>
130
- {isLoading ? (
131
- <SkeletonPlaceholder
132
- backgroundColor={theme.colors.skeletonBaseColor}
133
- highlightColor={theme.colors.skeletonHighlightColor}
134
- >
135
- <SkeletonPlaceholder.Item
136
- width={scale(70)}
137
- height={scale(16)}
138
- borderRadius={scale(4)}
139
- marginBottom={scale(8)}
140
- marginLeft={scale(12)}
141
- />
142
- <SkeletonPlaceholder.Item flexDirection="row" paddingLeft={scale(12)}>
143
- {placeholderData.map((_, idx) => (
144
- <SkeletonPlaceholder.Item
145
- key={idx}
146
- alignItems="center"
147
- marginRight={scale(10)}
148
- >
149
- <SkeletonPlaceholder.Item
150
- width={IMAGE_SIZE}
151
- height={IMAGE_SIZE}
152
- borderRadius={IMAGE_SIZE / 2}
153
- marginBottom={scale(6)}
154
- />
155
- <SkeletonPlaceholder.Item
156
- width={scale(60)}
157
- height={scale(12)}
158
- borderRadius={scale(4)}
159
- marginBottom={scale(4)}
160
- />
161
- <SkeletonPlaceholder.Item
162
- width={scale(50)}
163
- height={scale(10)}
164
- borderRadius={scale(4)}
165
- />
166
- </SkeletonPlaceholder.Item>
167
- ))}
168
- </SkeletonPlaceholder.Item>
169
- </SkeletonPlaceholder>
170
- ) : (
171
- <>
172
- <Text
173
- style={[
174
- styles.heading,
175
- { color: theme.colors.primary },
176
- style.heading,
177
- ]}
134
+ return (
135
+ <View style={[styles.container, style.container]}>
136
+ {isLoading ? (
137
+ <SkeletonPlaceholder
138
+ backgroundColor={theme.colors.skeletonBaseColor}
139
+ highlightColor={theme.colors.skeletonHighlightColor}
178
140
  >
179
- {heading}
180
- </Text>
181
- <FlatList
182
- horizontal
183
- data={listData}
184
- keyExtractor={(item) => item._id.toString()}
185
- renderItem={renderItem}
186
- showsHorizontalScrollIndicator={false}
187
- contentContainerStyle={[styles.listContent, style.listContent]}
188
- initialNumToRender={6}
189
- getItemLayout={(_, index) => ({
190
- length: IMAGE_SIZE + scale(10),
191
- offset: (IMAGE_SIZE + scale(10)) * index,
192
- index,
193
- })}
194
- />
195
- </>
196
- )}
197
- </View>
198
- );
199
- };
141
+ <SkeletonPlaceholder.Item
142
+ width={scale(70)}
143
+ height={scale(16)}
144
+ borderRadius={scale(4)}
145
+ marginBottom={scale(8)}
146
+ marginLeft={scale(12)}
147
+ />
148
+ <SkeletonPlaceholder.Item
149
+ flexDirection="row"
150
+ paddingLeft={scale(12)}
151
+ >
152
+ {placeholderData.map((_, idx) => (
153
+ <SkeletonPlaceholder.Item
154
+ key={idx}
155
+ alignItems="center"
156
+ marginRight={scale(10)}
157
+ >
158
+ <SkeletonPlaceholder.Item
159
+ width={IMAGE_SIZE}
160
+ height={IMAGE_SIZE}
161
+ borderRadius={IMAGE_SIZE / 2}
162
+ marginBottom={scale(6)}
163
+ />
164
+ <SkeletonPlaceholder.Item
165
+ width={scale(60)}
166
+ height={scale(12)}
167
+ borderRadius={scale(4)}
168
+ marginBottom={scale(4)}
169
+ />
170
+ <SkeletonPlaceholder.Item
171
+ width={scale(50)}
172
+ height={scale(10)}
173
+ borderRadius={scale(4)}
174
+ />
175
+ </SkeletonPlaceholder.Item>
176
+ ))}
177
+ </SkeletonPlaceholder.Item>
178
+ </SkeletonPlaceholder>
179
+ ) : (
180
+ <>
181
+ <Text
182
+ style={[
183
+ styles.heading,
184
+ { color: theme.colors.primary },
185
+ style.heading,
186
+ ]}
187
+ >
188
+ {heading}
189
+ </Text>
190
+ <FlatList
191
+ horizontal
192
+ data={listData}
193
+ keyExtractor={(item) => item._id.toString()}
194
+ renderItem={renderItem}
195
+ showsHorizontalScrollIndicator={false}
196
+ contentContainerStyle={[styles.listContent, style.listContent]}
197
+ initialNumToRender={6}
198
+ getItemLayout={(_, index) => ({
199
+ length: IMAGE_SIZE + scale(10),
200
+ offset: (IMAGE_SIZE + scale(10)) * index,
201
+ index,
202
+ })}
203
+ />
204
+ </>
205
+ )}
206
+ </View>
207
+ );
208
+ }
209
+ );
200
210
 
201
211
  const styles = StyleSheet.create({
202
212
  container: {
@@ -264,198 +264,203 @@ const EpisodeCardItem = memo(
264
264
  );
265
265
 
266
266
  // Main Component
267
- export const EpisodeCard = ({
268
- seasons,
269
- onPress,
270
- theme: themeOverride,
271
- isLoading = false,
272
- mode = 'horizontal',
273
- }: EpisodeCardProps) => {
274
- const { isDarkMode, theme } = useInternalTheme(themeOverride);
275
- const [selectedSeasonIndex, setSelectedSeasonIndex] = useState(0);
276
- const windowWidth = Display.fullWidth;
267
+ export const EpisodeCard = React.memo(
268
+ ({
269
+ seasons,
270
+ onPress,
271
+ theme: themeOverride,
272
+ isLoading = false,
273
+ mode = 'horizontal',
274
+ }: EpisodeCardProps) => {
275
+ const { isDarkMode, theme } = useInternalTheme(themeOverride);
276
+ const [selectedSeasonIndex, setSelectedSeasonIndex] = useState(0);
277
+ const windowWidth = Display.fullWidth;
277
278
 
278
- const selectedSeason = useMemo(
279
- () => seasons[selectedSeasonIndex] || null,
280
- [seasons, selectedSeasonIndex]
281
- );
279
+ const selectedSeason = useMemo(
280
+ () => seasons[selectedSeasonIndex] || null,
281
+ [seasons, selectedSeasonIndex]
282
+ );
282
283
 
283
- const cardWidth = useMemo(
284
- () =>
285
- mode === 'horizontal'
286
- ? Math.min(windowWidth * 0.45, moderateScale(180))
287
- : windowWidth - scale(16),
288
- [windowWidth, mode]
289
- );
284
+ const cardWidth = useMemo(
285
+ () =>
286
+ mode === 'horizontal'
287
+ ? Math.min(windowWidth * 0.45, moderateScale(180))
288
+ : windowWidth - scale(16),
289
+ [windowWidth, mode]
290
+ );
290
291
 
291
- const thumbnailHeight = useMemo(
292
- () => (mode === 'vertical' ? verticalScale(100) : cardWidth * (9 / 16)),
293
- [cardWidth, mode]
294
- );
292
+ const thumbnailHeight = useMemo(
293
+ () => (mode === 'vertical' ? verticalScale(100) : cardWidth * (9 / 16)),
294
+ [cardWidth, mode]
295
+ );
295
296
 
296
- const renderSeasonTab = useCallback(
297
- ({ item: season, index }: { item: IContentSeasons; index: number }) => (
298
- <TouchableOpacity
299
- key={season._id}
300
- activeOpacity={0.7}
301
- onPress={() => setSelectedSeasonIndex(index)}
302
- style={[
303
- styles.tab,
304
- {
305
- backgroundColor:
306
- selectedSeasonIndex === index
307
- ? theme.colors.button
308
- : theme.colors.surfaceVariant,
309
- borderColor: theme.colors.border,
310
- },
311
- ]}
312
- accessibilityRole="tab"
313
- accessibilityState={{ selected: selectedSeasonIndex === index }}
314
- accessibilityLabel={season.name || `Season ${index + 1}`}
315
- >
316
- <Text
297
+ const renderSeasonTab = useCallback(
298
+ ({ item: season, index }: { item: IContentSeasons; index: number }) => (
299
+ <TouchableOpacity
300
+ key={season._id}
301
+ activeOpacity={0.7}
302
+ onPress={() => setSelectedSeasonIndex(index)}
317
303
  style={[
318
- styles.tabText,
304
+ styles.tab,
319
305
  {
320
- color:
306
+ backgroundColor:
321
307
  selectedSeasonIndex === index
322
- ? theme.colors.buttonText
323
- : theme.colors.textPrimary,
308
+ ? theme.colors.button
309
+ : theme.colors.surfaceVariant,
310
+ borderColor: theme.colors.border,
324
311
  },
325
312
  ]}
313
+ accessibilityRole="tab"
314
+ accessibilityState={{ selected: selectedSeasonIndex === index }}
315
+ accessibilityLabel={season.name || `Season ${index + 1}`}
326
316
  >
327
- {season.name || `Season ${index + 1}`}
328
- </Text>
329
- </TouchableOpacity>
330
- ),
331
- [selectedSeasonIndex, theme]
332
- );
317
+ <Text
318
+ style={[
319
+ styles.tabText,
320
+ {
321
+ color:
322
+ selectedSeasonIndex === index
323
+ ? theme.colors.buttonText
324
+ : theme.colors.textPrimary,
325
+ },
326
+ ]}
327
+ >
328
+ {season.name || `Season ${index + 1}`}
329
+ </Text>
330
+ </TouchableOpacity>
331
+ ),
332
+ [selectedSeasonIndex, theme]
333
+ );
333
334
 
334
- const renderEpisodeItem = useCallback(
335
- ({ item }: { item: IContentEpisodes }) =>
336
- selectedSeason ? (
335
+ const renderEpisodeItem = useCallback(
336
+ ({ item }: { item: IContentEpisodes }) =>
337
+ selectedSeason ? (
338
+ <EpisodeCardItem
339
+ theme={theme}
340
+ season_id={selectedSeason._id}
341
+ episode={item}
342
+ isDarkMode={isDarkMode}
343
+ season_number={selectedSeason.season_number}
344
+ onPress={onPress}
345
+ style={{ width: cardWidth }}
346
+ thumbnailHeight={thumbnailHeight}
347
+ />
348
+ ) : null,
349
+ [selectedSeason, theme, isDarkMode, onPress, cardWidth, thumbnailHeight]
350
+ );
351
+
352
+ const renderLoadingItem = useCallback(
353
+ () => (
337
354
  <EpisodeCardItem
338
355
  theme={theme}
339
- season_id={selectedSeason._id}
340
- episode={item}
356
+ season_id=""
341
357
  isDarkMode={isDarkMode}
342
- season_number={selectedSeason.season_number}
358
+ season_number={0}
359
+ episode={{
360
+ _id: '',
361
+ number: 0,
362
+ thumbnail: '',
363
+ name: '',
364
+ description: '',
365
+ duration: 0,
366
+ source_link: '',
367
+ trailer_source_link: '',
368
+ subtitles: [],
369
+ createdAt: '',
370
+ updatedAt: '',
371
+ source_type: 'HLS',
372
+ content_offering_type: 'FREE',
373
+ status: true,
374
+ data: '',
375
+ }}
343
376
  onPress={onPress}
344
377
  style={{ width: cardWidth }}
345
378
  thumbnailHeight={thumbnailHeight}
379
+ isLoading
346
380
  />
347
- ) : null,
348
- [selectedSeason, theme, isDarkMode, onPress, cardWidth, thumbnailHeight]
349
- );
381
+ ),
382
+ [theme, isDarkMode, onPress, cardWidth, thumbnailHeight]
383
+ );
384
+
385
+ if (isLoading) {
386
+ return (
387
+ <View
388
+ style={[
389
+ styles.container,
390
+ { backgroundColor: theme.colors.background },
391
+ ]}
392
+ >
393
+ <FlatList
394
+ data={Array(SKELETON_COUNT).fill(0)}
395
+ keyExtractor={(_, index) => `skeleton_tab_${index}`}
396
+ horizontal
397
+ showsHorizontalScrollIndicator={false}
398
+ contentContainerStyle={styles.tabsContainer}
399
+ renderItem={() => (
400
+ <SkeletonPlaceholder
401
+ backgroundColor={theme.colors.skeletonBaseColor}
402
+ highlightColor={theme.colors.skeletonHighlightColor}
403
+ >
404
+ <SkeletonPlaceholder.Item
405
+ width={scale(80)}
406
+ height={verticalScale(28)}
407
+ borderRadius={moderateScale(16)}
408
+ marginRight={TAB_MARGIN_RIGHT}
409
+ />
410
+ </SkeletonPlaceholder>
411
+ )}
412
+ />
413
+ <FlatList
414
+ data={Array(LOADING_EPISODES).fill({})}
415
+ keyExtractor={(_, index) => `loading_${index}`}
416
+ horizontal={mode === 'horizontal'}
417
+ showsHorizontalScrollIndicator={false}
418
+ contentContainerStyle={styles.listContainer}
419
+ renderItem={renderLoadingItem}
420
+ />
421
+ </View>
422
+ );
423
+ }
350
424
 
351
- const renderLoadingItem = useCallback(
352
- () => (
353
- <EpisodeCardItem
354
- theme={theme}
355
- season_id=""
356
- isDarkMode={isDarkMode}
357
- season_number={0}
358
- episode={{
359
- _id: '',
360
- number: 0,
361
- thumbnail: '',
362
- name: '',
363
- description: '',
364
- duration: 0,
365
- source_link: '',
366
- trailer_source_link: '',
367
- subtitles: [],
368
- createdAt: '',
369
- updatedAt: '',
370
- source_type: 'HLS',
371
- content_offering_type: 'FREE',
372
- status: true,
373
- data: '',
374
- }}
375
- onPress={onPress}
376
- style={{ width: cardWidth }}
377
- thumbnailHeight={thumbnailHeight}
378
- isLoading
379
- />
380
- ),
381
- [theme, isDarkMode, onPress, cardWidth, thumbnailHeight]
382
- );
425
+ if (!seasons?.length || !selectedSeason) {
426
+ return (
427
+ <View style={styles.emptyContainer}>
428
+ <Text color={theme.colors.textSecondary}>No seasons available</Text>
429
+ </View>
430
+ );
431
+ }
383
432
 
384
- if (isLoading) {
385
433
  return (
386
434
  <View
387
435
  style={[styles.container, { backgroundColor: theme.colors.background }]}
388
436
  >
389
437
  <FlatList
390
- data={Array(SKELETON_COUNT).fill(0)}
391
- keyExtractor={(_, index) => `skeleton_tab_${index}`}
438
+ data={seasons}
439
+ renderItem={renderSeasonTab}
440
+ keyExtractor={(item) => item._id}
392
441
  horizontal
393
442
  showsHorizontalScrollIndicator={false}
394
443
  contentContainerStyle={styles.tabsContainer}
395
- renderItem={() => (
396
- <SkeletonPlaceholder
397
- backgroundColor={theme.colors.skeletonBaseColor}
398
- highlightColor={theme.colors.skeletonHighlightColor}
399
- >
400
- <SkeletonPlaceholder.Item
401
- width={scale(80)}
402
- height={verticalScale(28)}
403
- borderRadius={moderateScale(16)}
404
- marginRight={TAB_MARGIN_RIGHT}
405
- />
406
- </SkeletonPlaceholder>
407
- )}
408
444
  />
409
445
  <FlatList
410
- data={Array(LOADING_EPISODES).fill({})}
411
- keyExtractor={(_, index) => `loading_${index}`}
446
+ data={selectedSeason.episodes || []}
447
+ keyExtractor={(item) => item._id}
412
448
  horizontal={mode === 'horizontal'}
413
449
  showsHorizontalScrollIndicator={false}
414
450
  contentContainerStyle={styles.listContainer}
415
- renderItem={renderLoadingItem}
451
+ renderItem={renderEpisodeItem}
452
+ ListEmptyComponent={
453
+ <View style={styles.emptyContainer}>
454
+ <Text color={theme.colors.textSecondary}>
455
+ No episodes available
456
+ </Text>
457
+ </View>
458
+ }
416
459
  />
417
460
  </View>
418
461
  );
419
462
  }
420
-
421
- if (!seasons?.length || !selectedSeason) {
422
- return (
423
- <View style={styles.emptyContainer}>
424
- <Text color={theme.colors.textSecondary}>No seasons available</Text>
425
- </View>
426
- );
427
- }
428
-
429
- return (
430
- <View
431
- style={[styles.container, { backgroundColor: theme.colors.background }]}
432
- >
433
- <FlatList
434
- data={seasons}
435
- renderItem={renderSeasonTab}
436
- keyExtractor={(item) => item._id}
437
- horizontal
438
- showsHorizontalScrollIndicator={false}
439
- contentContainerStyle={styles.tabsContainer}
440
- />
441
- <FlatList
442
- data={selectedSeason.episodes || []}
443
- keyExtractor={(item) => item._id}
444
- horizontal={mode === 'horizontal'}
445
- showsHorizontalScrollIndicator={false}
446
- contentContainerStyle={styles.listContainer}
447
- renderItem={renderEpisodeItem}
448
- ListEmptyComponent={
449
- <View style={styles.emptyContainer}>
450
- <Text color={theme.colors.textSecondary}>
451
- No episodes available
452
- </Text>
453
- </View>
454
- }
455
- />
456
- </View>
457
- );
458
- };
463
+ );
459
464
 
460
465
  // Styles
461
466
  const styles = StyleSheet.create({