@zezosoft/zezo-ott-react-native-ui-kit 1.0.4 → 1.0.6

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 (421) hide show
  1. package/lib/module/assets/animations/Failed.json +2103 -0
  2. package/lib/module/assets/animations/Pending.json +522 -0
  3. package/lib/module/assets/animations/Successful.json +2289 -0
  4. package/lib/module/components/Account/Account.js +4 -4
  5. package/lib/module/components/Account/Account.js.map +1 -1
  6. package/lib/module/components/Alert/AlertDialog.js +208 -0
  7. package/lib/module/components/Alert/AlertDialog.js.map +1 -0
  8. package/lib/module/components/Alert/UAAlert.js +5 -1
  9. package/lib/module/components/Alert/UAAlert.js.map +1 -1
  10. package/lib/module/components/Alert/index.js +1 -0
  11. package/lib/module/components/Alert/index.js.map +1 -1
  12. package/lib/module/components/Auth/AuthProvider/AuthProvider.js +240 -0
  13. package/lib/module/components/Auth/AuthProvider/AuthProvider.js.map +1 -0
  14. package/lib/module/components/Auth/ForgotPassword/ForgotPassword.js +4 -8
  15. package/lib/module/components/Auth/ForgotPassword/ForgotPassword.js.map +1 -1
  16. package/lib/module/components/Auth/Login/LoginWithEmail.js +7 -7
  17. package/lib/module/components/Auth/Login/LoginWithEmail.js.map +1 -1
  18. package/lib/module/components/Auth/Login/LoginWithPhone.js +6 -6
  19. package/lib/module/components/Auth/Login/LoginWithPhone.js.map +1 -1
  20. package/lib/module/components/Auth/OTP/OTP.js +5 -5
  21. package/lib/module/components/Auth/OTP/OTP.js.map +1 -1
  22. package/lib/module/components/Auth/QrLogin/QrLogin.js +8 -9
  23. package/lib/module/components/Auth/QrLogin/QrLogin.js.map +1 -1
  24. package/lib/module/components/Auth/QrLogin/components/QrViewArea.js +2 -2
  25. package/lib/module/components/Auth/QrLogin/components/QrViewArea.js.map +1 -1
  26. package/lib/module/components/Auth/SignUp/SignUp.js +9 -9
  27. package/lib/module/components/Auth/SignUp/SignUp.js.map +1 -1
  28. package/lib/module/components/Auth/SplashScreen/SplashScreen.js +62 -73
  29. package/lib/module/components/Auth/SplashScreen/SplashScreen.js.map +1 -1
  30. package/lib/module/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.js +82 -41
  31. package/lib/module/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.js.map +1 -1
  32. package/lib/module/components/Auth/index.js +2 -0
  33. package/lib/module/components/Auth/index.js.map +1 -1
  34. package/lib/module/components/BackgroundLayout/BackgroundLayout.js +8 -4
  35. package/lib/module/components/BackgroundLayout/BackgroundLayout.js.map +1 -1
  36. package/lib/module/components/BlogView/BlogView.js +8 -7
  37. package/lib/module/components/BlogView/BlogView.js.map +1 -1
  38. package/lib/module/components/Button/BackBtn.js +2 -2
  39. package/lib/module/components/Button/BackBtn.js.map +1 -1
  40. package/lib/module/components/Button/MenuBtn.js +2 -2
  41. package/lib/module/components/Button/MenuBtn.js.map +1 -1
  42. package/lib/module/components/Button/PrimaryBtn.js +2 -2
  43. package/lib/module/components/Button/PrimaryBtn.js.map +1 -1
  44. package/lib/module/components/Button/SecondaryBtn.js +91 -0
  45. package/lib/module/components/Button/SecondaryBtn.js.map +1 -0
  46. package/lib/module/components/Button/TextButton.js +2 -2
  47. package/lib/module/components/Button/TextButton.js.map +1 -1
  48. package/lib/module/components/Button/index.js +2 -0
  49. package/lib/module/components/Button/index.js.map +1 -1
  50. package/lib/module/components/Content/Card/Category/Category.js +3 -3
  51. package/lib/module/components/Content/Card/Category/Category.js.map +1 -1
  52. package/lib/module/components/Content/Card/NowWatching/NowWatching.js +11 -6
  53. package/lib/module/components/Content/Card/NowWatching/NowWatching.js.map +1 -1
  54. package/lib/module/components/Content/Card/Sliders/Styles/One.js +9 -6
  55. package/lib/module/components/Content/Card/Sliders/Styles/One.js.map +1 -1
  56. package/lib/module/components/Content/Card/Sliders/Styles/Two.js +7 -3
  57. package/lib/module/components/Content/Card/Sliders/Styles/Two.js.map +1 -1
  58. package/lib/module/components/Content/Card/Styles/Five.js +5 -3
  59. package/lib/module/components/Content/Card/Styles/Five.js.map +1 -1
  60. package/lib/module/components/Content/Card/Styles/Four.js +5 -3
  61. package/lib/module/components/Content/Card/Styles/Four.js.map +1 -1
  62. package/lib/module/components/Content/Card/Styles/One.js +11 -6
  63. package/lib/module/components/Content/Card/Styles/One.js.map +1 -1
  64. package/lib/module/components/Content/Card/Styles/RotateInOut.js +5 -3
  65. package/lib/module/components/Content/Card/Styles/RotateInOut.js.map +1 -1
  66. package/lib/module/components/Content/Card/Styles/Six.js +9 -4
  67. package/lib/module/components/Content/Card/Styles/Six.js.map +1 -1
  68. package/lib/module/components/Content/Card/Styles/Three.js +5 -3
  69. package/lib/module/components/Content/Card/Styles/Three.js.map +1 -1
  70. package/lib/module/components/Content/Card/Styles/TopTen.js +5 -3
  71. package/lib/module/components/Content/Card/Styles/TopTen.js.map +1 -1
  72. package/lib/module/components/Content/Card/Styles/Two.js +5 -3
  73. package/lib/module/components/Content/Card/Styles/Two.js.map +1 -1
  74. package/lib/module/components/Content/Card/components/CardPoster.js +13 -28
  75. package/lib/module/components/Content/Card/components/CardPoster.js.map +1 -1
  76. package/lib/module/components/Content/Card/components/NoContentFallback.js +2 -2
  77. package/lib/module/components/Content/Card/components/NoContentFallback.js.map +1 -1
  78. package/lib/module/components/Content/Card/components/RentOrBuyIcon.js +116 -0
  79. package/lib/module/components/Content/Card/components/RentOrBuyIcon.js.map +1 -0
  80. package/lib/module/components/Content/Card/components/ShowAllButton.js +3 -1
  81. package/lib/module/components/Content/Card/components/ShowAllButton.js.map +1 -1
  82. package/lib/module/components/Content/Card/components/ThumbnailCard.js +1 -2
  83. package/lib/module/components/Content/Card/components/ThumbnailCard.js.map +1 -1
  84. package/lib/module/components/ContentView/ContentView.js +6 -5
  85. package/lib/module/components/ContentView/ContentView.js.map +1 -1
  86. package/lib/module/components/ContentView/MoreContentList.js +4 -2
  87. package/lib/module/components/ContentView/MoreContentList.js.map +1 -1
  88. package/lib/module/components/ContentView/components/EpisodeCard.js +21 -16
  89. package/lib/module/components/ContentView/components/EpisodeCard.js.map +1 -1
  90. package/lib/module/components/ContentView/components/HeroBanner.js +29 -8
  91. package/lib/module/components/ContentView/components/HeroBanner.js.map +1 -1
  92. package/lib/module/components/ContentView/components/TrailerButton.js +5 -5
  93. package/lib/module/components/ContentView/components/TrailerButton.js.map +1 -1
  94. package/lib/module/components/Headers/AppHeader.js +2 -2
  95. package/lib/module/components/Headers/AppHeader.js.map +1 -1
  96. package/lib/module/components/Headers/One.js +2 -2
  97. package/lib/module/components/Headers/One.js.map +1 -1
  98. package/lib/module/components/Headers/Three.js +2 -2
  99. package/lib/module/components/Headers/Three.js.map +1 -1
  100. package/lib/module/components/Headers/Two.js +2 -2
  101. package/lib/module/components/Headers/Two.js.map +1 -1
  102. package/lib/module/components/Input/InputOne.js +2 -2
  103. package/lib/module/components/Input/InputOne.js.map +1 -1
  104. package/lib/module/components/Input/InputTwo.js +2 -2
  105. package/lib/module/components/Input/InputTwo.js.map +1 -1
  106. package/lib/module/components/Input/PhoneNumberInput.js +5 -4
  107. package/lib/module/components/Input/PhoneNumberInput.js.map +1 -1
  108. package/lib/module/components/Logo/Logo.js +7 -7
  109. package/lib/module/components/Logo/Logo.js.map +1 -1
  110. package/lib/module/components/Reels/ReelsSeries/Model/Synopsis.js +0 -4
  111. package/lib/module/components/Reels/ReelsSeries/Model/Synopsis.js.map +1 -1
  112. package/lib/module/components/Search/One.js +4 -4
  113. package/lib/module/components/Search/One.js.map +1 -1
  114. package/lib/module/components/Search/components/SearchCard.js +2 -2
  115. package/lib/module/components/Search/components/SearchCard.js.map +1 -1
  116. package/lib/module/components/Settings/AppSettings.js +4 -4
  117. package/lib/module/components/Settings/AppSettings.js.map +1 -1
  118. package/lib/module/components/Subscription/SubOne.js +11 -10
  119. package/lib/module/components/Subscription/SubOne.js.map +1 -1
  120. package/lib/module/components/TabBar/One.js +8 -5
  121. package/lib/module/components/TabBar/One.js.map +1 -1
  122. package/lib/module/components/TabBar/Three.js +2 -2
  123. package/lib/module/components/TabBar/Three.js.map +1 -1
  124. package/lib/module/components/TabBar/Two.js +8 -5
  125. package/lib/module/components/TabBar/Two.js.map +1 -1
  126. package/lib/module/components/Text/Text.js +3 -2
  127. package/lib/module/components/Text/Text.js.map +1 -1
  128. package/lib/module/components/User/DeviceSessions/DeviceSessions.js +4 -3
  129. package/lib/module/components/User/DeviceSessions/DeviceSessions.js.map +1 -1
  130. package/lib/module/components/User/ProfileUpdate/ProfileUpdate.js +17 -20
  131. package/lib/module/components/User/ProfileUpdate/ProfileUpdate.js.map +1 -1
  132. package/lib/module/components/User/WatchHistory/WatchHistory.js +4 -3
  133. package/lib/module/components/User/WatchHistory/WatchHistory.js.map +1 -1
  134. package/lib/module/components/User/WatchLater/WatchLater.js +6 -3
  135. package/lib/module/components/User/WatchLater/WatchLater.js.map +1 -1
  136. package/lib/module/components/User/components/UserAvatar.js +41 -11
  137. package/lib/module/components/User/components/UserAvatar.js.map +1 -1
  138. package/lib/module/components/User/components/UserSection.js +3 -3
  139. package/lib/module/components/User/components/UserSection.js.map +1 -1
  140. package/lib/module/components/common/AppStatusBar.js +41 -0
  141. package/lib/module/components/common/AppStatusBar.js.map +1 -0
  142. package/lib/module/components/layout/SafeAreaWrapper.js +2 -2
  143. package/lib/module/components/layout/SafeAreaWrapper.js.map +1 -1
  144. package/lib/module/hooks/useSplashCache.js +117 -0
  145. package/lib/module/hooks/useSplashCache.js.map +1 -0
  146. package/lib/module/store/RecentSearchesStore.js +0 -1
  147. package/lib/module/store/RecentSearchesStore.js.map +1 -1
  148. package/lib/module/store/splashStore.js +3 -7
  149. package/lib/module/store/splashStore.js.map +1 -1
  150. package/lib/module/store/themeStore.js +39 -0
  151. package/lib/module/store/themeStore.js.map +1 -0
  152. package/lib/module/theme/ThemeProvider.js +40 -69
  153. package/lib/module/theme/ThemeProvider.js.map +1 -1
  154. package/lib/module/theme/hook/index.js +5 -0
  155. package/lib/module/theme/hook/index.js.map +1 -0
  156. package/lib/module/theme/hook/useInternalTheme.js +46 -0
  157. package/lib/module/theme/hook/useInternalTheme.js.map +1 -0
  158. package/lib/module/theme/hook/useThemeStatusBar.js +27 -0
  159. package/lib/module/theme/hook/useThemeStatusBar.js.map +1 -0
  160. package/lib/module/theme/index.js +1 -2
  161. package/lib/module/theme/index.js.map +1 -1
  162. package/lib/module/theme/themes.js +6 -4
  163. package/lib/module/theme/themes.js.map +1 -1
  164. package/lib/typescript/src/components/Account/Account.d.ts +2 -2
  165. package/lib/typescript/src/components/Account/Account.d.ts.map +1 -1
  166. package/lib/typescript/src/components/Alert/AlertDialog.d.ts +18 -0
  167. package/lib/typescript/src/components/Alert/AlertDialog.d.ts.map +1 -0
  168. package/lib/typescript/src/components/Alert/UAAlert.d.ts +2 -2
  169. package/lib/typescript/src/components/Alert/UAAlert.d.ts.map +1 -1
  170. package/lib/typescript/src/components/Alert/index.d.ts +1 -0
  171. package/lib/typescript/src/components/Alert/index.d.ts.map +1 -1
  172. package/lib/typescript/src/components/Auth/AuthProvider/AuthProvider.d.ts +35 -0
  173. package/lib/typescript/src/components/Auth/AuthProvider/AuthProvider.d.ts.map +1 -0
  174. package/lib/typescript/src/components/Auth/ForgotPassword/ForgotPassword.d.ts +2 -2
  175. package/lib/typescript/src/components/Auth/ForgotPassword/ForgotPassword.d.ts.map +1 -1
  176. package/lib/typescript/src/components/Auth/Login/LoginWithEmail.d.ts +2 -2
  177. package/lib/typescript/src/components/Auth/Login/LoginWithEmail.d.ts.map +1 -1
  178. package/lib/typescript/src/components/Auth/Login/LoginWithPhone.d.ts +2 -2
  179. package/lib/typescript/src/components/Auth/Login/LoginWithPhone.d.ts.map +1 -1
  180. package/lib/typescript/src/components/Auth/OTP/OTP.d.ts +2 -2
  181. package/lib/typescript/src/components/Auth/OTP/OTP.d.ts.map +1 -1
  182. package/lib/typescript/src/components/Auth/QrLogin/QrLogin.d.ts +2 -2
  183. package/lib/typescript/src/components/Auth/QrLogin/QrLogin.d.ts.map +1 -1
  184. package/lib/typescript/src/components/Auth/QrLogin/components/QrViewArea.d.ts +2 -2
  185. package/lib/typescript/src/components/Auth/QrLogin/components/QrViewArea.d.ts.map +1 -1
  186. package/lib/typescript/src/components/Auth/SignUp/SignUp.d.ts +2 -2
  187. package/lib/typescript/src/components/Auth/SignUp/SignUp.d.ts.map +1 -1
  188. package/lib/typescript/src/components/Auth/SplashScreen/SplashScreen.d.ts +6 -5
  189. package/lib/typescript/src/components/Auth/SplashScreen/SplashScreen.d.ts.map +1 -1
  190. package/lib/typescript/src/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.d.ts +1 -1
  191. package/lib/typescript/src/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.d.ts.map +1 -1
  192. package/lib/typescript/src/components/Auth/index.d.ts +7 -5
  193. package/lib/typescript/src/components/Auth/index.d.ts.map +1 -1
  194. package/lib/typescript/src/components/BackgroundLayout/BackgroundLayout.d.ts +2 -2
  195. package/lib/typescript/src/components/BackgroundLayout/BackgroundLayout.d.ts.map +1 -1
  196. package/lib/typescript/src/components/BlogView/BlogView.d.ts +2 -2
  197. package/lib/typescript/src/components/BlogView/BlogView.d.ts.map +1 -1
  198. package/lib/typescript/src/components/Button/BackBtn.d.ts +2 -2
  199. package/lib/typescript/src/components/Button/BackBtn.d.ts.map +1 -1
  200. package/lib/typescript/src/components/Button/MenuBtn.d.ts +2 -2
  201. package/lib/typescript/src/components/Button/MenuBtn.d.ts.map +1 -1
  202. package/lib/typescript/src/components/Button/PrimaryBtn.d.ts +2 -2
  203. package/lib/typescript/src/components/Button/PrimaryBtn.d.ts.map +1 -1
  204. package/lib/typescript/src/components/Button/SecondaryBtn.d.ts +21 -0
  205. package/lib/typescript/src/components/Button/SecondaryBtn.d.ts.map +1 -0
  206. package/lib/typescript/src/components/Button/index.d.ts +13 -2
  207. package/lib/typescript/src/components/Button/index.d.ts.map +1 -1
  208. package/lib/typescript/src/components/Content/Card/Category/Category.d.ts +2 -2
  209. package/lib/typescript/src/components/Content/Card/Category/Category.d.ts.map +1 -1
  210. package/lib/typescript/src/components/Content/Card/NowWatching/NowWatching.d.ts +2 -2
  211. package/lib/typescript/src/components/Content/Card/NowWatching/NowWatching.d.ts.map +1 -1
  212. package/lib/typescript/src/components/Content/Card/Sliders/Styles/One.d.ts +2 -2
  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 +2 -2
  215. package/lib/typescript/src/components/Content/Card/Sliders/Styles/Two.d.ts.map +1 -1
  216. package/lib/typescript/src/components/Content/Card/Sliders/index.d.ts +2 -2
  217. package/lib/typescript/src/components/Content/Card/Styles/Five.d.ts +2 -2
  218. package/lib/typescript/src/components/Content/Card/Styles/Five.d.ts.map +1 -1
  219. package/lib/typescript/src/components/Content/Card/Styles/Four.d.ts +2 -2
  220. package/lib/typescript/src/components/Content/Card/Styles/Four.d.ts.map +1 -1
  221. package/lib/typescript/src/components/Content/Card/Styles/One.d.ts +2 -2
  222. package/lib/typescript/src/components/Content/Card/Styles/One.d.ts.map +1 -1
  223. package/lib/typescript/src/components/Content/Card/Styles/RotateInOut.d.ts +2 -2
  224. package/lib/typescript/src/components/Content/Card/Styles/RotateInOut.d.ts.map +1 -1
  225. package/lib/typescript/src/components/Content/Card/Styles/Six.d.ts +2 -2
  226. package/lib/typescript/src/components/Content/Card/Styles/Six.d.ts.map +1 -1
  227. package/lib/typescript/src/components/Content/Card/Styles/Three.d.ts +2 -2
  228. package/lib/typescript/src/components/Content/Card/Styles/Three.d.ts.map +1 -1
  229. package/lib/typescript/src/components/Content/Card/Styles/TopTen.d.ts +2 -2
  230. package/lib/typescript/src/components/Content/Card/Styles/TopTen.d.ts.map +1 -1
  231. package/lib/typescript/src/components/Content/Card/Styles/Two.d.ts +2 -2
  232. package/lib/typescript/src/components/Content/Card/Styles/Two.d.ts.map +1 -1
  233. package/lib/typescript/src/components/Content/Card/components/CardPoster.d.ts +4 -2
  234. package/lib/typescript/src/components/Content/Card/components/CardPoster.d.ts.map +1 -1
  235. package/lib/typescript/src/components/Content/Card/components/NoContentFallback.d.ts +2 -2
  236. package/lib/typescript/src/components/Content/Card/components/NoContentFallback.d.ts.map +1 -1
  237. package/lib/typescript/src/components/Content/Card/components/RentOrBuyIcon.d.ts +14 -0
  238. package/lib/typescript/src/components/Content/Card/components/RentOrBuyIcon.d.ts.map +1 -0
  239. package/lib/typescript/src/components/Content/Card/components/ShowAllButton.d.ts +2 -0
  240. package/lib/typescript/src/components/Content/Card/components/ShowAllButton.d.ts.map +1 -1
  241. package/lib/typescript/src/components/Content/Card/index.d.ts +10 -10
  242. package/lib/typescript/src/components/Content/Content.d.ts +2 -2
  243. package/lib/typescript/src/components/Content/Content.d.ts.map +1 -1
  244. package/lib/typescript/src/components/Content/Sections.d.ts +2 -2
  245. package/lib/typescript/src/components/Content/Sections.d.ts.map +1 -1
  246. package/lib/typescript/src/components/ContentView/ContentView.d.ts.map +1 -1
  247. package/lib/typescript/src/components/ContentView/MoreContentList.d.ts +2 -2
  248. package/lib/typescript/src/components/ContentView/MoreContentList.d.ts.map +1 -1
  249. package/lib/typescript/src/components/ContentView/components/EpisodeCard.d.ts +3 -3
  250. package/lib/typescript/src/components/ContentView/components/EpisodeCard.d.ts.map +1 -1
  251. package/lib/typescript/src/components/ContentView/components/HeroBanner.d.ts +1 -1
  252. package/lib/typescript/src/components/ContentView/components/HeroBanner.d.ts.map +1 -1
  253. package/lib/typescript/src/components/ContentView/components/TrailerButton.d.ts +2 -2
  254. package/lib/typescript/src/components/ContentView/components/TrailerButton.d.ts.map +1 -1
  255. package/lib/typescript/src/components/Headers/AppHeader.d.ts +2 -2
  256. package/lib/typescript/src/components/Headers/AppHeader.d.ts.map +1 -1
  257. package/lib/typescript/src/components/Headers/One.d.ts +2 -2
  258. package/lib/typescript/src/components/Headers/One.d.ts.map +1 -1
  259. package/lib/typescript/src/components/Headers/Three.d.ts +2 -2
  260. package/lib/typescript/src/components/Headers/Three.d.ts.map +1 -1
  261. package/lib/typescript/src/components/Headers/Two.d.ts +2 -2
  262. package/lib/typescript/src/components/Headers/Two.d.ts.map +1 -1
  263. package/lib/typescript/src/components/Input/InputOne.d.ts +2 -2
  264. package/lib/typescript/src/components/Input/InputOne.d.ts.map +1 -1
  265. package/lib/typescript/src/components/Input/InputTwo.d.ts +2 -2
  266. package/lib/typescript/src/components/Input/InputTwo.d.ts.map +1 -1
  267. package/lib/typescript/src/components/Input/PhoneNumberInput.d.ts +2 -2
  268. package/lib/typescript/src/components/Input/PhoneNumberInput.d.ts.map +1 -1
  269. package/lib/typescript/src/components/Logo/Logo.d.ts +2 -2
  270. package/lib/typescript/src/components/Logo/Logo.d.ts.map +1 -1
  271. package/lib/typescript/src/components/Reels/ReelsSeries/Model/Synopsis.d.ts.map +1 -1
  272. package/lib/typescript/src/components/Search/One.d.ts +2 -2
  273. package/lib/typescript/src/components/Search/One.d.ts.map +1 -1
  274. package/lib/typescript/src/components/Search/components/SearchCard.d.ts +2 -2
  275. package/lib/typescript/src/components/Search/components/SearchCard.d.ts.map +1 -1
  276. package/lib/typescript/src/components/Settings/AppSettings.d.ts +2 -2
  277. package/lib/typescript/src/components/Settings/AppSettings.d.ts.map +1 -1
  278. package/lib/typescript/src/components/Subscription/SubOne.d.ts +2 -2
  279. package/lib/typescript/src/components/Subscription/SubOne.d.ts.map +1 -1
  280. package/lib/typescript/src/components/Subscription/index.d.ts +1 -1
  281. package/lib/typescript/src/components/Subscription/index.d.ts.map +1 -1
  282. package/lib/typescript/src/components/TabBar/One.d.ts +2 -2
  283. package/lib/typescript/src/components/TabBar/One.d.ts.map +1 -1
  284. package/lib/typescript/src/components/TabBar/Three.d.ts +2 -2
  285. package/lib/typescript/src/components/TabBar/Three.d.ts.map +1 -1
  286. package/lib/typescript/src/components/TabBar/Two.d.ts +2 -2
  287. package/lib/typescript/src/components/TabBar/Two.d.ts.map +1 -1
  288. package/lib/typescript/src/components/Text/Text.d.ts +2 -0
  289. package/lib/typescript/src/components/Text/Text.d.ts.map +1 -1
  290. package/lib/typescript/src/components/User/DeviceSessions/DeviceSessions.d.ts +2 -2
  291. package/lib/typescript/src/components/User/DeviceSessions/DeviceSessions.d.ts.map +1 -1
  292. package/lib/typescript/src/components/User/ProfileUpdate/ProfileUpdate.d.ts +4 -4
  293. package/lib/typescript/src/components/User/ProfileUpdate/ProfileUpdate.d.ts.map +1 -1
  294. package/lib/typescript/src/components/User/WatchHistory/WatchHistory.d.ts +2 -2
  295. package/lib/typescript/src/components/User/WatchHistory/WatchHistory.d.ts.map +1 -1
  296. package/lib/typescript/src/components/User/WatchLater/WatchLater.d.ts +2 -2
  297. package/lib/typescript/src/components/User/WatchLater/WatchLater.d.ts.map +1 -1
  298. package/lib/typescript/src/components/User/components/UserAvatar.d.ts +6 -2
  299. package/lib/typescript/src/components/User/components/UserAvatar.d.ts.map +1 -1
  300. package/lib/typescript/src/components/User/components/UserSection.d.ts +2 -2
  301. package/lib/typescript/src/components/User/components/UserSection.d.ts.map +1 -1
  302. package/lib/typescript/src/components/common/AppStatusBar.d.ts +17 -0
  303. package/lib/typescript/src/components/common/AppStatusBar.d.ts.map +1 -0
  304. package/lib/typescript/src/components/layout/SafeAreaWrapper.d.ts +2 -2
  305. package/lib/typescript/src/components/layout/SafeAreaWrapper.d.ts.map +1 -1
  306. package/lib/typescript/src/hooks/useSplashCache.d.ts +22 -0
  307. package/lib/typescript/src/hooks/useSplashCache.d.ts.map +1 -0
  308. package/lib/typescript/src/store/RecentSearchesStore.d.ts.map +1 -1
  309. package/lib/typescript/src/store/themeStore.d.ts +7 -0
  310. package/lib/typescript/src/store/themeStore.d.ts.map +1 -0
  311. package/lib/typescript/src/theme/ThemeProvider.d.ts +17 -10
  312. package/lib/typescript/src/theme/ThemeProvider.d.ts.map +1 -1
  313. package/lib/typescript/src/theme/hook/index.d.ts +3 -0
  314. package/lib/typescript/src/theme/hook/index.d.ts.map +1 -0
  315. package/lib/typescript/src/theme/hook/useInternalTheme.d.ts +3 -0
  316. package/lib/typescript/src/theme/hook/useInternalTheme.d.ts.map +1 -0
  317. package/lib/typescript/src/theme/hook/useThemeStatusBar.d.ts +10 -0
  318. package/lib/typescript/src/theme/hook/useThemeStatusBar.d.ts.map +1 -0
  319. package/lib/typescript/src/theme/index.d.ts +1 -6
  320. package/lib/typescript/src/theme/index.d.ts.map +1 -1
  321. package/lib/typescript/src/theme/themes.d.ts +14 -2
  322. package/lib/typescript/src/theme/themes.d.ts.map +1 -1
  323. package/lib/typescript/src/types/content/content-view.types.d.ts +4 -3
  324. package/lib/typescript/src/types/content/content-view.types.d.ts.map +1 -1
  325. package/package.json +1 -1
  326. package/src/assets/animations/Failed.json +2103 -0
  327. package/src/assets/animations/Pending.json +522 -0
  328. package/src/assets/animations/Successful.json +2289 -0
  329. package/src/components/Account/Account.tsx +6 -6
  330. package/src/components/Alert/AlertDialog.tsx +247 -0
  331. package/src/components/Alert/UAAlert.tsx +5 -3
  332. package/src/components/Alert/index.ts +1 -0
  333. package/src/components/Auth/AuthProvider/AuthProvider.tsx +294 -0
  334. package/src/components/Auth/ForgotPassword/ForgotPassword.tsx +6 -8
  335. package/src/components/Auth/Login/LoginWithEmail.tsx +9 -9
  336. package/src/components/Auth/Login/LoginWithPhone.tsx +8 -8
  337. package/src/components/Auth/OTP/OTP.tsx +7 -7
  338. package/src/components/Auth/QrLogin/QrLogin.tsx +8 -12
  339. package/src/components/Auth/QrLogin/components/QrViewArea.tsx +4 -4
  340. package/src/components/Auth/SignUp/SignUp.tsx +11 -11
  341. package/src/components/Auth/SplashScreen/SplashScreen.tsx +87 -91
  342. package/src/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.tsx +90 -40
  343. package/src/components/Auth/index.ts +2 -0
  344. package/src/components/BackgroundLayout/BackgroundLayout.tsx +8 -6
  345. package/src/components/BlogView/BlogView.tsx +13 -8
  346. package/src/components/Button/BackBtn.tsx +4 -4
  347. package/src/components/Button/MenuBtn.tsx +4 -4
  348. package/src/components/Button/PrimaryBtn.tsx +4 -4
  349. package/src/components/Button/SecondaryBtn.tsx +116 -0
  350. package/src/components/Button/TextButton.tsx +2 -2
  351. package/src/components/Button/index.ts +2 -0
  352. package/src/components/Content/Card/Category/Category.tsx +5 -5
  353. package/src/components/Content/Card/NowWatching/NowWatching.tsx +10 -5
  354. package/src/components/Content/Card/Sliders/Styles/One.tsx +10 -5
  355. package/src/components/Content/Card/Sliders/Styles/Two.tsx +9 -4
  356. package/src/components/Content/Card/Styles/Five.tsx +6 -5
  357. package/src/components/Content/Card/Styles/Four.tsx +6 -5
  358. package/src/components/Content/Card/Styles/One.tsx +12 -6
  359. package/src/components/Content/Card/Styles/RotateInOut.tsx +6 -5
  360. package/src/components/Content/Card/Styles/Six.tsx +10 -5
  361. package/src/components/Content/Card/Styles/Three.tsx +6 -5
  362. package/src/components/Content/Card/Styles/TopTen.tsx +6 -5
  363. package/src/components/Content/Card/Styles/Two.tsx +6 -5
  364. package/src/components/Content/Card/components/CardPoster.tsx +24 -51
  365. package/src/components/Content/Card/components/NoContentFallback.tsx +4 -4
  366. package/src/components/Content/Card/components/RentOrBuyIcon.tsx +109 -0
  367. package/src/components/Content/Card/components/ShowAllButton.tsx +6 -1
  368. package/src/components/Content/Card/components/ThumbnailCard.tsx +1 -2
  369. package/src/components/Content/Content.tsx +2 -2
  370. package/src/components/Content/Sections.tsx +2 -2
  371. package/src/components/ContentView/ContentView.tsx +6 -5
  372. package/src/components/ContentView/MoreContentList.tsx +6 -4
  373. package/src/components/ContentView/components/EpisodeCard.tsx +25 -17
  374. package/src/components/ContentView/components/HeroBanner.tsx +26 -3
  375. package/src/components/ContentView/components/TrailerButton.tsx +6 -5
  376. package/src/components/Headers/AppHeader.tsx +4 -4
  377. package/src/components/Headers/One.tsx +4 -4
  378. package/src/components/Headers/Three.tsx +4 -4
  379. package/src/components/Headers/Two.tsx +4 -4
  380. package/src/components/Input/InputOne.tsx +4 -4
  381. package/src/components/Input/InputTwo.tsx +4 -4
  382. package/src/components/Input/PhoneNumberInput.tsx +5 -5
  383. package/src/components/Logo/Logo.tsx +9 -11
  384. package/src/components/Reels/ReelsSeries/Model/Synopsis.tsx +1 -8
  385. package/src/components/Search/One.tsx +10 -9
  386. package/src/components/Search/components/SearchCard.tsx +4 -4
  387. package/src/components/Settings/AppSettings.tsx +6 -6
  388. package/src/components/Subscription/SubOne.tsx +19 -18
  389. package/src/components/TabBar/One.tsx +10 -6
  390. package/src/components/TabBar/Three.tsx +4 -4
  391. package/src/components/TabBar/Two.tsx +9 -6
  392. package/src/components/Text/Text.tsx +5 -2
  393. package/src/components/User/DeviceSessions/DeviceSessions.tsx +6 -5
  394. package/src/components/User/ProfileUpdate/ProfileUpdate.tsx +20 -26
  395. package/src/components/User/WatchHistory/WatchHistory.tsx +6 -5
  396. package/src/components/User/WatchLater/WatchLater.tsx +8 -6
  397. package/src/components/User/components/UserAvatar.tsx +46 -7
  398. package/src/components/User/components/UserSection.tsx +5 -5
  399. package/src/components/common/AppStatusBar.tsx +51 -0
  400. package/src/components/layout/SafeAreaWrapper.tsx +4 -4
  401. package/src/hooks/useSplashCache.ts +166 -0
  402. package/src/store/RecentSearchesStore.ts +0 -1
  403. package/src/store/splashStore.ts +5 -5
  404. package/src/store/themeStore.ts +53 -0
  405. package/src/theme/ThemeProvider.tsx +40 -102
  406. package/src/theme/hook/index.ts +2 -0
  407. package/src/theme/hook/useInternalTheme.ts +61 -0
  408. package/src/theme/hook/useThemeStatusBar.ts +33 -0
  409. package/src/theme/index.ts +1 -7
  410. package/src/theme/themes.ts +20 -6
  411. package/src/types/content/content-view.types.ts +4 -3
  412. package/lib/module/hooks/useInitSplashCacheSync.js +0 -116
  413. package/lib/module/hooks/useInitSplashCacheSync.js.map +0 -1
  414. package/lib/module/theme/hook/useTheme.js +0 -45
  415. package/lib/module/theme/hook/useTheme.js.map +0 -1
  416. package/lib/typescript/src/hooks/useInitSplashCacheSync.d.ts +0 -22
  417. package/lib/typescript/src/hooks/useInitSplashCacheSync.d.ts.map +0 -1
  418. package/lib/typescript/src/theme/hook/useTheme.d.ts +0 -9
  419. package/lib/typescript/src/theme/hook/useTheme.d.ts.map +0 -1
  420. package/src/hooks/useInitSplashCacheSync.ts +0 -174
  421. package/src/theme/hook/useTheme.ts +0 -45
@@ -17,12 +17,12 @@ import { Button } from '../../Button';
17
17
  import { BackgroundLayout } from '../../BackgroundLayout/BackgroundLayout';
18
18
  import { Logo } from '../../Logo/Logo';
19
19
  import TextButton from '../../Button/TextButton';
20
- import { useTheme } from '../../../theme/hook/useTheme';
20
+ import { useInternalTheme } from '../../../theme/hook/useInternalTheme';
21
21
  import HideKeyboard from '../../Keyboard/HideKeyboard';
22
22
  import { useKeyboard } from '../../../hooks/useKeyboard';
23
23
  import BackBtn from '../../Button/BackBtn';
24
24
  import { Text } from '../../Text';
25
- import type { AppTheme } from '../../../theme/themes';
25
+ import type { ThemeOverride } from '../../../theme/themes';
26
26
  import { RFValue } from 'react-native-responsive-fontsize';
27
27
 
28
28
  type FormValues = {
@@ -53,7 +53,7 @@ type LoginWithEmailProps = {
53
53
  logoUri?: string;
54
54
  loadingSubmitBtn?: boolean;
55
55
 
56
- theme?: AppTheme;
56
+ theme?: ThemeOverride;
57
57
  text?: {
58
58
  emailLabel?: string;
59
59
  emailPlaceholder?: string;
@@ -113,7 +113,7 @@ const LoginWithEmail: React.FC<LoginWithEmailProps> = ({
113
113
  renderTopBackBtn,
114
114
  }) => {
115
115
  const { isKeyboardOpen } = useKeyboard();
116
- const { theme: resolvedTheme } = useTheme(overrideTheme);
116
+ const { theme: resolvedTheme } = useInternalTheme(overrideTheme);
117
117
  const [isLoading, setIsLoading] = React.useState(false);
118
118
  const {
119
119
  control,
@@ -150,7 +150,7 @@ const LoginWithEmail: React.FC<LoginWithEmailProps> = ({
150
150
  return (
151
151
  <BackgroundLayout
152
152
  backgroundImage={backgroundImage?.source}
153
- theme={resolvedTheme}
153
+ theme={overrideTheme}
154
154
  gradientSplitBackground={isKeyboardOpen ? 0.31 : 0.35}
155
155
  >
156
156
  <View style={[styles.container, containerStyle]}>
@@ -162,7 +162,7 @@ const LoginWithEmail: React.FC<LoginWithEmailProps> = ({
162
162
  })
163
163
  ) : (
164
164
  <BackBtn
165
- theme={resolvedTheme}
165
+ theme={overrideTheme}
166
166
  style={topBackBtnStyle}
167
167
  onPress={onTopBackBtnPress}
168
168
  />
@@ -209,7 +209,7 @@ const LoginWithEmail: React.FC<LoginWithEmailProps> = ({
209
209
  errorMessage={errors.email?.message}
210
210
  inputStyle={inputStyle}
211
211
  containerStyle={inputContainerStyle}
212
- theme={resolvedTheme}
212
+ theme={overrideTheme}
213
213
  textContentType="emailAddress"
214
214
  autoCapitalize="none"
215
215
  keyboardType="email-address"
@@ -250,7 +250,7 @@ const LoginWithEmail: React.FC<LoginWithEmailProps> = ({
250
250
  spellCheck={false}
251
251
  autoCorrect={false}
252
252
  autoComplete="off"
253
- theme={resolvedTheme}
253
+ theme={overrideTheme}
254
254
  />
255
255
  {!isKeyboardOpen &&
256
256
  shouldRender(renderForgotPassword || onForgotPassword) &&
@@ -283,7 +283,7 @@ const LoginWithEmail: React.FC<LoginWithEmailProps> = ({
283
283
  title={text?.loginButton || 'Login'}
284
284
  onPress={handleSubmit(handleFormSubmit)}
285
285
  disabled={loadingSubmitBtn || !isValid || isLoading}
286
- theme={resolvedTheme}
286
+ theme={overrideTheme}
287
287
  titleStyle={{
288
288
  fontSize: RFValue(14),
289
289
  }}
@@ -12,13 +12,13 @@ import { BackgroundLayout } from '../../BackgroundLayout/BackgroundLayout';
12
12
  import { Logo } from '../../Logo/Logo';
13
13
  import { Button } from '../../Button';
14
14
  import HideKeyboard from '../../Keyboard/HideKeyboard';
15
- import { useTheme } from '../../../theme/hook/useTheme';
15
+ import { useInternalTheme } from '../../../theme/hook/useInternalTheme';
16
16
  import { useKeyboard } from '../../../hooks/useKeyboard';
17
17
  import PhoneNumberInput from '../../Input/PhoneNumberInput';
18
18
  import TextButton from '../../Button/TextButton';
19
19
  import BackBtn from '../../Button/BackBtn';
20
20
  import { Text } from '../../Text';
21
- import type { AppTheme } from '../../../theme/themes';
21
+ import type { ThemeOverride } from '../../../theme/themes';
22
22
  import { RFValue } from 'react-native-responsive-fontsize';
23
23
 
24
24
  type PhoneField = {
@@ -49,7 +49,7 @@ type LoginWithPhoneProps = {
49
49
  };
50
50
  loadingSubmitBtn?: boolean;
51
51
  logoUri?: string;
52
- theme?: AppTheme;
52
+ theme?: ThemeOverride;
53
53
  text?: {
54
54
  phoneLabel?: string;
55
55
  phonePlaceholder?: string;
@@ -100,7 +100,7 @@ const LoginWithPhone: React.FC<LoginWithPhoneProps> = ({
100
100
  renderTopBackBtn,
101
101
  }) => {
102
102
  const { isKeyboardOpen } = useKeyboard();
103
- const { theme: resolvedTheme } = useTheme(overrideTheme);
103
+ const { theme: resolvedTheme } = useInternalTheme(overrideTheme);
104
104
  const [isLoading, setIsLoading] = React.useState(false);
105
105
 
106
106
  const {
@@ -181,7 +181,7 @@ const LoginWithPhone: React.FC<LoginWithPhoneProps> = ({
181
181
  return (
182
182
  <BackgroundLayout
183
183
  backgroundImage={backgroundImage?.source}
184
- theme={resolvedTheme}
184
+ theme={overrideTheme}
185
185
  gradientSplitBackground={isKeyboardOpen ? 0.3 : 0.4}
186
186
  >
187
187
  <View
@@ -196,7 +196,7 @@ const LoginWithPhone: React.FC<LoginWithPhoneProps> = ({
196
196
  })
197
197
  ) : (
198
198
  <BackBtn
199
- theme={resolvedTheme}
199
+ theme={overrideTheme}
200
200
  style={topBackBtnStyle}
201
201
  onPress={onTopBackBtnPress}
202
202
  />
@@ -240,7 +240,7 @@ const LoginWithPhone: React.FC<LoginWithPhoneProps> = ({
240
240
  errorMessage={errors.phone?.message}
241
241
  inputStyle={inputStyle}
242
242
  containerStyle={inputContainerStyle}
243
- theme={resolvedTheme}
243
+ theme={overrideTheme}
244
244
  accessibilityLabel={`Phone input${errors.phone ? ', error' : ''}`}
245
245
  />
246
246
  )}
@@ -256,7 +256,7 @@ const LoginWithPhone: React.FC<LoginWithPhoneProps> = ({
256
256
  <Button.Primary
257
257
  title={text.loginButton || DEFAULT_TEXT.loginButton}
258
258
  disabled={loadingSubmitBtn || !isValid || isLoading}
259
- theme={resolvedTheme}
259
+ theme={overrideTheme}
260
260
  onPress={handleSubmit(handleFormSubmit)}
261
261
  loadingText={
262
262
  text.loadingSubmitBtnText ||
@@ -19,12 +19,12 @@ import { BackgroundLayout } from '../../BackgroundLayout/BackgroundLayout';
19
19
  import HideKeyboard from '../../Keyboard/HideKeyboard';
20
20
  import { useKeyboard } from '../../../hooks/useKeyboard';
21
21
  import BackBtn from '../../Button/BackBtn';
22
- import { useTheme } from '../../../theme/hook/useTheme';
22
+ import { useInternalTheme } from '../../../theme/hook/useInternalTheme';
23
23
  import { Logo } from '../../Logo/Logo';
24
24
  import { Button } from '../../Button';
25
25
  import Display from '../../../utils/Display';
26
26
  import { Text } from '../../Text';
27
- import type { AppTheme } from '../../../theme/themes';
27
+ import type { ThemeOverride } from '../../../theme/themes';
28
28
  import { RFValue } from 'react-native-responsive-fontsize';
29
29
 
30
30
  type OTPProps = {
@@ -43,7 +43,7 @@ type OTPProps = {
43
43
  };
44
44
  loading?: boolean;
45
45
  logoUri?: string;
46
- theme?: AppTheme;
46
+ theme?: ThemeOverride;
47
47
  otpDigitCount?: number;
48
48
  keyboardType?: KeyboardTypeOptions;
49
49
  phoneNumber?: string;
@@ -123,7 +123,7 @@ const OTP: React.FC<OTPProps> = ({
123
123
  cellStyle,
124
124
  focusCellStyle,
125
125
  }) => {
126
- const { theme: resolvedTheme } = useTheme(overrideTheme);
126
+ const { theme: resolvedTheme } = useInternalTheme(overrideTheme);
127
127
  const { isKeyboardOpen } = useKeyboard();
128
128
  const [otp, setOtp] = useState('');
129
129
  const [isSubmitting, setIsSubmitting] = useState(false);
@@ -252,7 +252,7 @@ const OTP: React.FC<OTPProps> = ({
252
252
  typeof condition === 'function' || !!condition;
253
253
  return (
254
254
  <BackgroundLayout
255
- theme={resolvedTheme}
255
+ theme={overrideTheme}
256
256
  backgroundImage={backgroundImage?.source}
257
257
  gradientSplitBackground={isKeyboardOpen ? 0.3 : 0.4}
258
258
  >
@@ -266,7 +266,7 @@ const OTP: React.FC<OTPProps> = ({
266
266
  })
267
267
  ) : (
268
268
  <BackBtn
269
- theme={resolvedTheme}
269
+ theme={overrideTheme}
270
270
  style={backBtnStyle}
271
271
  onPress={onTopBackBtnPress}
272
272
  />
@@ -352,7 +352,7 @@ const OTP: React.FC<OTPProps> = ({
352
352
  ) : (
353
353
  <Button.Primary
354
354
  title={text.submitButton || DEFAULT_TEXT.submitButton}
355
- theme={resolvedTheme}
355
+ theme={overrideTheme}
356
356
  onPress={handleSubmit}
357
357
  loadingText={text.loadingSubmitBtnText}
358
358
  titleStyle={{ fontSize: RFValue(13) }}
@@ -9,14 +9,13 @@ import {
9
9
  Dimensions,
10
10
  TouchableOpacity,
11
11
  ActivityIndicator,
12
- StatusBar,
13
12
  } from 'react-native';
14
13
  import { scale } from 'react-native-size-matters';
15
14
  import { RFValue } from 'react-native-responsive-fontsize';
16
15
  import { Text } from '../../Text';
17
16
  import AppHeader from '../../Headers/AppHeader';
18
- import { useTheme } from '../../../theme/hook/useTheme';
19
- import type { AppTheme } from '../../../theme/themes';
17
+ import { useInternalTheme } from '../../../theme/hook/useInternalTheme';
18
+ import type { ThemeOverride } from '../../../theme/themes';
20
19
  import { Camera as CameraIcon, QrCode } from 'lucide-react-native';
21
20
  import {
22
21
  Camera,
@@ -26,6 +25,7 @@ import {
26
25
  type Code as BaseCode,
27
26
  } from 'react-native-vision-camera';
28
27
  import QrViewArea from './components/QrViewArea';
28
+ import { AppStatusBar } from '../../common/AppStatusBar';
29
29
 
30
30
  const { width: SCREEN_W, height: SCREEN_H } = Dimensions.get('window');
31
31
  const HEADER_HEIGHT = 25;
@@ -43,7 +43,7 @@ export type QrLoginProps = {
43
43
  scanButtonText?: string;
44
44
  onBackPress?: () => void;
45
45
  onScanSuccess?: (value: string) => void;
46
- theme?: AppTheme;
46
+ theme?: ThemeOverride;
47
47
  cameraType?: 'back' | 'front';
48
48
  layout?: 'one' | 'two';
49
49
  };
@@ -65,7 +65,7 @@ export const QrLogin: React.FC<QrLoginProps> = ({
65
65
  cameraType = DEFAULTS.cameraType,
66
66
  layout = 'one',
67
67
  }) => {
68
- const { theme: appliedTheme } = useTheme(theme);
68
+ const { theme: appliedTheme } = useInternalTheme(theme);
69
69
  const { colors } = appliedTheme;
70
70
 
71
71
  const [scanActive, setScanActive] = useState(false);
@@ -144,17 +144,13 @@ export const QrLogin: React.FC<QrLoginProps> = ({
144
144
 
145
145
  return (
146
146
  <View style={[styles.container, { backgroundColor: colors.background }]}>
147
- <StatusBar
148
- translucent
149
- backgroundColor="transparent"
150
- barStyle={appliedTheme.dark ? 'light-content' : 'dark-content'}
151
- />
147
+ <AppStatusBar theme={theme} />
152
148
 
153
149
  <View style={[styles.headerWrapper, { height: HEADER_HEIGHT }]}>
154
150
  <AppHeader
155
151
  title={title}
156
152
  onBackPress={onBackPress}
157
- theme={appliedTheme}
153
+ theme={theme}
158
154
  titleAlign="left"
159
155
  />
160
156
  </View>
@@ -170,7 +166,7 @@ export const QrLogin: React.FC<QrLoginProps> = ({
170
166
  codeScanner={codeScanner}
171
167
  />
172
168
  <QrViewArea
173
- theme={appliedTheme}
169
+ theme={theme}
174
170
  layout={layout}
175
171
  headerHeight={HEADER_HEIGHT}
176
172
  />
@@ -13,8 +13,8 @@ import {
13
13
  } from 'react-native';
14
14
  import { scale } from 'react-native-size-matters';
15
15
  import Svg, { Rect } from 'react-native-svg';
16
- import type { AppTheme } from '../../../../theme/themes';
17
- import { useTheme } from '../../../../theme/hook/useTheme';
16
+ import type { ThemeOverride } from '../../../../theme/themes';
17
+ import { useInternalTheme } from '../../../../theme/hook/useInternalTheme';
18
18
 
19
19
  const { width: SCREEN_W, height: SCREEN_H } = Dimensions.get('window');
20
20
 
@@ -22,7 +22,7 @@ type QrViewAreaProps = {
22
22
  scanBoxWidth?: number;
23
23
  layout?: 'one' | 'two';
24
24
  headerHeight?: number;
25
- theme?: AppTheme;
25
+ theme?: ThemeOverride;
26
26
  };
27
27
 
28
28
  const QrViewArea: React.FC<QrViewAreaProps> = ({
@@ -31,7 +31,7 @@ const QrViewArea: React.FC<QrViewAreaProps> = ({
31
31
  headerHeight = 60,
32
32
  theme,
33
33
  }) => {
34
- const { theme: appliedTheme } = useTheme(theme);
34
+ const { theme: appliedTheme } = useInternalTheme(theme);
35
35
  const { colors } = appliedTheme;
36
36
 
37
37
  const anim = useRef(new Animated.Value(0)).current;
@@ -18,12 +18,12 @@ import { Button } from '../../Button';
18
18
  import { BackgroundLayout } from '../../BackgroundLayout/BackgroundLayout';
19
19
  import { Logo } from '../../Logo/Logo';
20
20
  import TextButton from '../../Button/TextButton';
21
- import { useTheme } from '../../../theme/hook/useTheme';
21
+ import { useInternalTheme } from '../../../theme/hook/useInternalTheme';
22
22
  import { useKeyboard } from '../../../hooks/useKeyboard';
23
23
  import HideKeyboard from '../../Keyboard/HideKeyboard';
24
24
  import BackBtn from '../../Button/BackBtn';
25
25
  import { Text } from '../../Text';
26
- import type { AppTheme } from '../../../theme/themes';
26
+ import type { ThemeOverride } from '../../../theme/themes';
27
27
  import { RFValue } from 'react-native-responsive-fontsize';
28
28
 
29
29
  type FormValues = {
@@ -52,7 +52,7 @@ export interface SignupProps {
52
52
  resizeMode?: 'cover' | 'contain' | 'stretch' | 'repeat';
53
53
  };
54
54
  logoUri?: string;
55
- theme?: AppTheme;
55
+ theme?: ThemeOverride;
56
56
  loadingSubmitBtn?: boolean;
57
57
  text?: {
58
58
  usernameLabel?: string;
@@ -120,7 +120,7 @@ const Signup: React.FC<SignupProps> = ({
120
120
  },
121
121
  mode: 'onChange',
122
122
  });
123
- const { theme: resolvedTheme } = useTheme(overrideTheme);
123
+ const { theme: resolvedTheme } = useInternalTheme(overrideTheme);
124
124
  const { isKeyboardOpen } = useKeyboard();
125
125
  const [isLoading, setIsLoading] = React.useState(false);
126
126
 
@@ -144,7 +144,7 @@ const Signup: React.FC<SignupProps> = ({
144
144
 
145
145
  return (
146
146
  <BackgroundLayout
147
- theme={resolvedTheme}
147
+ theme={overrideTheme}
148
148
  backgroundImage={backgroundImage?.source}
149
149
  gradientSplitBackground={
150
150
  isKeyboardOpen ? (Platform.OS === 'ios' ? 0.19 : 0.14) : 0.3
@@ -160,7 +160,7 @@ const Signup: React.FC<SignupProps> = ({
160
160
  })
161
161
  ) : (
162
162
  <BackBtn
163
- theme={resolvedTheme}
163
+ theme={overrideTheme}
164
164
  style={topBackBtnStyle}
165
165
  onPress={onTopBackBtnPress}
166
166
  />
@@ -205,7 +205,7 @@ const Signup: React.FC<SignupProps> = ({
205
205
  errorMessage={errors.username?.message}
206
206
  inputStyle={inputStyle}
207
207
  containerStyle={inputContainerStyle}
208
- theme={resolvedTheme}
208
+ theme={overrideTheme}
209
209
  />
210
210
  )}
211
211
  />
@@ -236,7 +236,7 @@ const Signup: React.FC<SignupProps> = ({
236
236
  errorMessage={errors.email?.message}
237
237
  inputStyle={inputStyle}
238
238
  containerStyle={inputContainerStyle}
239
- theme={resolvedTheme}
239
+ theme={overrideTheme}
240
240
  textContentType="emailAddress"
241
241
  autoCapitalize="none"
242
242
  keyboardType="email-address"
@@ -277,7 +277,7 @@ const Signup: React.FC<SignupProps> = ({
277
277
  spellCheck={false}
278
278
  autoCorrect={false}
279
279
  autoComplete="off"
280
- theme={resolvedTheme}
280
+ theme={overrideTheme}
281
281
  />
282
282
  )}
283
283
  />
@@ -312,7 +312,7 @@ const Signup: React.FC<SignupProps> = ({
312
312
  errorMessage={errors.confirmPassword?.message}
313
313
  inputStyle={inputStyle}
314
314
  containerStyle={inputContainerStyle}
315
- theme={resolvedTheme}
315
+ theme={overrideTheme}
316
316
  textContentType="none"
317
317
  autoCapitalize="none"
318
318
  spellCheck={false}
@@ -334,7 +334,7 @@ const Signup: React.FC<SignupProps> = ({
334
334
  <Button.Primary
335
335
  title={text?.signupButton || 'Sign up'}
336
336
  disabled={!isValid}
337
- theme={resolvedTheme}
337
+ theme={overrideTheme}
338
338
  loading={loadingSubmitBtn || isLoading}
339
339
  loadingText={text?.loadingSubmitBtnText || 'Signing up...'}
340
340
  onPress={handleSubmit(handleFormSubmit)}
@@ -1,23 +1,25 @@
1
1
  /**
2
2
  * @author Naresh Dhamu
3
- * @lastModified Wed 30 Jul 2025 at 03:21 PM
3
+ * @lastModified Fri 17 Oct 2025 at 09:51 PM
4
4
  */
5
5
 
6
6
  import React, { useEffect, useMemo, useCallback } from 'react';
7
+ import { type ViewStyle } from 'react-native';
7
8
  import SplashImage from './components/SplashImage/SplashImage';
8
9
  import SplashVideo from './components/SplashVideo/SplashVideo';
9
10
  import SplashLottie from './components/SplashLottie/SplashLottie';
10
- import { StatusBar, type ViewStyle } from 'react-native';
11
- import type { AppTheme } from '../../../theme/themes';
12
- import { useTheme } from '../../../theme';
13
- import { useInitSplashCacheSync } from '../../../hooks/useInitSplashCacheSync';
11
+
12
+ import type { ThemeOverride } from '../../../theme/themes';
13
+
14
14
  import { BackgroundLayout } from '../../BackgroundLayout/BackgroundLayout';
15
- import Color from 'color';
16
- type SplashSourceType = 'image' | 'video' | 'lottie-animation';
15
+ import { useSplashCache } from '../../../hooks/useSplashCache';
16
+ import { AppStatusBar } from '../../common/AppStatusBar';
17
+
18
+ type SplashType = 'image' | 'video' | 'lottie-animation';
17
19
 
18
20
  type SplashScreenConfig = {
19
21
  source: string;
20
- type?: SplashSourceType;
22
+ type?: SplashType;
21
23
  width: number;
22
24
  height: number;
23
25
  isStatic?: boolean;
@@ -28,10 +30,11 @@ type SplashScreenConfig = {
28
30
  };
29
31
 
30
32
  type SplashScreenProps = {
33
+ logoUrl: string;
31
34
  splashScreenConfig: SplashScreenConfig;
32
35
  innerContainerStyle?: ViewStyle;
33
36
  onRedirect: () => void;
34
- theme?: AppTheme;
37
+ theme?: ThemeOverride;
35
38
  backgroundImage?: {
36
39
  source?: string | null;
37
40
  onImageError?: (error: Error) => void;
@@ -40,20 +43,11 @@ type SplashScreenProps = {
40
43
  };
41
44
  };
42
45
 
43
- const DEFAULT_IMAGE_TIMEOUT_SECONDS = 5;
46
+ const DEFAULT_IMAGE_TIMEOUT = 5;
47
+ const FALLBACK_TIMEOUT = 0.5;
44
48
 
45
49
  export const SplashScreen: React.FC<SplashScreenProps> = ({
46
- splashScreenConfig: {
47
- source: splashSource,
48
- type: splashType = 'image',
49
- width,
50
- height,
51
- isStatic = false,
52
- screenTime,
53
- fullscreen = false,
54
- resizeMode = 'contain',
55
- backgroundColor: splashBackgroundColor,
56
- },
50
+ splashScreenConfig,
57
51
  innerContainerStyle,
58
52
  backgroundImage = {
59
53
  gradientSplitBackground: 0.4,
@@ -62,32 +56,38 @@ export const SplashScreen: React.FC<SplashScreenProps> = ({
62
56
  onRedirect,
63
57
  theme: overrideTheme,
64
58
  }) => {
65
- const isRemoteSource = useMemo(
66
- () => splashSource.startsWith('http'),
67
- [splashSource]
68
- );
69
- const { theme: resolvedTheme } = useTheme(overrideTheme);
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
70
 
71
+ const isRemote = splashSource.startsWith('http');
71
72
  const isImageSplash = splashType === 'image';
72
- const backgroundImageUri =
73
+
74
+ const backgroundImageUrl =
73
75
  isImageSplash && backgroundImage.source?.startsWith('http')
74
76
  ? backgroundImage.source
75
77
  : undefined;
76
78
 
77
- const {
78
- data: { localPathLogo },
79
- } = useInitSplashCacheSync({
80
- logoUrl: isRemoteSource ? splashSource : undefined,
81
- backgroundUrl: backgroundImageUri,
79
+ const { data } = useSplashCache({
80
+ logoUrl: isRemote ? splashSource : undefined,
81
+ backgroundUrl: backgroundImageUrl,
82
82
  });
83
83
 
84
84
  const resolvedSplashUri =
85
- isRemoteSource && localPathLogo ? localPathLogo : splashSource;
86
- const effectiveTimeout = useMemo(() => {
87
- const timeout =
88
- screenTime ??
89
- (isImageSplash || isStatic ? DEFAULT_IMAGE_TIMEOUT_SECONDS : 0);
90
- return Number.isFinite(timeout) ? Number(timeout) : 0;
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
91
  }, [screenTime, isImageSplash, isStatic]);
92
92
 
93
93
  const handleRedirect = useCallback(() => {
@@ -99,17 +99,12 @@ export const SplashScreen: React.FC<SplashScreenProps> = ({
99
99
  }, [onRedirect]);
100
100
 
101
101
  useEffect(() => {
102
- const fallbackTimeout = 0.5; // fallback to 0.5s even if 0
103
- const timeout = effectiveTimeout > 0 ? effectiveTimeout : fallbackTimeout;
104
- const timer = setTimeout(() => {
105
- handleRedirect();
106
- }, timeout * 1000);
107
- return () => {
108
- clearTimeout(timer);
109
- };
110
- }, [effectiveTimeout, handleRedirect]);
111
-
112
- const splashComponentProps = useMemo(
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(
113
108
  () => ({
114
109
  source: resolvedSplashUri,
115
110
  width,
@@ -121,68 +116,69 @@ export const SplashScreen: React.FC<SplashScreenProps> = ({
121
116
  );
122
117
 
123
118
  const renderSplashContent = useCallback(() => {
119
+ const videoExtensions = ['.mp4', '.mov', '.mkv', '.webm', '.avi', '.3gp'];
120
+ const LOTTIE_EXTENSIONS = ['.json', '.lottie'];
124
121
  switch (splashType) {
125
122
  case 'video':
126
- return (
123
+ const isVideoFile = videoExtensions.some((ext) =>
124
+ resolvedSplashUri.toLowerCase().endsWith(ext)
125
+ );
126
+
127
+ return isVideoFile ? (
127
128
  <SplashVideo
128
- {...splashComponentProps}
129
- onEnd={effectiveTimeout ? undefined : handleRedirect}
129
+ {...splashProps}
130
+ onEnd={displayTimeout ? undefined : handleRedirect}
130
131
  />
132
+ ) : null;
133
+
134
+ case 'lottie-animation': {
135
+ const isLottieFile = LOTTIE_EXTENSIONS.some((ext) =>
136
+ resolvedSplashUri.toLowerCase().endsWith(ext)
131
137
  );
132
- case 'lottie-animation':
133
- return (
138
+
139
+ return isLottieFile ? (
134
140
  <SplashLottie
135
- {...splashComponentProps}
136
- onAnimationFinish={effectiveTimeout ? undefined : handleRedirect}
141
+ {...splashProps}
142
+ onAnimationFinish={displayTimeout ? undefined : handleRedirect}
137
143
  />
138
- );
144
+ ) : null;
145
+ }
146
+
139
147
  case 'image':
140
148
  default:
141
- return <SplashImage {...splashComponentProps} />;
142
- }
143
- }, [splashType, splashComponentProps, effectiveTimeout, handleRedirect]);
144
- const getSafeBackgroundColor = (
145
- inputColor: string | undefined,
146
- fallbackColor: string
147
- ): string => {
148
- try {
149
- if (!inputColor) return fallbackColor;
150
-
151
- const parsedColor = Color(inputColor);
152
- const alpha = parsedColor.alpha(); // 0 to 1
153
-
154
- if (alpha < 0.8) return fallbackColor; // ✅ your condition
155
-
156
- return parsedColor.hex(); // Always convert to solid hex
157
- } catch (e) {
158
- return fallbackColor;
149
+ return <SplashImage {...splashProps} />;
159
150
  }
160
- };
161
- const colorToUse = getSafeBackgroundColor(
162
- splashBackgroundColor,
163
- resolvedTheme.colors.background
164
- );
165
- const isDark = Color(colorToUse).isDark();
166
- const statusBarStyle: 'light-content' | 'dark-content' = isDark
167
- ? 'light-content'
168
- : 'dark-content';
151
+ }, [
152
+ splashType,
153
+ resolvedSplashUri,
154
+ splashProps,
155
+ displayTimeout,
156
+ handleRedirect,
157
+ ]);
169
158
 
170
159
  return (
171
160
  <BackgroundLayout
172
161
  backgroundImage={isImageSplash ? backgroundImage.source : undefined}
173
- backgroundColor={splashBackgroundColor}
162
+ backgroundColor={splashBgColor}
174
163
  resizeMode={backgroundImage.resizeMode ?? 'cover'}
175
164
  innerContainerStyle={innerContainerStyle}
176
165
  onImageError={backgroundImage.onImageError}
177
- theme={resolvedTheme}
166
+ theme={overrideTheme}
178
167
  gradientSplitBackground={backgroundImage.gradientSplitBackground ?? 0.4}
179
168
  >
180
- <StatusBar
181
- translucent
182
- backgroundColor="transparent"
183
- barStyle={statusBarStyle}
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
+ }}
184
181
  />
185
-
186
182
  {renderSplashContent()}
187
183
  </BackgroundLayout>
188
184
  );