@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
@@ -2,10 +2,10 @@
2
2
 
3
3
  /**
4
4
  * @author Naresh Dhamu
5
- * @lastModified Sat 25 Oct 2025 at 04:01 PM
5
+ * @lastModified Wed 24 Dec 2025 at 04:01 PM
6
6
  */
7
7
 
8
- import React, { useState, useEffect, useMemo } from 'react';
8
+ import React, { useMemo } from 'react';
9
9
  import { View, StyleSheet } from 'react-native';
10
10
  import FastImage from 'react-native-fast-image';
11
11
  import SkeletonPlaceholder from 'react-native-skeleton-placeholder';
@@ -13,101 +13,131 @@ import { scale } from 'react-native-size-matters';
13
13
  import { Text } from "../../../Text/index.js";
14
14
  import { ImageOff } from 'lucide-react-native';
15
15
  import RentOrBuyIcon from "./RentOrBuyIcon.js";
16
+ import { useImageLoader } from "../../../../hooks/index.js";
17
+ import LinearGradient from 'react-native-linear-gradient';
18
+ import { RFValue } from 'react-native-responsive-fontsize';
19
+
20
+ // Rank number styling constants
16
21
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
22
+ const RANK_NUMBER_SIZE = scale(40);
23
+ const RANK_NUMBER_BORDER_RADIUS = scale(30);
24
+ const RANK_NUMBER_TEXT_SIZE = RFValue(25);
25
+ const RANK_NUMBER_TEXT_MARGIN_TOP = scale(2);
26
+ const RANK_NUMBER_TEXT_MARGIN_RIGHT = scale(6);
27
+ const GRADIENT_START = {
28
+ x: 1,
29
+ y: 0.5
30
+ };
31
+ const GRADIENT_END = {
32
+ x: 0.5,
33
+ y: 1
34
+ };
35
+ // ----------------------------------
36
+ // Image Fallback
37
+ // ----------------------------------
38
+ const ImageFallback = /*#__PURE__*/React.memo(({
39
+ errorColor,
40
+ bg
41
+ }) => /*#__PURE__*/_jsxs(View, {
42
+ style: [styles.absolute, styles.center, {
43
+ backgroundColor: bg
44
+ }],
45
+ children: [/*#__PURE__*/_jsx(ImageOff, {
46
+ size: scale(18),
47
+ color: errorColor
48
+ }), /*#__PURE__*/_jsx(Text, {
49
+ style: styles.fallbackText,
50
+ color: errorColor,
51
+ children: "Image Failed"
52
+ })]
53
+ }));
17
54
  const CardPoster = ({
18
55
  content_offering_type,
19
56
  posterUri,
20
57
  theme,
21
- isLoading = false,
22
58
  borderRadius = scale(6),
23
59
  posterWrapperStyle,
24
60
  imageStyle,
25
- resizeMode = FastImage.resizeMode.cover
61
+ isLoading = false,
62
+ resizeMode = FastImage.resizeMode.cover,
63
+ showRankNumber = false,
64
+ rankNumber
26
65
  }) => {
27
- const [imageLoading, setImageLoading] = useState(true);
28
- const [imageError, setImageError] = useState(false);
29
- const hasValidPoster = useMemo(() => {
30
- if (!posterUri || typeof posterUri !== 'string') return false;
31
- const cleaned = posterUri.trim();
32
- return (cleaned.startsWith('http://') || cleaned.startsWith('https://')) && /\.(jpg|jpeg|png|webp|gif|bmp)$/i.test(cleaned);
33
- }, [posterUri]);
34
- useEffect(() => {
35
- if (hasValidPoster) {
36
- setImageLoading(true);
37
- setImageError(false);
38
- FastImage.preload([{
39
- uri: posterUri
40
- }]);
41
- } else {
42
- setImageLoading(false);
43
- setImageError(true);
44
- }
45
- }, [posterUri, hasValidPoster]);
46
- const showSkeleton = isLoading || imageLoading && !imageError && hasValidPoster;
47
- const fallbackImageStyle = useMemo(() => ({
66
+ const {
67
+ showSkeleton,
68
+ showFallback,
69
+ hasValidImage,
70
+ imageSource,
71
+ imageLoading,
72
+ handleLoad,
73
+ handleError
74
+ } = useImageLoader({
75
+ imageUri: posterUri,
76
+ isLoading
77
+ });
78
+
79
+ // Memoize theme colors
80
+ const themeColors = useMemo(() => ({
81
+ background: theme.colors.background,
82
+ skeletonBaseColor: theme.colors.skeletonBaseColor,
83
+ skeletonHighlightColor: theme.colors.skeletonHighlightColor,
84
+ error: theme.colors.error,
85
+ errorContainer: theme.colors.errorContainer,
86
+ border: theme.colors.border
87
+ }), [theme.colors]);
88
+
89
+ // Memoize wrapper style
90
+ const wrapperStyle = useMemo(() => [styles.posterWrapper, {
48
91
  width: '100%',
49
92
  aspectRatio: 2 / 3,
50
93
  borderRadius,
51
- position: 'absolute',
52
- top: 0,
53
- left: 0
54
- }), [borderRadius]);
94
+ backgroundColor: themeColors.background,
95
+ borderWidth: showSkeleton ? scale(0.5) : showFallback ? scale(0.3) : 0,
96
+ borderColor: showSkeleton ? themeColors.border : showFallback ? themeColors.error : 'transparent'
97
+ }, posterWrapperStyle], [borderRadius, themeColors.background, themeColors.border, themeColors.error, showSkeleton, showFallback, posterWrapperStyle]);
98
+
99
+ // Memoize skeleton item style
100
+
101
+ // Memoize image style array - hide image until it successfully loads
102
+ const imageStyleArray = useMemo(() => [styles.absolute,
103
+ // Hide image when skeleton is showing or image is still loading
104
+ showSkeleton || imageLoading ? styles.hidden : styles.visible, imageStyle], [showSkeleton, imageLoading, imageStyle]);
55
105
  return /*#__PURE__*/_jsxs(View, {
56
- style: [styles.posterWrapper, {
57
- borderRadius,
58
- backgroundColor: theme.colors.background
59
- }, posterWrapperStyle],
60
- children: [!showSkeleton && content_offering_type && /*#__PURE__*/_jsx(RentOrBuyIcon, {
61
- theme: theme,
62
- content_offering_type: content_offering_type
106
+ style: wrapperStyle,
107
+ children: [!showSkeleton && !showFallback && content_offering_type && /*#__PURE__*/_jsx(RentOrBuyIcon, {
108
+ content_offering_type: content_offering_type,
109
+ theme: theme
63
110
  }, posterUri), showSkeleton && /*#__PURE__*/_jsx(View, {
64
- style: [styles.skeletonWrapper, {
65
- borderRadius
66
- }],
111
+ style: [styles.absolute],
67
112
  children: /*#__PURE__*/_jsx(SkeletonPlaceholder, {
68
- backgroundColor: theme.colors.skeletonBaseColor,
69
- highlightColor: theme.colors.skeletonHighlightColor,
113
+ backgroundColor: themeColors.skeletonBaseColor,
114
+ highlightColor: themeColors.skeletonHighlightColor,
70
115
  children: /*#__PURE__*/_jsx(SkeletonPlaceholder.Item, {
71
- style: [styles.skeleton, {
72
- borderRadius
73
- }]
116
+ width: "100%",
117
+ height: "100%"
74
118
  })
75
119
  })
76
- }), hasValidPoster && /*#__PURE__*/_jsx(FastImage, {
77
- source: {
78
- uri: posterUri,
79
- cache: FastImage.cacheControl.immutable,
80
- priority: FastImage.priority.normal
81
- },
82
- style: [fallbackImageStyle, showSkeleton ? styles.hidden : styles.visible, imageStyle],
120
+ }), hasValidImage && !showFallback && /*#__PURE__*/_jsx(FastImage, {
121
+ source: imageSource,
122
+ style: imageStyleArray,
83
123
  resizeMode: resizeMode,
84
- onLoadStart: () => {
85
- setImageLoading(true);
86
- setImageError(false);
87
- },
88
- onLoad: () => setImageLoading(false),
89
- onError: () => {
90
- setImageLoading(false);
91
- setImageError(true);
92
- }
93
- }), !showSkeleton && (!hasValidPoster || imageError) && /*#__PURE__*/_jsx(View, {
94
- style: [styles.fallbackWrapper, {
95
- borderRadius,
96
- backgroundColor: theme.colors.background,
97
- borderColor: theme.colors.error
98
- }],
99
- children: /*#__PURE__*/_jsxs(View, {
100
- style: [styles.fallback, {
101
- backgroundColor: theme.colors.errorContainer
102
- }],
103
- children: [/*#__PURE__*/_jsx(ImageOff, {
104
- size: scale(18),
105
- color: theme.colors.error
106
- }), /*#__PURE__*/_jsx(Text, {
107
- style: styles.fallbackText,
108
- color: theme.colors.error,
109
- children: "Image Failed"
110
- })]
124
+ onLoad: handleLoad,
125
+ onError: handleError
126
+ }, `${posterUri}-image`), !isLoading && !showSkeleton && showFallback && /*#__PURE__*/_jsx(ImageFallback, {
127
+ errorColor: themeColors.error,
128
+ bg: themeColors.errorContainer
129
+ }, `${posterUri}-fallback`), !showSkeleton && showRankNumber && /*#__PURE__*/_jsx(View, {
130
+ style: styles.numberContainer,
131
+ children: /*#__PURE__*/_jsx(LinearGradient, {
132
+ colors: theme.colors.backgroundLayoutGradient,
133
+ start: GRADIENT_START,
134
+ end: GRADIENT_END,
135
+ style: [styles.rankNumberBox],
136
+ children: /*#__PURE__*/_jsx(Text, {
137
+ style: styles.rankNumberText,
138
+ color: theme.colors.textPrimary,
139
+ children: rankNumber ?? ''
140
+ })
111
141
  })
112
142
  })]
113
143
  });
@@ -115,21 +145,15 @@ const CardPoster = ({
115
145
  export default /*#__PURE__*/React.memo(CardPoster);
116
146
  const styles = StyleSheet.create({
117
147
  posterWrapper: {
118
- width: '100%',
119
- aspectRatio: 2 / 3,
120
148
  overflow: 'hidden',
121
149
  position: 'relative'
122
150
  },
123
- skeletonWrapper: {
124
- position: 'absolute',
125
- top: 0,
126
- left: 0,
127
- width: '100%',
128
- aspectRatio: 2 / 3
151
+ absolute: {
152
+ ...StyleSheet.absoluteFillObject
129
153
  },
130
- skeleton: {
131
- width: '100%',
132
- aspectRatio: 2 / 3
154
+ center: {
155
+ justifyContent: 'center',
156
+ alignItems: 'center'
133
157
  },
134
158
  visible: {
135
159
  opacity: 1
@@ -141,8 +165,6 @@ const styles = StyleSheet.create({
141
165
  position: 'absolute',
142
166
  top: 0,
143
167
  left: 0,
144
- width: '100%',
145
- aspectRatio: 2 / 3,
146
168
  borderWidth: scale(1),
147
169
  alignItems: 'center',
148
170
  justifyContent: 'center'
@@ -151,14 +173,38 @@ const styles = StyleSheet.create({
151
173
  position: 'absolute',
152
174
  top: 0,
153
175
  left: 0,
154
- width: '100%',
155
- aspectRatio: 2 / 3,
156
176
  alignItems: 'center',
157
177
  justifyContent: 'center'
158
178
  },
159
179
  fallbackText: {
160
180
  marginTop: scale(4),
161
181
  fontSize: 10
182
+ },
183
+ numberContainer: {
184
+ position: 'absolute',
185
+ bottom: -1,
186
+ left: 0,
187
+ zIndex: 10
188
+ },
189
+ rankNumberBox: {
190
+ width: RANK_NUMBER_SIZE,
191
+ height: RANK_NUMBER_SIZE,
192
+ borderTopRightRadius: RANK_NUMBER_BORDER_RADIUS,
193
+ justifyContent: 'center',
194
+ alignItems: 'center'
195
+ },
196
+ rankNumberText: {
197
+ fontSize: RANK_NUMBER_TEXT_SIZE,
198
+ fontWeight: '900',
199
+ textShadowColor: 'rgba(0, 0, 0, 0.6)',
200
+ textShadowOffset: {
201
+ width: 1,
202
+ height: 1
203
+ },
204
+ textShadowRadius: 3,
205
+ marginTop: RANK_NUMBER_TEXT_MARGIN_TOP,
206
+ marginRight: RANK_NUMBER_TEXT_MARGIN_RIGHT,
207
+ letterSpacing: 0.5
162
208
  }
163
209
  });
164
210
  //# sourceMappingURL=CardPoster.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","useEffect","useMemo","View","StyleSheet","FastImage","SkeletonPlaceholder","scale","Text","ImageOff","RentOrBuyIcon","jsx","_jsx","jsxs","_jsxs","CardPoster","content_offering_type","posterUri","theme","isLoading","borderRadius","posterWrapperStyle","imageStyle","resizeMode","cover","imageLoading","setImageLoading","imageError","setImageError","hasValidPoster","cleaned","trim","startsWith","test","preload","uri","showSkeleton","fallbackImageStyle","width","aspectRatio","position","top","left","style","styles","posterWrapper","backgroundColor","colors","background","children","skeletonWrapper","skeletonBaseColor","highlightColor","skeletonHighlightColor","Item","skeleton","source","cache","cacheControl","immutable","priority","normal","hidden","visible","onLoadStart","onLoad","onError","fallbackWrapper","borderColor","error","fallback","errorContainer","size","color","fallbackText","memo","create","overflow","opacity","borderWidth","alignItems","justifyContent","marginTop","fontSize"],"sourceRoot":"../../../../../../src","sources":["components/Content/Card/components/CardPoster.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;;AAEA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,SAAS,EAAEC,OAAO,QAAQ,OAAO;AAC3D,SAASC,IAAI,EAAEC,UAAU,QAAwC,cAAc;AAC/E,OAAOC,SAAS,MAGT,yBAAyB;AAChC,OAAOC,mBAAmB,MAAM,mCAAmC;AACnE,SAASC,KAAK,QAAQ,2BAA2B;AACjD,SAASC,IAAI,QAAQ,wBAAe;AACpC,SAASC,QAAQ,QAAQ,qBAAqB;AAE9C,OAAOC,aAAa,MAAM,oBAAiB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAc5C,MAAMC,UAAqC,GAAGA,CAAC;EAC7CC,qBAAqB;EACrBC,SAAS;EACTC,KAAK;EACLC,SAAS,GAAG,KAAK;EACjBC,YAAY,GAAGb,KAAK,CAAC,CAAC,CAAC;EACvBc,kBAAkB;EAClBC,UAAU;EACVC,UAAU,GAAGlB,SAAS,CAACkB,UAAU,CAACC;AACpC,CAAC,KAAK;EACJ,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAG1B,QAAQ,CAAC,IAAI,CAAC;EACtD,MAAM,CAAC2B,UAAU,EAAEC,aAAa,CAAC,GAAG5B,QAAQ,CAAC,KAAK,CAAC;EAEnD,MAAM6B,cAAc,GAAG3B,OAAO,CAAC,MAAM;IACnC,IAAI,CAACe,SAAS,IAAI,OAAOA,SAAS,KAAK,QAAQ,EAAE,OAAO,KAAK;IAC7D,MAAMa,OAAO,GAAGb,SAAS,CAACc,IAAI,CAAC,CAAC;IAChC,OACE,CAACD,OAAO,CAACE,UAAU,CAAC,SAAS,CAAC,IAAIF,OAAO,CAACE,UAAU,CAAC,UAAU,CAAC,KAChE,iCAAiC,CAACC,IAAI,CAACH,OAAO,CAAC;EAEnD,CAAC,EAAE,CAACb,SAAS,CAAC,CAAC;EAEfhB,SAAS,CAAC,MAAM;IACd,IAAI4B,cAAc,EAAE;MAClBH,eAAe,CAAC,IAAI,CAAC;MACrBE,aAAa,CAAC,KAAK,CAAC;MACpBvB,SAAS,CAAC6B,OAAO,CAAC,CAAC;QAAEC,GAAG,EAAElB;MAAU,CAAC,CAAC,CAAC;IACzC,CAAC,MAAM;MACLS,eAAe,CAAC,KAAK,CAAC;MACtBE,aAAa,CAAC,IAAI,CAAC;IACrB;EACF,CAAC,EAAE,CAACX,SAAS,EAAEY,cAAc,CAAC,CAAC;EAE/B,MAAMO,YAAY,GAChBjB,SAAS,IAAKM,YAAY,IAAI,CAACE,UAAU,IAAIE,cAAe;EAE9D,MAAMQ,kBAA8B,GAAGnC,OAAO,CAC5C,OAAO;IACLoC,KAAK,EAAE,MAAM;IACbC,WAAW,EAAE,CAAC,GAAG,CAAC;IAClBnB,YAAY;IACZoB,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE;EACR,CAAC,CAAC,EACF,CAACtB,YAAY,CACf,CAAC;EAED,oBACEN,KAAA,CAACX,IAAI;IACHwC,KAAK,EAAE,CACLC,MAAM,CAACC,aAAa,EACpB;MAAEzB,YAAY;MAAE0B,eAAe,EAAE5B,KAAK,CAAC6B,MAAM,CAACC;IAAW,CAAC,EAC1D3B,kBAAkB,CAClB;IAAA4B,QAAA,GAED,CAACb,YAAY,IAAIpB,qBAAqB,iBACrCJ,IAAA,CAACF,aAAa;MACZQ,KAAK,EAAEA,KAAM;MAEbF,qBAAqB,EAAEA;IAAsB,GADxCC,SAEN,CACF,EACAmB,YAAY,iBACXxB,IAAA,CAACT,IAAI;MAACwC,KAAK,EAAE,CAACC,MAAM,CAACM,eAAe,EAAE;QAAE9B;MAAa,CAAC,CAAE;MAAA6B,QAAA,eACtDrC,IAAA,CAACN,mBAAmB;QAClBwC,eAAe,EAAE5B,KAAK,CAAC6B,MAAM,CAACI,iBAAkB;QAChDC,cAAc,EAAElC,KAAK,CAAC6B,MAAM,CAACM,sBAAuB;QAAAJ,QAAA,eAEpDrC,IAAA,CAACN,mBAAmB,CAACgD,IAAI;UACvBX,KAAK,EAAE,CAACC,MAAM,CAACW,QAAQ,EAAE;YAAEnC;UAAa,CAAC;QAAE,CAC5C;MAAC,CACiB;IAAC,CAClB,CACP,EACAS,cAAc,iBACbjB,IAAA,CAACP,SAAS;MACRmD,MAAM,EAAE;QACNrB,GAAG,EAAElB,SAAS;QACdwC,KAAK,EAAEpD,SAAS,CAACqD,YAAY,CAACC,SAAS;QACvCC,QAAQ,EAAEvD,SAAS,CAACuD,QAAQ,CAACC;MAC/B,CAAE;MACFlB,KAAK,EAAE,CACLN,kBAAkB,EAClBD,YAAY,GAAGQ,MAAM,CAACkB,MAAM,GAAGlB,MAAM,CAACmB,OAAO,EAC7CzC,UAAU,CACV;MACFC,UAAU,EAAEA,UAAW;MACvByC,WAAW,EAAEA,CAAA,KAAM;QACjBtC,eAAe,CAAC,IAAI,CAAC;QACrBE,aAAa,CAAC,KAAK,CAAC;MACtB,CAAE;MACFqC,MAAM,EAAEA,CAAA,KAAMvC,eAAe,CAAC,KAAK,CAAE;MACrCwC,OAAO,EAAEA,CAAA,KAAM;QACbxC,eAAe,CAAC,KAAK,CAAC;QACtBE,aAAa,CAAC,IAAI,CAAC;MACrB;IAAE,CACH,CACF,EACA,CAACQ,YAAY,KAAK,CAACP,cAAc,IAAIF,UAAU,CAAC,iBAC/Cf,IAAA,CAACT,IAAI;MACHwC,KAAK,EAAE,CACLC,MAAM,CAACuB,eAAe,EACtB;QACE/C,YAAY;QACZ0B,eAAe,EAAE5B,KAAK,CAAC6B,MAAM,CAACC,UAAU;QACxCoB,WAAW,EAAElD,KAAK,CAAC6B,MAAM,CAACsB;MAC5B,CAAC,CACD;MAAApB,QAAA,eAEFnC,KAAA,CAACX,IAAI;QACHwC,KAAK,EAAE,CACLC,MAAM,CAAC0B,QAAQ,EACf;UAAExB,eAAe,EAAE5B,KAAK,CAAC6B,MAAM,CAACwB;QAAe,CAAC,CAChD;QAAAtB,QAAA,gBAEFrC,IAAA,CAACH,QAAQ;UAAC+D,IAAI,EAAEjE,KAAK,CAAC,EAAE,CAAE;UAACkE,KAAK,EAAEvD,KAAK,CAAC6B,MAAM,CAACsB;QAAM,CAAE,CAAC,eACxDzD,IAAA,CAACJ,IAAI;UAACmC,KAAK,EAAEC,MAAM,CAAC8B,YAAa;UAACD,KAAK,EAAEvD,KAAK,CAAC6B,MAAM,CAACsB,KAAM;UAAApB,QAAA,EAAC;QAE7D,CAAM,CAAC;MAAA,CACH;IAAC,CACH,CACP;EAAA,CACG,CAAC;AAEX,CAAC;AAED,4BAAelD,KAAK,CAAC4E,IAAI,CAAC5D,UAAU,CAAC;AAErC,MAAM6B,MAAM,GAAGxC,UAAU,CAACwE,MAAM,CAAC;EAC/B/B,aAAa,EAAE;IACbP,KAAK,EAAE,MAAM;IACbC,WAAW,EAAE,CAAC,GAAG,CAAC;IAClBsC,QAAQ,EAAE,QAAQ;IAClBrC,QAAQ,EAAE;EACZ,CAAC;EACDU,eAAe,EAAE;IACfV,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPJ,KAAK,EAAE,MAAM;IACbC,WAAW,EAAE,CAAC,GAAG;EACnB,CAAC;EACDgB,QAAQ,EAAE;IAAEjB,KAAK,EAAE,MAAM;IAAEC,WAAW,EAAE,CAAC,GAAG;EAAE,CAAC;EAC/CwB,OAAO,EAAE;IAAEe,OAAO,EAAE;EAAE,CAAC;EACvBhB,MAAM,EAAE;IAAEgB,OAAO,EAAE;EAAE,CAAC;EACtBX,eAAe,EAAE;IACf3B,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPJ,KAAK,EAAE,MAAM;IACbC,WAAW,EAAE,CAAC,GAAG,CAAC;IAClBwC,WAAW,EAAExE,KAAK,CAAC,CAAC,CAAC;IACrByE,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDX,QAAQ,EAAE;IACR9B,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPJ,KAAK,EAAE,MAAM;IACbC,WAAW,EAAE,CAAC,GAAG,CAAC;IAClByC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDP,YAAY,EAAE;IAAEQ,SAAS,EAAE3E,KAAK,CAAC,CAAC,CAAC;IAAE4E,QAAQ,EAAE;EAAG;AACpD,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useMemo","View","StyleSheet","FastImage","SkeletonPlaceholder","scale","Text","ImageOff","RentOrBuyIcon","useImageLoader","LinearGradient","RFValue","jsx","_jsx","jsxs","_jsxs","RANK_NUMBER_SIZE","RANK_NUMBER_BORDER_RADIUS","RANK_NUMBER_TEXT_SIZE","RANK_NUMBER_TEXT_MARGIN_TOP","RANK_NUMBER_TEXT_MARGIN_RIGHT","GRADIENT_START","x","y","GRADIENT_END","ImageFallback","memo","errorColor","bg","style","styles","absolute","center","backgroundColor","children","size","color","fallbackText","CardPoster","content_offering_type","posterUri","theme","borderRadius","posterWrapperStyle","imageStyle","isLoading","resizeMode","cover","showRankNumber","rankNumber","showSkeleton","showFallback","hasValidImage","imageSource","imageLoading","handleLoad","handleError","imageUri","themeColors","background","colors","skeletonBaseColor","skeletonHighlightColor","error","errorContainer","border","wrapperStyle","posterWrapper","width","aspectRatio","borderWidth","borderColor","imageStyleArray","hidden","visible","highlightColor","Item","height","source","onLoad","onError","numberContainer","backgroundLayoutGradient","start","end","rankNumberBox","rankNumberText","textPrimary","create","overflow","position","absoluteFillObject","justifyContent","alignItems","opacity","fallbackWrapper","top","left","fallback","marginTop","fontSize","bottom","zIndex","borderTopRightRadius","fontWeight","textShadowColor","textShadowOffset","textShadowRadius","marginRight","letterSpacing"],"sourceRoot":"../../../../../../src","sources":["components/Content/Card/components/CardPoster.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
 
3
- import React from 'react';
3
+ import React, { useMemo } from 'react';
4
4
  import { View, StyleSheet } from 'react-native';
5
5
  import Svg, { Path } from 'react-native-svg';
6
6
  import { scale } from 'react-native-size-matters';
7
7
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
- const PremiumIcon = ({
8
+ const PremiumIcon = /*#__PURE__*/React.memo(({
9
9
  fillColor
10
10
  }) => /*#__PURE__*/_jsxs(Svg, {
11
11
  viewBox: "0 0 1024 1024",
@@ -20,8 +20,8 @@ const PremiumIcon = ({
20
20
  d: "M0 0l64 1 15 4 13 8 9 8 9 13 5 13 2 15-2 16-5 12-6 10-9 10-11 7-12 5-10 2h-672l-15-4-12-7-10-9-9-13-5-13-2-11v-9l3-15 8-16 11-12 10-7 11-5 10-2z",
21
21
  fill: fillColor
22
22
  })]
23
- });
24
- const BuyOrRentIcon = ({
23
+ }));
24
+ const BuyOrRentIcon = /*#__PURE__*/React.memo(({
25
25
  fillColor
26
26
  }) => /*#__PURE__*/_jsx(Svg, {
27
27
  fill: "none",
@@ -34,7 +34,7 @@ const BuyOrRentIcon = ({
34
34
  clipRule: "evenodd",
35
35
  d: "M9.834 9.835H11.2c0-.108-.002-.215-.003-.319-.014-1.424-.024-2.412 2.734-2.412 2.504 0 2.732.453 2.732 2.73l1.365.001c0-3.871-.91-4.099-4.097-4.099h-.21c-3.225-.002-3.709-.002-3.887 4.1zm-.153-.001H7.712a1.976 1.976 0 00-1.976 1.976v6.064a4.252 4.252 0 004.252 4.252h7.886a4.252 4.252 0 004.252-4.252V11.81a1.976 1.976 0 00-1.976-1.976H18.18a.153.153 0 00-.153.153v3.716a.683.683 0 01-1.365 0V9.987a.153.153 0 00-.153-.153h-5.158a.153.153 0 00-.152.153v3.716a.683.683 0 01-1.366 0V9.987a.153.153 0 00-.153-.153z"
36
36
  })
37
- });
37
+ }));
38
38
  const RentOrBuyIcon = ({
39
39
  theme,
40
40
  content_offering_type,
@@ -42,11 +42,10 @@ const RentOrBuyIcon = ({
42
42
  position = 'topLeft',
43
43
  size = 22
44
44
  }) => {
45
- if (!content_offering_type) return null;
46
- const typeUpper = content_offering_type.toUpperCase();
47
- if (!['PREMIUM', 'BUY_OR_RENT'].includes(typeUpper)) return null;
48
- const fillColor = theme?.colors.premiumIcon || '#CA091E';
49
- const positionStyle = (() => {
45
+ const typeUpper = useMemo(() => content_offering_type?.toUpperCase(), [content_offering_type]);
46
+ const isValidType = useMemo(() => typeUpper && ['PREMIUM', 'BUY_OR_RENT'].includes(typeUpper), [typeUpper]);
47
+ const fillColor = useMemo(() => theme?.colors.premiumIcon || '#CA091E', [theme?.colors.premiumIcon]);
48
+ const positionStyle = useMemo(() => {
50
49
  switch (position) {
51
50
  case 'topLeft':
52
51
  return {
@@ -74,13 +73,15 @@ const RentOrBuyIcon = ({
74
73
  left: 6
75
74
  };
76
75
  }
77
- })();
78
- const IconComponent = typeUpper === 'PREMIUM' ? PremiumIcon : BuyOrRentIcon;
76
+ }, [position]);
77
+ const IconComponent = useMemo(() => typeUpper === 'PREMIUM' ? PremiumIcon : BuyOrRentIcon, [typeUpper]);
78
+ const containerStyle = useMemo(() => [styles.container, {
79
+ width: size,
80
+ height: size
81
+ }, style || positionStyle], [size, style, positionStyle]);
82
+ if (!content_offering_type || !isValidType) return null;
79
83
  return /*#__PURE__*/_jsx(View, {
80
- style: [styles.container, {
81
- width: size,
82
- height: size
83
- }, style || positionStyle],
84
+ style: containerStyle,
84
85
  children: /*#__PURE__*/_jsx(View, {
85
86
  style: styles.iconWrapper,
86
87
  children: /*#__PURE__*/_jsx(IconComponent, {
@@ -89,7 +90,7 @@ const RentOrBuyIcon = ({
89
90
  })
90
91
  });
91
92
  };
92
- export default RentOrBuyIcon;
93
+ export default /*#__PURE__*/React.memo(RentOrBuyIcon);
93
94
  const styles = StyleSheet.create({
94
95
  container: {
95
96
  position: 'absolute',
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","StyleSheet","Svg","Path","scale","jsx","_jsx","jsxs","_jsxs","PremiumIcon","fillColor","viewBox","width","height","children","transform","d","fill","BuyOrRentIcon","fillRule","clipRule","RentOrBuyIcon","theme","content_offering_type","style","position","size","typeUpper","toUpperCase","includes","colors","premiumIcon","positionStyle","top","left","right","bottom","IconComponent","styles","container","iconWrapper","create","zIndex","flex","justifyContent","alignItems","backgroundColor","padding","borderRadius","shadowColor","shadowOffset","shadowOpacity","shadowRadius","overflow","elevation"],"sourceRoot":"../../../../../../src","sources":["components/Content/Card/components/RentOrBuyIcon.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useMemo","View","StyleSheet","Svg","Path","scale","jsx","_jsx","jsxs","_jsxs","PremiumIcon","memo","fillColor","viewBox","width","height","children","transform","d","fill","BuyOrRentIcon","fillRule","clipRule","RentOrBuyIcon","theme","content_offering_type","style","position","size","typeUpper","toUpperCase","isValidType","includes","colors","premiumIcon","positionStyle","top","left","right","bottom","IconComponent","containerStyle","styles","container","iconWrapper","create","zIndex","flex","justifyContent","alignItems","backgroundColor","padding","borderRadius","shadowColor","shadowOffset","shadowOpacity","shadowRadius","overflow","elevation"],"sourceRoot":"../../../../../../src","sources":["components/Content/Card/components/RentOrBuyIcon.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,IAAI,EAAEC,UAAU,QAAwC,cAAc;AAC/E,OAAOC,GAAG,IAAIC,IAAI,QAAQ,kBAAkB;AAC5C,SAASC,KAAK,QAAQ,2BAA2B;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAYlD,MAAMC,WAA4C,gBAAGX,KAAK,CAACY,IAAI,CAC7D,CAAC;EAAEC;AAAU,CAAC,kBACZH,KAAA,CAACN,GAAG;EAACU,OAAO,EAAC,eAAe;EAACC,KAAK,EAAC,MAAM;EAACC,MAAM,EAAC,MAAM;EAAAC,QAAA,gBACrDT,IAAA,CAACH,IAAI;IACHa,SAAS,EAAC,mBAAmB;IAC7BC,CAAC,EAAC,o4BAAo4B;IACt4BC,IAAI,EAAEP;EAAU,CACjB,CAAC,eACFL,IAAA,CAACH,IAAI;IACHa,SAAS,EAAC,oBAAoB;IAC9BC,CAAC,EAAC,kJAAkJ;IACpJC,IAAI,EAAEP;EAAU,CACjB,CAAC;AAAA,CACC,CAET,CAAC;AAED,MAAMQ,aAA8C,gBAAGrB,KAAK,CAACY,IAAI,CAC/D,CAAC;EAAEC;AAAU,CAAC,kBACZL,IAAA,CAACJ,GAAG;EAACgB,IAAI,EAAC,MAAM;EAACN,OAAO,EAAC,WAAW;EAACC,KAAK,EAAC,MAAM;EAACC,MAAM,EAAC,MAAM;EAAAC,QAAA,eAC7DT,IAAA,CAACH,IAAI;IACHe,IAAI,EAAEP,SAAU;IAChBS,QAAQ,EAAC,SAAS;IAClBC,QAAQ,EAAC,SAAS;IAClBJ,CAAC,EAAC;EAAigB,CACpgB;AAAC,CACC,CAET,CAAC;AAED,MAAMK,aAA2C,GAAGA,CAAC;EACnDC,KAAK;EACLC,qBAAqB;EACrBC,KAAK;EACLC,QAAQ,GAAG,SAAS;EACpBC,IAAI,GAAG;AACT,CAAC,KAAK;EACJ,MAAMC,SAAS,GAAG7B,OAAO,CACvB,MAAMyB,qBAAqB,EAAEK,WAAW,CAAC,CAAC,EAC1C,CAACL,qBAAqB,CACxB,CAAC;EAED,MAAMM,WAAW,GAAG/B,OAAO,CACzB,MAAM6B,SAAS,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAACG,QAAQ,CAACH,SAAS,CAAC,EACjE,CAACA,SAAS,CACZ,CAAC;EAED,MAAMjB,SAAS,GAAGZ,OAAO,CACvB,MAAMwB,KAAK,EAAES,MAAM,CAACC,WAAW,IAAI,SAAS,EAC5C,CAACV,KAAK,EAAES,MAAM,CAACC,WAAW,CAC5B,CAAC;EAED,MAAMC,aAAa,GAAGnC,OAAO,CAAY,MAAM;IAC7C,QAAQ2B,QAAQ;MACd,KAAK,SAAS;QACZ,OAAO;UAAES,GAAG,EAAE,CAAC;UAAEC,IAAI,EAAE;QAAE,CAAC;MAC5B,KAAK,UAAU;QACb,OAAO;UAAED,GAAG,EAAE,CAAC;UAAEE,KAAK,EAAE;QAAE,CAAC;MAC7B,KAAK,YAAY;QACf,OAAO;UAAEC,MAAM,EAAE,CAAC;UAAEF,IAAI,EAAE;QAAE,CAAC;MAC/B,KAAK,aAAa;QAChB,OAAO;UAAEE,MAAM,EAAE,CAAC;UAAED,KAAK,EAAE;QAAE,CAAC;MAChC;QACE,OAAO;UAAEF,GAAG,EAAE,CAAC;UAAEC,IAAI,EAAE;QAAE,CAAC;IAC9B;EACF,CAAC,EAAE,CAACV,QAAQ,CAAC,CAAC;EAEd,MAAMa,aAAa,GAAGxC,OAAO,CAC3B,MAAO6B,SAAS,KAAK,SAAS,GAAGnB,WAAW,GAAGU,aAAc,EAC7D,CAACS,SAAS,CACZ,CAAC;EAED,MAAMY,cAAc,GAAGzC,OAAO,CAC5B,MAAM,CACJ0C,MAAM,CAACC,SAAS,EAChB;IAAE7B,KAAK,EAAEc,IAAI;IAAEb,MAAM,EAAEa;EAAK,CAAC,EAC7BF,KAAK,IAAIS,aAAa,CACvB,EACD,CAACP,IAAI,EAAEF,KAAK,EAAES,aAAa,CAC7B,CAAC;EAED,IAAI,CAACV,qBAAqB,IAAI,CAACM,WAAW,EAAE,OAAO,IAAI;EAEvD,oBACExB,IAAA,CAACN,IAAI;IAACyB,KAAK,EAAEe,cAAe;IAAAzB,QAAA,eAC1BT,IAAA,CAACN,IAAI;MAACyB,KAAK,EAAEgB,MAAM,CAACE,WAAY;MAAA5B,QAAA,eAC9BT,IAAA,CAACiC,aAAa;QAAC5B,SAAS,EAAEA;MAAU,CAAE;IAAC,CACnC;EAAC,CACH,CAAC;AAEX,CAAC;AAED,4BAAeb,KAAK,CAACY,IAAI,CAACY,aAAa,CAAC;AAExC,MAAMmB,MAAM,GAAGxC,UAAU,CAAC2C,MAAM,CAAC;EAC/BF,SAAS,EAAE;IACThB,QAAQ,EAAE,UAAU;IACpBmB,MAAM,EAAE;EACV,CAAC;EACDF,WAAW,EAAE;IACXG,IAAI,EAAE,CAAC;IACPC,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBC,eAAe,EAAE,OAAO;IACxBC,OAAO,EAAE9C,KAAK,CAAC,CAAC,CAAC;IACjB+C,YAAY,EAAE,EAAE;IAChBC,WAAW,EAAE,MAAM;IACnBC,YAAY,EAAE;MAAExC,KAAK,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAE,CAAC;IACrCwC,aAAa,EAAE,GAAG;IAClBC,YAAY,EAAE,CAAC;IACfC,QAAQ,EAAE,QAAQ;IAClBC,SAAS,EAAE;EACb;AACF,CAAC,CAAC","ignoreList":[]}
@@ -5,7 +5,7 @@
5
5
  * @lastModified Wed 25 Jun 2025 at 05:40 PM
6
6
  */
7
7
 
8
- import React, { useState } from 'react';
8
+ import React, { useState, useEffect, useMemo, useCallback } from 'react';
9
9
  import { View, StyleSheet } from 'react-native';
10
10
  import FastImage from 'react-native-fast-image';
11
11
  import SkeletonPlaceholder from 'react-native-skeleton-placeholder';
@@ -13,7 +13,10 @@ import { scale } from 'react-native-size-matters';
13
13
  import { Text } from "../../../Text/index.js";
14
14
  import { ImageOff } from 'lucide-react-native';
15
15
  import { RFValue } from 'react-native-responsive-fontsize';
16
+
17
+ // Module-level cache to track successfully loaded images
16
18
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
19
+ const loadedImageCache = new Set();
17
20
  export const ThumbnailCard = ({
18
21
  thumbnailUri = '',
19
22
  theme,
@@ -25,26 +28,82 @@ export const ThumbnailCard = ({
25
28
  }) => {
26
29
  const [imageLoading, setImageLoading] = useState(true);
27
30
  const [imageError, setImageError] = useState(false);
28
- const hasValidThumbnail = !!thumbnailUri && thumbnailUri.startsWith('http');
29
- const showSkeleton = isLoading || imageLoading && !imageError;
30
- const fallbackImageStyle = {
31
+ const hasValidThumbnail = useMemo(() => !!thumbnailUri && thumbnailUri.startsWith('http'), [thumbnailUri]);
32
+
33
+ // Reset image loading state when isLoading prop changes
34
+ useEffect(() => {
35
+ if (isLoading) {
36
+ setImageLoading(true);
37
+ setImageError(false);
38
+ }
39
+ }, [isLoading]);
40
+
41
+ // Reset when thumbnailUri changes
42
+ useEffect(() => {
43
+ if (hasValidThumbnail) {
44
+ // Check if this image was already loaded successfully before
45
+ const isAlreadyLoaded = loadedImageCache.has(thumbnailUri);
46
+ if (isAlreadyLoaded) {
47
+ // Image was loaded before, skip loading state
48
+ setImageLoading(false);
49
+ setImageError(false);
50
+ } else {
51
+ // Image not loaded before, show loading
52
+ setImageLoading(true);
53
+ setImageError(false);
54
+ FastImage.preload([{
55
+ uri: thumbnailUri
56
+ }]);
57
+ }
58
+ } else {
59
+ setImageLoading(false);
60
+ setImageError(true);
61
+ }
62
+ }, [thumbnailUri, hasValidThumbnail]);
63
+ const showSkeleton = useMemo(() => isLoading || imageLoading && !imageError && hasValidThumbnail, [isLoading, imageLoading, imageError, hasValidThumbnail]);
64
+ const fallbackImageStyle = useMemo(() => ({
31
65
  width: '100%',
32
66
  aspectRatio: 16 / 9,
33
67
  borderRadius,
34
68
  position: 'absolute',
35
69
  top: 0,
36
70
  left: 0
37
- };
71
+ }), [borderRadius]);
72
+ const wrapperStyleMemo = useMemo(() => [styles.thumbnailWrapper, {
73
+ borderRadius,
74
+ backgroundColor: theme.colors.background,
75
+ shadowColor: theme.colors.shadow
76
+ }, wrapperStyle], [borderRadius, theme.colors.background, theme.colors.shadow, wrapperStyle]);
77
+ const skeletonWrapperStyle = useMemo(() => [styles.skeletonWrapper, {
78
+ borderRadius
79
+ }], [borderRadius]);
80
+ const imageStyleMemo = useMemo(() => [fallbackImageStyle, showSkeleton ? styles.hidden : styles.visible, imageStyle], [fallbackImageStyle, showSkeleton, imageStyle]);
81
+ const fallbackStyle = useMemo(() => [styles.fallback, {
82
+ borderRadius,
83
+ backgroundColor: theme.colors.errorContainer,
84
+ borderColor: theme.colors.error
85
+ }], [borderRadius, theme.colors.errorContainer, theme.colors.error]);
86
+ const handleLoadStart = useCallback(() => {
87
+ // Only set loading if image is not already in cache
88
+ if (!loadedImageCache.has(thumbnailUri)) {
89
+ setImageLoading(true);
90
+ setImageError(false);
91
+ }
92
+ }, [thumbnailUri]);
93
+ const handleLoadEnd = useCallback(() => {
94
+ setImageLoading(false);
95
+ setImageError(false);
96
+ // Add to cache when successfully loaded
97
+ loadedImageCache.add(thumbnailUri);
98
+ }, [thumbnailUri]);
99
+ const handleError = useCallback(() => {
100
+ setImageLoading(false);
101
+ setImageError(true);
102
+ }, []);
38
103
  return /*#__PURE__*/_jsxs(View, {
39
- style: [styles.thumbnailWrapper, {
40
- borderRadius,
41
- backgroundColor: theme.colors.background,
42
- shadowColor: theme.colors.shadow
43
- }, wrapperStyle],
104
+ style: wrapperStyleMemo,
44
105
  children: [showSkeleton && /*#__PURE__*/_jsx(View, {
45
- style: [styles.skeletonWrapper, {
46
- borderRadius
47
- }],
106
+ style: skeletonWrapperStyle,
48
107
  children: /*#__PURE__*/_jsx(SkeletonPlaceholder, {
49
108
  backgroundColor: theme.colors.skeletonBaseColor,
50
109
  highlightColor: theme.colors.skeletonHighlightColor,
@@ -58,23 +117,13 @@ export const ThumbnailCard = ({
58
117
  source: {
59
118
  uri: thumbnailUri
60
119
  },
61
- style: [fallbackImageStyle, showSkeleton ? styles.hidden : styles.visible, imageStyle],
120
+ style: imageStyleMemo,
62
121
  resizeMode: resizeMode,
63
- onLoadStart: () => {
64
- setImageLoading(true);
65
- setImageError(false);
66
- },
67
- onLoadEnd: () => setImageLoading(false),
68
- onError: () => {
69
- setImageLoading(false);
70
- setImageError(true);
71
- }
122
+ onLoadStart: handleLoadStart,
123
+ onLoadEnd: handleLoadEnd,
124
+ onError: handleError
72
125
  }), !showSkeleton && (!hasValidThumbnail || imageError) && /*#__PURE__*/_jsxs(View, {
73
- style: [styles.fallback, {
74
- borderRadius,
75
- backgroundColor: theme.colors.errorContainer,
76
- borderColor: theme.colors.error
77
- }],
126
+ style: fallbackStyle,
78
127
  children: [/*#__PURE__*/_jsx(ImageOff, {
79
128
  size: scale(18),
80
129
  color: theme.colors.error
@@ -86,6 +135,7 @@ export const ThumbnailCard = ({
86
135
  })]
87
136
  });
88
137
  };
138
+ export default /*#__PURE__*/React.memo(ThumbnailCard);
89
139
  const styles = StyleSheet.create({
90
140
  thumbnailWrapper: {
91
141
  width: '100%',