@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
@@ -46,143 +46,198 @@ type SplashScreenProps = {
46
46
  const DEFAULT_IMAGE_TIMEOUT = 5;
47
47
  const FALLBACK_TIMEOUT = 0.5;
48
48
 
49
- export const SplashScreen: React.FC<SplashScreenProps> = ({
50
- splashScreenConfig,
51
- innerContainerStyle,
52
- backgroundImage = {
53
- gradientSplitBackground: 0.4,
54
- resizeMode: 'cover',
55
- },
56
- onRedirect,
57
- theme: overrideTheme,
58
- }) => {
59
- const {
60
- source: splashSource,
61
- type: splashType = 'image',
62
- width,
63
- height,
64
- isStatic = false,
65
- screenTime,
66
- fullscreen = false,
67
- resizeMode = 'contain',
68
- backgroundColor: splashBgColor,
69
- } = splashScreenConfig;
70
-
71
- const isRemote = splashSource.startsWith('http');
72
- const isImageSplash = splashType === 'image';
73
-
74
- const backgroundImageUrl =
75
- isImageSplash && backgroundImage.source?.startsWith('http')
76
- ? backgroundImage.source
77
- : undefined;
78
-
79
- const { data } = useSplashCache({
80
- logoUrl: isRemote ? splashSource : undefined,
81
- backgroundUrl: backgroundImageUrl,
82
- });
83
-
84
- const resolvedSplashUri =
85
- isRemote && data.logoPath ? data.logoPath : splashSource;
86
-
87
- const displayTimeout = useMemo(() => {
88
- if (typeof screenTime === 'number' && screenTime > 0) return screenTime;
89
- if (isImageSplash || isStatic) return DEFAULT_IMAGE_TIMEOUT;
90
- return 0;
91
- }, [screenTime, isImageSplash, isStatic]);
92
-
93
- const handleRedirect = useCallback(() => {
94
- try {
95
- onRedirect();
96
- } catch (err) {
97
- console.error('[SplashScreen] Redirect error:', err);
98
- }
99
- }, [onRedirect]);
100
-
101
- useEffect(() => {
102
- const timeoutSec = displayTimeout > 0 ? displayTimeout : FALLBACK_TIMEOUT;
103
- const timer = setTimeout(handleRedirect, timeoutSec * 1000);
104
- return () => clearTimeout(timer);
105
- }, [displayTimeout, handleRedirect]);
106
-
107
- const splashProps = useMemo(
108
- () => ({
109
- source: resolvedSplashUri,
49
+ // Move extension arrays outside component to prevent recreation
50
+ const VIDEO_EXTENSIONS = ['.mp4', '.mov', '.mkv', '.webm', '.avi', '.3gp'];
51
+ const LOTTIE_EXTENSIONS = ['.json', '.lottie'];
52
+
53
+ export const SplashScreen: React.FC<SplashScreenProps> = React.memo(
54
+ ({
55
+ splashScreenConfig,
56
+ innerContainerStyle,
57
+ backgroundImage = {
58
+ gradientSplitBackground: 0.4,
59
+ resizeMode: 'cover',
60
+ },
61
+ onRedirect,
62
+ theme: overrideTheme,
63
+ }) => {
64
+ const {
65
+ source: splashSource,
66
+ type: splashType = 'image',
110
67
  width,
111
68
  height,
112
- fullscreen,
113
- resizeMode: resizeMode as any,
114
- }),
115
- [resolvedSplashUri, width, height, fullscreen, resizeMode]
116
- );
117
-
118
- const renderSplashContent = useCallback(() => {
119
- const videoExtensions = ['.mp4', '.mov', '.mkv', '.webm', '.avi', '.3gp'];
120
- const LOTTIE_EXTENSIONS = ['.json', '.lottie'];
121
- switch (splashType) {
122
- case 'video':
123
- const isVideoFile = videoExtensions.some((ext) =>
69
+ isStatic = false,
70
+ screenTime,
71
+ fullscreen = false,
72
+ resizeMode = 'contain',
73
+ backgroundColor: splashBgColor,
74
+ } = splashScreenConfig;
75
+
76
+ // Memoize computed values
77
+ const isRemote = useMemo(
78
+ () => splashSource.startsWith('http'),
79
+ [splashSource]
80
+ );
81
+
82
+ const isImageSplash = useMemo(() => splashType === 'image', [splashType]);
83
+
84
+ const backgroundImageUrl = useMemo(
85
+ () =>
86
+ isImageSplash && backgroundImage.source?.startsWith('http')
87
+ ? backgroundImage.source
88
+ : undefined,
89
+ [isImageSplash, backgroundImage.source]
90
+ );
91
+
92
+ const { data } = useSplashCache({
93
+ logoUrl: isRemote ? splashSource : undefined,
94
+ backgroundUrl: backgroundImageUrl,
95
+ });
96
+
97
+ const resolvedSplashUri = useMemo(
98
+ () => (isRemote && data.logoPath ? data.logoPath : splashSource),
99
+ [isRemote, data.logoPath, splashSource]
100
+ );
101
+
102
+ const displayTimeout = useMemo(() => {
103
+ if (typeof screenTime === 'number' && screenTime > 0) return screenTime;
104
+ if (isImageSplash || isStatic) return DEFAULT_IMAGE_TIMEOUT;
105
+ return 0;
106
+ }, [screenTime, isImageSplash, isStatic]);
107
+
108
+ const handleRedirect = useCallback(() => {
109
+ try {
110
+ onRedirect();
111
+ } catch (err) {
112
+ console.error('[SplashScreen] Redirect error:', err);
113
+ }
114
+ }, [onRedirect]);
115
+
116
+ useEffect(() => {
117
+ const timeoutSec = displayTimeout > 0 ? displayTimeout : FALLBACK_TIMEOUT;
118
+ const timer = setTimeout(handleRedirect, timeoutSec * 1000);
119
+ return () => clearTimeout(timer);
120
+ }, [displayTimeout, handleRedirect]);
121
+
122
+ const splashProps = useMemo(
123
+ () => ({
124
+ source: resolvedSplashUri,
125
+ width,
126
+ height,
127
+ fullscreen,
128
+ resizeMode: resizeMode as any,
129
+ }),
130
+ [resolvedSplashUri, width, height, fullscreen, resizeMode]
131
+ );
132
+
133
+ // Memoize file type checks
134
+ const isVideoFile = useMemo(
135
+ () =>
136
+ VIDEO_EXTENSIONS.some((ext) =>
124
137
  resolvedSplashUri.toLowerCase().endsWith(ext)
125
- );
126
-
127
- return isVideoFile ? (
128
- <SplashVideo
129
- {...splashProps}
130
- onEnd={displayTimeout ? undefined : handleRedirect}
131
- />
132
- ) : null;
138
+ ),
139
+ [resolvedSplashUri]
140
+ );
133
141
 
134
- case 'lottie-animation': {
135
- const isLottieFile = LOTTIE_EXTENSIONS.some((ext) =>
142
+ const isLottieFile = useMemo(
143
+ () =>
144
+ LOTTIE_EXTENSIONS.some((ext) =>
136
145
  resolvedSplashUri.toLowerCase().endsWith(ext)
137
- );
138
-
139
- return isLottieFile ? (
140
- <SplashLottie
141
- {...splashProps}
142
- onAnimationFinish={displayTimeout ? undefined : handleRedirect}
143
- />
144
- ) : null;
146
+ ),
147
+ [resolvedSplashUri]
148
+ );
149
+
150
+ // Memoize video onEnd handler
151
+ const videoOnEnd = useMemo(
152
+ () => (displayTimeout ? undefined : handleRedirect),
153
+ [displayTimeout, handleRedirect]
154
+ );
155
+
156
+ // Memoize lottie onAnimationFinish handler
157
+ const lottieOnAnimationFinish = useMemo(
158
+ () => (displayTimeout ? undefined : handleRedirect),
159
+ [displayTimeout, handleRedirect]
160
+ );
161
+
162
+ // Memoize BackgroundLayout props
163
+ const backgroundLayoutProps = useMemo(
164
+ () => ({
165
+ backgroundImage: isImageSplash ? backgroundImage.source : undefined,
166
+ backgroundColor: splashBgColor,
167
+ resizeMode: (backgroundImage.resizeMode ?? 'cover') as
168
+ | 'cover'
169
+ | 'contain'
170
+ | 'stretch'
171
+ | 'repeat',
172
+ innerContainerStyle,
173
+ onImageError: backgroundImage.onImageError,
174
+ theme: overrideTheme,
175
+ gradientSplitBackground: backgroundImage.gradientSplitBackground ?? 0.4,
176
+ }),
177
+ [
178
+ isImageSplash,
179
+ backgroundImage.source,
180
+ backgroundImage.resizeMode,
181
+ backgroundImage.onImageError,
182
+ backgroundImage.gradientSplitBackground,
183
+ splashBgColor,
184
+ innerContainerStyle,
185
+ overrideTheme,
186
+ ]
187
+ );
188
+
189
+ // Memoize AppStatusBar theme
190
+ const appStatusBarTheme = useMemo(
191
+ () => ({
192
+ ...overrideTheme,
193
+ dark: {
194
+ ...overrideTheme?.dark,
195
+ background: splashBgColor,
196
+ },
197
+ light: {
198
+ ...overrideTheme?.light,
199
+ background: splashBgColor,
200
+ },
201
+ }),
202
+ [overrideTheme, splashBgColor]
203
+ );
204
+
205
+ const renderSplashContent = useCallback(() => {
206
+ switch (splashType) {
207
+ case 'video':
208
+ return isVideoFile ? (
209
+ <SplashVideo {...splashProps} onEnd={videoOnEnd} />
210
+ ) : null;
211
+
212
+ case 'lottie-animation':
213
+ return isLottieFile ? (
214
+ <SplashLottie
215
+ {...splashProps}
216
+ onAnimationFinish={lottieOnAnimationFinish}
217
+ />
218
+ ) : null;
219
+
220
+ case 'image':
221
+ default:
222
+ return <SplashImage {...splashProps} />;
145
223
  }
146
-
147
- case 'image':
148
- default:
149
- return <SplashImage {...splashProps} />;
150
- }
151
- }, [
152
- splashType,
153
- resolvedSplashUri,
154
- splashProps,
155
- displayTimeout,
156
- handleRedirect,
157
- ]);
158
-
159
- return (
160
- <BackgroundLayout
161
- backgroundImage={isImageSplash ? backgroundImage.source : undefined}
162
- backgroundColor={splashBgColor}
163
- resizeMode={backgroundImage.resizeMode ?? 'cover'}
164
- innerContainerStyle={innerContainerStyle}
165
- onImageError={backgroundImage.onImageError}
166
- theme={overrideTheme}
167
- gradientSplitBackground={backgroundImage.gradientSplitBackground ?? 0.4}
168
- >
169
- <AppStatusBar
170
- theme={{
171
- ...overrideTheme,
172
- dark: {
173
- ...overrideTheme?.dark,
174
- background: splashBgColor,
175
- },
176
- light: {
177
- ...overrideTheme?.light,
178
- background: splashBgColor,
179
- },
180
- }}
181
- />
182
- {renderSplashContent()}
183
- </BackgroundLayout>
184
- );
185
- };
224
+ }, [
225
+ splashType,
226
+ isVideoFile,
227
+ isLottieFile,
228
+ splashProps,
229
+ videoOnEnd,
230
+ lottieOnAnimationFinish,
231
+ ]);
232
+
233
+ return (
234
+ <BackgroundLayout {...backgroundLayoutProps}>
235
+ <AppStatusBar theme={appStatusBarTheme} />
236
+ {renderSplashContent()}
237
+ </BackgroundLayout>
238
+ );
239
+ }
240
+ );
186
241
 
187
242
  namespace SplashScreen {
188
243
  export type Config = SplashScreenConfig;
@@ -1,4 +1,4 @@
1
- import React, { useState, useMemo } from 'react';
1
+ import React, { useState, useMemo, useCallback, useEffect } from 'react';
2
2
  import FastImage from 'react-native-fast-image';
3
3
  import { ActivityIndicator, View, StyleSheet } from 'react-native';
4
4
  import Display from '../../../../../utils/Display';
@@ -21,6 +21,13 @@ const SplashImage: React.FC<SplashImageProps> = ({
21
21
  }) => {
22
22
  const [isLoading, setIsLoading] = useState(!!source);
23
23
 
24
+ // Reset loading state when source changes
25
+ useEffect(() => {
26
+ if (source) {
27
+ setIsLoading(true);
28
+ }
29
+ }, [source]);
30
+
24
31
  const imageStyles = useMemo(
25
32
  () => ({
26
33
  width: fullscreen ? Display.fullWidth : width,
@@ -30,30 +37,40 @@ const SplashImage: React.FC<SplashImageProps> = ({
30
37
  [fullscreen, width, height]
31
38
  );
32
39
 
33
- const handleLoadEnd = useMemo(
34
- () => (source ? () => setIsLoading(false) : undefined),
35
- [source]
36
- );
37
- const resolveUri = (src?: string): string => {
38
- if (!src) return '';
40
+ const handleLoadEnd = useCallback(() => {
41
+ setIsLoading(false);
42
+ }, []);
43
+
44
+ const handleError = useCallback(() => {
45
+ setIsLoading(false);
46
+ }, []);
47
+
48
+ // Memoize URI resolution
49
+ const resolvedUri = useMemo(() => {
50
+ if (!source) return '';
39
51
  if (
40
- src.startsWith('http') ||
41
- src.startsWith('https') ||
42
- src.startsWith('file://')
52
+ source.startsWith('http') ||
53
+ source.startsWith('https') ||
54
+ source.startsWith('file://')
43
55
  )
44
- return src;
45
- return `file://${src}`;
46
- };
56
+ return source;
57
+ return `file://${source}`;
58
+ }, [source]);
59
+
60
+ // Memoize image source
61
+ const imageSource = useMemo(() => ({ uri: resolvedUri }), [resolvedUri]);
62
+
63
+ if (!source) return null;
47
64
 
48
65
  return (
49
66
  <View style={styles.container}>
50
67
  {isLoading && <ActivityIndicator size="large" style={styles.loader} />}
51
68
  <FastImage
52
- source={{ uri: resolveUri(source) }}
69
+ source={imageSource}
53
70
  onLoadEnd={handleLoadEnd}
54
71
  style={imageStyles}
55
72
  resizeMode={resizeMode}
56
- onError={() => setIsLoading(false)}
73
+ onError={handleError}
57
74
  />
58
75
  </View>
59
76
  );
@@ -2,7 +2,7 @@
2
2
  * @author Naresh Dhamu
3
3
  * @lastModified Thu 12 Jun 2025 at 09:22 AM
4
4
  */
5
- import React, { useMemo } from 'react';
5
+ import React, { useMemo, useCallback } from 'react';
6
6
  import LottieView from 'lottie-react-native';
7
7
  import { StyleSheet } from 'react-native';
8
8
  import Display from '../../../../../utils/Display';
@@ -37,6 +37,14 @@ const SplashLottie: React.FC<IProps> = ({
37
37
  [fullscreen, width, height]
38
38
  );
39
39
 
40
+ // Memoize Lottie source
41
+ const lottieSource = useMemo(() => ({ uri: source }), [source]);
42
+
43
+ // Memoize error handler
44
+ const handleAnimationFailure = useCallback((error: any) => {
45
+ console.error('Lottie animation failed to load:', error);
46
+ }, []);
47
+
40
48
  // Early return if invalid source
41
49
  if (!source) {
42
50
  return null;
@@ -44,15 +52,13 @@ const SplashLottie: React.FC<IProps> = ({
44
52
 
45
53
  return (
46
54
  <LottieView
47
- source={{ uri: source }}
55
+ source={lottieSource}
48
56
  autoPlay
49
57
  loop={false}
50
58
  onAnimationFinish={onAnimationFinish}
51
59
  style={lottieStyle}
52
60
  resizeMode={resizeMode}
53
- onAnimationFailure={(error) => {
54
- console.error('Lottie animation failed to load:', error);
55
- }}
61
+ onAnimationFailure={handleAnimationFailure}
56
62
  hardwareAccelerationAndroid
57
63
  cacheComposition
58
64
  />
@@ -93,15 +93,44 @@ const SplashVideo: React.FC<IProps> = ({
93
93
  return () => fadeAnim.stopAnimation();
94
94
  }, [fadeAnim]);
95
95
 
96
+ // Memoize resolved URI
97
+ const resolvedUri = useMemo(() => resolveUri(source), [source, resolveUri]);
98
+
99
+ // Memoize video source
100
+ const videoSource = useMemo(() => ({ uri: resolvedUri }), [resolvedUri]);
101
+
102
+ // Memoize controls styles
103
+ const controlsStyles = useMemo(
104
+ () => ({
105
+ hideForward: true,
106
+ hideDuration: true,
107
+ hideFullscreen: true,
108
+ hidePlayPause: true,
109
+ hideNavigationBarOnFullScreenMode: true,
110
+ hideNotificationBarOnFullScreenMode: true,
111
+ hideNext: true,
112
+ hidePosition: true,
113
+ hidePrevious: true,
114
+ hideRewind: true,
115
+ hideSeekBar: true,
116
+ hideSettingButton: true,
117
+ }),
118
+ []
119
+ );
120
+
121
+ // Memoize animated view style
122
+ const animatedViewStyle = useMemo(
123
+ () => [videoStyle, { opacity: fadeAnim, position: 'absolute' as const }],
124
+ [videoStyle, fadeAnim]
125
+ );
126
+
96
127
  /** 🧱 Render */
97
128
  return (
98
129
  <View style={styles.container}>
99
130
  {/* Video Layer */}
100
- <Animated.View
101
- style={[videoStyle, { opacity: fadeAnim, position: 'absolute' }]}
102
- >
131
+ <Animated.View style={animatedViewStyle}>
103
132
  <Video
104
- source={{ uri: resolveUri(source) }}
133
+ source={videoSource}
105
134
  style={videoStyle}
106
135
  resizeMode={resizeMode}
107
136
  paused={false}
@@ -109,20 +138,7 @@ const SplashVideo: React.FC<IProps> = ({
109
138
  onLoad={handleLoad}
110
139
  onError={handleError}
111
140
  onEnd={onEnd}
112
- controlsStyles={{
113
- hideForward: true,
114
- hideDuration: true,
115
- hideFullscreen: true,
116
- hidePlayPause: true,
117
- hideNavigationBarOnFullScreenMode: true,
118
- hideNotificationBarOnFullScreenMode: true,
119
- hideNext: true,
120
- hidePosition: true,
121
- hidePrevious: true,
122
- hideRewind: true,
123
- hideSeekBar: true,
124
- hideSettingButton: true,
125
- }}
141
+ controlsStyles={controlsStyles}
126
142
  ignoreSilentSwitch="obey"
127
143
  playInBackground={false}
128
144
  playWhenInactive={false}
@@ -1,4 +1,4 @@
1
- import React, { useMemo, useCallback } from 'react';
1
+ import React, { useMemo, useCallback, memo } from 'react';
2
2
  import {
3
3
  View,
4
4
  StyleSheet,
@@ -22,7 +22,7 @@ interface BackgroundLayoutProps {
22
22
  onImageError?: (error: Error) => void;
23
23
  }
24
24
 
25
- export const BackgroundLayout: React.FC<BackgroundLayoutProps> = (props) => {
25
+ const BackgroundLayoutComponent: React.FC<BackgroundLayoutProps> = (props) => {
26
26
  const {
27
27
  children,
28
28
  backgroundImage: backgroundImageUri,
@@ -49,14 +49,16 @@ export const BackgroundLayout: React.FC<BackgroundLayoutProps> = (props) => {
49
49
  return isRemoteUrl ? rawPath : `file://${rawPath}`;
50
50
  }, [backgroundImageUri, localPathBackground]);
51
51
 
52
- const containerStyle = useMemo(
53
- () => [
54
- styles.container,
55
- { backgroundColor: bgColor ?? theme.colors.background },
56
- ],
52
+ const backgroundColor = useMemo(
53
+ () => bgColor ?? theme.colors.background,
57
54
  [bgColor, theme.colors.background]
58
55
  );
59
56
 
57
+ const containerStyle = useMemo(
58
+ () => [styles.container, { backgroundColor }],
59
+ [backgroundColor]
60
+ );
61
+
60
62
  const handleImageLoadError = useCallback(
61
63
  (e: any) => {
62
64
  console.warn(
@@ -88,20 +90,26 @@ export const BackgroundLayout: React.FC<BackgroundLayoutProps> = (props) => {
88
90
  return locations;
89
91
  }, [theme.colors.backgroundLayoutGradient, gradientSplitBackground]);
90
92
 
91
- const renderChildren = (
92
- <View
93
- style={[
94
- styles.innerContainer,
95
- innerContainerStyle,
96
- bgColor ? { backgroundColor: bgColor } : null,
97
- ]}
98
- >
99
- {children}
100
- </View>
93
+ const imageContainerStyle = useMemo(
94
+ () => [styles.imageContainer, { backgroundColor: theme.colors.background }],
95
+ [theme.colors.background]
96
+ );
97
+
98
+ const imageStyle = useMemo(
99
+ () => [styles.imageStyle, { backgroundColor: theme.colors.background }],
100
+ [theme.colors.background]
101
+ );
102
+
103
+ const innerContainerStyleMemo = useMemo(
104
+ () => [
105
+ styles.innerContainer,
106
+ innerContainerStyle,
107
+ bgColor ? { backgroundColor: bgColor } : null,
108
+ ],
109
+ [innerContainerStyle, bgColor]
101
110
  );
102
111
 
103
112
  const showBackground = Boolean(backgroundImageUri && resolvedImageUri);
104
- const showGradient = showBackground;
105
113
 
106
114
  if (showBackground) {
107
115
  return (
@@ -109,34 +117,32 @@ export const BackgroundLayout: React.FC<BackgroundLayoutProps> = (props) => {
109
117
  <ImageBackground
110
118
  source={{ uri: resolvedImageUri }}
111
119
  resizeMode={resizeMode}
112
- style={[
113
- styles.imageContainer,
114
- { backgroundColor: theme.colors.background },
115
- ]}
116
- imageStyle={[
117
- styles.imageStyle,
118
- { backgroundColor: theme.colors.background },
119
- ]}
120
+ style={imageContainerStyle}
121
+ imageStyle={imageStyle}
120
122
  onError={handleImageLoadError}
121
123
  >
122
- {showGradient && (
123
- <LinearGradient
124
- colors={theme.colors.backgroundLayoutGradient}
125
- locations={gradientLocations}
126
- start={{ x: 0.5, y: 0 }}
127
- end={{ x: 0.5, y: 1 }}
128
- style={styles.gradientOverlay}
129
- />
130
- )}
131
- {renderChildren}
124
+ <LinearGradient
125
+ colors={theme.colors.backgroundLayoutGradient}
126
+ locations={gradientLocations}
127
+ start={{ x: 0.5, y: 0 }}
128
+ end={{ x: 0.5, y: 1 }}
129
+ style={styles.gradientOverlay}
130
+ />
131
+ <View style={innerContainerStyleMemo}>{children}</View>
132
132
  </ImageBackground>
133
133
  </View>
134
134
  );
135
135
  }
136
136
 
137
- return <View style={containerStyle}>{renderChildren}</View>;
137
+ return (
138
+ <View style={containerStyle}>
139
+ <View style={innerContainerStyleMemo}>{children}</View>
140
+ </View>
141
+ );
138
142
  };
139
143
 
144
+ export const BackgroundLayout = memo(BackgroundLayoutComponent);
145
+
140
146
  const styles = StyleSheet.create({
141
147
  container: {
142
148
  flex: 1,