@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
@@ -7,9 +7,9 @@ import React, { useState } from 'react';
7
7
  import { View, Pressable, Platform, StyleSheet } from 'react-native';
8
8
  import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
9
9
  import { scale } from 'react-native-size-matters';
10
- import { useTheme } from '../../theme/hook/useTheme';
10
+ import { useInternalTheme } from '../../theme/hook/useInternalTheme';
11
11
  import { Text } from '../Text';
12
- import type { AppTheme, ITheme } from '../../theme/themes';
12
+ import type { ITheme, ThemeOverride } from '../../theme/themes';
13
13
  import { RFValue } from 'react-native-responsive-fontsize';
14
14
 
15
15
  type ITab = {
@@ -26,7 +26,7 @@ type ITab = {
26
26
  export type TabBarOneProps = {
27
27
  tabs: ITab[];
28
28
  onTabPress?: (key: string) => void;
29
- theme?: AppTheme;
29
+ theme?: ThemeOverride;
30
30
  renderIcon?: ({
31
31
  icon,
32
32
  color,
@@ -44,6 +44,7 @@ type TabBarButtonProps = {
44
44
  tab: ITab;
45
45
  isActive: boolean;
46
46
  appliedTheme: ITheme;
47
+ isDarkMode: boolean;
47
48
  setActiveTab: (key: string) => void;
48
49
  onTabPress?: (key: string) => void;
49
50
  renderIcon?: ({
@@ -62,6 +63,7 @@ const TabBarButton: React.FC<TabBarButtonProps> = ({
62
63
  tab,
63
64
  isActive,
64
65
  appliedTheme,
66
+ isDarkMode,
65
67
  setActiveTab,
66
68
  onTabPress,
67
69
  renderIcon,
@@ -87,7 +89,7 @@ const TabBarButton: React.FC<TabBarButtonProps> = ({
87
89
  onTabPress?.(tab.key);
88
90
  }}
89
91
  android_ripple={{
90
- color: appliedTheme.dark
92
+ color: isDarkMode
91
93
  ? 'rgba(255, 255, 255, 0.12)'
92
94
  : 'rgba(0, 0, 0, 0.08)',
93
95
  borderless: true,
@@ -107,7 +109,7 @@ const TabBarButton: React.FC<TabBarButtonProps> = ({
107
109
  };
108
110
 
109
111
  const TabBarOne = ({ tabs, theme, onTabPress, renderIcon }: TabBarOneProps) => {
110
- const { theme: appliedTheme } = useTheme(theme);
112
+ const { theme: appliedTheme, isDarkMode } = useInternalTheme(theme);
111
113
  const [activeTab, setActiveTab] = useState(tabs[0]?.key);
112
114
 
113
115
  return (
@@ -128,7 +130,7 @@ const TabBarOne = ({ tabs, theme, onTabPress, renderIcon }: TabBarOneProps) => {
128
130
  position: 'absolute',
129
131
  bottom: 0,
130
132
  height: scale(80),
131
- backgroundColor: appliedTheme.colors.background + '80',
133
+ backgroundColor: appliedTheme.colors.background,
132
134
  borderTopColor: appliedTheme.colors.border,
133
135
  borderTopWidth: 0.5,
134
136
  paddingBottom: Platform.OS === 'ios' ? scale(28) : scale(18),
@@ -149,6 +151,7 @@ const TabBarOne = ({ tabs, theme, onTabPress, renderIcon }: TabBarOneProps) => {
149
151
  tab,
150
152
  isActive: tab.key === activeTab,
151
153
  appliedTheme: appliedTheme,
154
+ isDarkMode,
152
155
  setActiveTab: setActiveTab,
153
156
  onTabPress: onTabPress,
154
157
  renderIcon: renderIcon,
@@ -164,6 +167,7 @@ type TabBarButtonWrapperProps = {
164
167
  onPress?: (e: any) => void;
165
168
  tab: ITab;
166
169
  isActive: boolean;
170
+ isDarkMode: boolean;
167
171
  appliedTheme: ITheme;
168
172
  setActiveTab: (key: string) => void;
169
173
  onTabPress?: (key: string) => void;
@@ -11,8 +11,8 @@ import {
11
11
  } from '@react-navigation/bottom-tabs';
12
12
  import { scale } from 'react-native-size-matters';
13
13
 
14
- import type { AppTheme, ITheme } from '../../theme/themes';
15
- import { useTheme } from '../../theme/hook/useTheme';
14
+ import type { ITheme, ThemeOverride } from '../../theme/themes';
15
+ import { useInternalTheme } from '../../theme/hook/useInternalTheme';
16
16
 
17
17
  export interface ITab {
18
18
  key: string;
@@ -27,7 +27,7 @@ export interface ITab {
27
27
 
28
28
  export interface TabBarThreeProps {
29
29
  tabs: ITab[];
30
- theme?: AppTheme;
30
+ theme?: ThemeOverride;
31
31
  onTabPress?: (key: string) => void;
32
32
  }
33
33
 
@@ -122,7 +122,7 @@ const TabBarThree: React.FC<TabBarThreeProps> = ({
122
122
  theme,
123
123
  onTabPress,
124
124
  }) => {
125
- const { theme: appliedTheme } = useTheme(theme);
125
+ const { theme: appliedTheme } = useInternalTheme(theme);
126
126
 
127
127
  return (
128
128
  <Tab.Navigator
@@ -7,8 +7,8 @@ import { View, Pressable, StyleSheet, Platform } from 'react-native';
7
7
  import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
8
8
  import { scale } from 'react-native-size-matters';
9
9
  import { Text } from '../Text';
10
- import type { AppTheme, ITheme } from '../../theme/themes';
11
- import { useTheme } from '../../theme/hook/useTheme';
10
+ import type { ITheme, ThemeOverride } from '../../theme/themes';
11
+ import { useInternalTheme } from '../../theme/hook/useInternalTheme';
12
12
  import { RFValue } from 'react-native-responsive-fontsize';
13
13
 
14
14
  export type ITab = {
@@ -24,7 +24,7 @@ export type ITab = {
24
24
 
25
25
  export type TabBarTwoProps = {
26
26
  tabs: ITab[];
27
- theme?: AppTheme;
27
+ theme?: ThemeOverride;
28
28
  onTabPress?: (key: string) => void;
29
29
  };
30
30
 
@@ -35,12 +35,14 @@ const TabBarButton = ({
35
35
  tab,
36
36
  isActive,
37
37
  appliedTheme,
38
+ isDarkMode,
38
39
  onPress,
39
40
  onTabPress,
40
41
  setActiveTab,
41
42
  }: {
42
43
  tab: ITab;
43
44
  isActive: boolean;
45
+ isDarkMode: boolean;
44
46
  appliedTheme: ITheme;
45
47
  onPress?: (e: any) => void;
46
48
  onTabPress?: (key: string) => void;
@@ -60,7 +62,7 @@ const TabBarButton = ({
60
62
  onTabPress?.(tab.key);
61
63
  }}
62
64
  android_ripple={{
63
- color: appliedTheme.dark
65
+ color: isDarkMode
64
66
  ? 'rgba(255, 255, 255, 0.12)'
65
67
  : 'rgba(0, 0, 0, 0.08)',
66
68
  borderless: true,
@@ -80,7 +82,7 @@ const TabBarButton = ({
80
82
  };
81
83
 
82
84
  const TabBarTwo = ({ tabs, theme, onTabPress }: TabBarTwoProps) => {
83
- const { theme: appliedTheme } = useTheme(theme);
85
+ const { theme: appliedTheme, isDarkMode } = useInternalTheme(theme);
84
86
  const [activeTab, setActiveTab] = useState(tabs[0]?.key);
85
87
 
86
88
  return (
@@ -95,7 +97,7 @@ const TabBarTwo = ({ tabs, theme, onTabPress }: TabBarTwoProps) => {
95
97
  marginHorizontal: scale(16),
96
98
  height: scale(70),
97
99
  borderRadius: scale(40),
98
- backgroundColor: appliedTheme.colors.background + '80',
100
+ backgroundColor: appliedTheme.colors.background,
99
101
  borderWidth: 2,
100
102
  borderTopWidth: 2,
101
103
  borderTopColor: appliedTheme.colors.border,
@@ -122,6 +124,7 @@ const TabBarTwo = ({ tabs, theme, onTabPress }: TabBarTwoProps) => {
122
124
  tab={tab}
123
125
  isActive={tab.key === activeTab}
124
126
  appliedTheme={appliedTheme}
127
+ isDarkMode={isDarkMode}
125
128
  onPress={onPress}
126
129
  onTabPress={onTabPress}
127
130
  setActiveTab={setActiveTab}
@@ -9,8 +9,9 @@ import {
9
9
  type TextProps as RNTextProps,
10
10
  type TextStyle,
11
11
  } from 'react-native';
12
- import { useTheme } from '../../theme/hook/useTheme';
12
+ import { useInternalTheme } from '../../theme/hook/useInternalTheme';
13
13
  import { RFValue } from 'react-native-responsive-fontsize';
14
+ import type { ThemeOverride } from '../../theme/themes';
14
15
 
15
16
  export interface TextProps extends RNTextProps {
16
17
  children: React.ReactNode;
@@ -21,6 +22,7 @@ export interface TextProps extends RNTextProps {
21
22
  fontFamily?: string;
22
23
  numberOfLines?: number;
23
24
  allowFontScaling?: boolean;
25
+ theme?: ThemeOverride;
24
26
  }
25
27
 
26
28
  const Text: React.FC<TextProps> = ({
@@ -33,9 +35,10 @@ const Text: React.FC<TextProps> = ({
33
35
  numberOfLines,
34
36
  allowFontScaling = false,
35
37
  style,
38
+ theme: overrideTheme,
36
39
  ...rest
37
40
  }) => {
38
- const { theme } = useTheme();
41
+ const { theme } = useInternalTheme(overrideTheme);
39
42
 
40
43
  return (
41
44
  <RNText
@@ -15,10 +15,10 @@ import {
15
15
  } from 'react-native';
16
16
  import { scale, verticalScale } from 'react-native-size-matters';
17
17
  import { Text } from '../../Text';
18
- import { useTheme } from '../../../theme/hook/useTheme';
18
+ import { useInternalTheme } from '../../../theme/hook/useInternalTheme';
19
19
  import AppHeader from '../../Headers/AppHeader';
20
20
  import SkeletonPlaceholder from 'react-native-skeleton-placeholder';
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
  import { ScanLine } from 'lucide-react-native';
24
24
 
@@ -74,7 +74,7 @@ type IDeviceSessionsProps = {
74
74
  headerTitleAlign?: 'left' | 'center';
75
75
  headerTitleStyle?: StyleProp<any>;
76
76
  renderHeader?: () => React.ReactNode;
77
- theme?: AppTheme;
77
+ theme?: ThemeOverride;
78
78
  isLoading?: boolean;
79
79
  isLoadingLogout?: boolean;
80
80
  };
@@ -99,7 +99,7 @@ export const DeviceSessions: React.FC<IDeviceSessionsProps> = ({
99
99
  isLoading,
100
100
  isLoadingLogout,
101
101
  }) => {
102
- const { theme: appliedTheme } = useTheme(theme);
102
+ const { theme: appliedTheme } = useInternalTheme(theme);
103
103
  const colors = appliedTheme.colors;
104
104
 
105
105
  const [logoutSessionId, setLogoutSessionId] = React.useState<string | null>(
@@ -178,7 +178,7 @@ export const DeviceSessions: React.FC<IDeviceSessionsProps> = ({
178
178
  >
179
179
  <Text
180
180
  numberOfLines={1}
181
- style={[styles.badgeText, { color: colors.black }]}
181
+ style={[styles.badgeText, { color: colors.buttonText }]}
182
182
  >
183
183
  {thisDevice}
184
184
  </Text>
@@ -320,6 +320,7 @@ export const DeviceSessions: React.FC<IDeviceSessionsProps> = ({
320
320
  color={colors.onSurfaceVariant}
321
321
  />
322
322
  }
323
+ theme={theme}
323
324
  titleAlign={headerTitleAlign}
324
325
  style={headerStyle}
325
326
  titleStyle={headerTitleStyle}
@@ -18,8 +18,8 @@ import { Camera } from 'lucide-react-native';
18
18
  import { useForm, Controller } from 'react-hook-form';
19
19
  import { Text } from '../../Text';
20
20
  import AppHeader from '../../Headers/AppHeader';
21
- import { useTheme } from '../../../theme/hook/useTheme';
22
- import type { AppTheme } from '../../../theme/themes';
21
+ import { useInternalTheme } from '../../../theme/hook/useInternalTheme';
22
+ import type { ThemeOverride } from '../../../theme/themes';
23
23
  import UserAvatar from '../components/UserAvatar';
24
24
  import { Input } from '../../Input/Input';
25
25
  import { Button } from '../../Button';
@@ -27,7 +27,7 @@ import ImageCropPicker, { type Image } from 'react-native-image-crop-picker';
27
27
 
28
28
  export type ProfileUpdateFormValues = {
29
29
  fullName: string;
30
- avatarFile: Image; // new field to store actual file
30
+ avatarFile?: Image;
31
31
  };
32
32
 
33
33
  export type ProfileUpdateProps = {
@@ -35,8 +35,8 @@ export type ProfileUpdateProps = {
35
35
  name?: string;
36
36
  avatarUri?: string;
37
37
  onBackPress?: () => void;
38
- onSubmit?: (val: { fullName: string; avatarFile: Image }) => void;
39
- theme?: AppTheme;
38
+ onSubmit?: (val: { fullName: string; avatarFile?: Image }) => void;
39
+ theme?: ThemeOverride;
40
40
  loading?: boolean;
41
41
  onError?: (error: { message: string }) => void;
42
42
  };
@@ -51,7 +51,7 @@ export const ProfileUpdate = ({
51
51
  loading = false,
52
52
  onError,
53
53
  }: ProfileUpdateProps) => {
54
- const { theme: appliedTheme } = useTheme(theme);
54
+ const { theme: appliedTheme } = useInternalTheme(theme);
55
55
  const { colors } = appliedTheme;
56
56
 
57
57
  const {
@@ -64,9 +64,7 @@ export const ProfileUpdate = ({
64
64
  } = useForm<ProfileUpdateFormValues>({
65
65
  defaultValues: {
66
66
  fullName: name,
67
- avatarFile: {
68
- path: avatarUri,
69
- },
67
+ avatarFile: avatarUri ? ({ path: avatarUri } as Image) : undefined,
70
68
  },
71
69
  mode: 'onChange',
72
70
  reValidateMode: 'onBlur',
@@ -104,16 +102,16 @@ export const ProfileUpdate = ({
104
102
  const handleFormSubmit = useCallback(
105
103
  (data: ProfileUpdateFormValues) => {
106
104
  Keyboard.dismiss();
107
- if (data.avatarFile.path !== avatarUri) {
108
- onSubmit?.({
109
- avatarFile: data.avatarFile,
110
- fullName: data.fullName,
111
- });
112
- } else {
113
- onError?.({ message: 'No image selected' });
114
- }
105
+
106
+ const hasNewAvatar =
107
+ data.avatarFile?.path && data.avatarFile.path !== avatarUri;
108
+
109
+ onSubmit?.({
110
+ fullName: data.fullName,
111
+ ...(hasNewAvatar ? { avatarFile: data.avatarFile } : {}),
112
+ });
115
113
  },
116
- [avatarUri, onError, onSubmit]
114
+ [avatarUri, onSubmit]
117
115
  );
118
116
 
119
117
  return (
@@ -126,17 +124,13 @@ export const ProfileUpdate = ({
126
124
  <AppHeader
127
125
  title={title}
128
126
  onBackPress={onBackPress}
129
- theme={appliedTheme}
127
+ theme={theme}
130
128
  titleAlign="left"
131
129
  />
132
130
 
133
131
  <View style={styles.content}>
134
132
  <View style={styles.avatarBox}>
135
- <UserAvatar
136
- avatarUri={avatar.path}
137
- theme={appliedTheme}
138
- size={100}
139
- />
133
+ <UserAvatar avatarUri={avatar?.path} theme={theme} size={100} />
140
134
  <TouchableOpacity
141
135
  style={[
142
136
  styles.cameraBtn,
@@ -182,7 +176,7 @@ export const ProfileUpdate = ({
182
176
  placeholder={'Enter your full name'}
183
177
  placeholderTextColor={colors.textDisabled}
184
178
  containerStyle={{ marginTop: verticalScale(20) }}
185
- theme={appliedTheme}
179
+ theme={theme}
186
180
  returnKeyType="done"
187
181
  onSubmitEditing={handleSubmit(handleFormSubmit)}
188
182
  />
@@ -198,7 +192,7 @@ export const ProfileUpdate = ({
198
192
  <Button.Primary
199
193
  title={'Update Profile'}
200
194
  onPress={handleSubmit(handleFormSubmit)}
201
- theme={appliedTheme}
195
+ theme={theme}
202
196
  titleStyle={{ fontSize: RFValue(14) }}
203
197
  loading={loading}
204
198
  containerStyle={{ marginTop: verticalScale(5) }}
@@ -16,13 +16,13 @@ import { FlatGrid } from 'react-native-super-grid';
16
16
  import { scale } from 'react-native-size-matters';
17
17
  import { Search } from 'lucide-react-native';
18
18
 
19
- import { useTheme } from '../../../theme/hook/useTheme';
19
+ import { useInternalTheme } from '../../../theme/hook/useInternalTheme';
20
20
 
21
21
  import AppHeader from '../../Headers/AppHeader';
22
22
  import { Text } from '../../Text';
23
23
  import CardPoster from '../../Content/Card/components/CardPoster';
24
24
  import type { IContentData } from '../../../types';
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
  export interface IHistoryItem {
@@ -56,7 +56,7 @@ export interface WatchHistoryProps {
56
56
  contentContainerStyle?: StyleProp<ViewStyle>;
57
57
 
58
58
  // Theme
59
- theme?: AppTheme;
59
+ theme?: ThemeOverride;
60
60
 
61
61
  // Rendering Overrides
62
62
  renderItem?: (item: IHistoryItem, index: number) => React.ReactElement | null;
@@ -97,7 +97,7 @@ export const WatchHistory: React.FC<WatchHistoryProps> = ({
97
97
  onEndReached,
98
98
  onEndReachedThreshold,
99
99
  }) => {
100
- const { theme: appliedTheme } = useTheme(theme);
100
+ const { theme: appliedTheme } = useInternalTheme(theme);
101
101
 
102
102
  const listData = isLoading
103
103
  ? Array.from({ length: skeletonCount }, (_, i) => ({
@@ -116,6 +116,7 @@ export const WatchHistory: React.FC<WatchHistoryProps> = ({
116
116
  activeOpacity={0.8}
117
117
  >
118
118
  <CardPoster
119
+ content_offering_type={item?.content?.content_offering_type}
119
120
  theme={appliedTheme}
120
121
  isLoading={isLoading}
121
122
  posterUri={item?.content?.poster}
@@ -133,7 +134,7 @@ export const WatchHistory: React.FC<WatchHistoryProps> = ({
133
134
  onBackPress={onBackPress}
134
135
  title={title}
135
136
  titleAlign="left"
136
- theme={appliedTheme}
137
+ theme={theme}
137
138
  titleStyle={{
138
139
  color: appliedTheme.colors.onBackground,
139
140
  }}
@@ -19,14 +19,14 @@ import { scale } from 'react-native-size-matters';
19
19
  import { Search } from 'lucide-react-native';
20
20
  import SkeletonPlaceholder from 'react-native-skeleton-placeholder';
21
21
 
22
- import { useTheme } from '../../../theme/hook/useTheme';
22
+ import { useInternalTheme } from '../../../theme/hook/useInternalTheme';
23
23
 
24
24
  import AppHeader from '../../Headers/AppHeader';
25
25
  import { Text } from '../../Text';
26
26
  import { ThumbnailCard } from '../../Content/Card/components/ThumbnailCard';
27
27
  import CardPoster from '../../Content/Card/components/CardPoster';
28
28
  import type { IContentData } from '../../../types';
29
- import type { AppTheme, ITheme } from '../../../theme/themes';
29
+ import type { ITheme, ThemeOverride } from '../../../theme/themes';
30
30
  import { RFValue } from 'react-native-responsive-fontsize';
31
31
 
32
32
  type IWatchLaterItem = {
@@ -49,7 +49,7 @@ export type WatchLaterProps = {
49
49
  titleStyle?: StyleProp<TextStyle>;
50
50
  listStyle?: StyleProp<ViewStyle>;
51
51
  contentContainerStyle?: StyleProp<ViewStyle>;
52
- theme?: AppTheme;
52
+ theme?: ThemeOverride;
53
53
  viewMode?: 'poster' | 'detailed';
54
54
  renderItem?: (
55
55
  item: IWatchLaterItem,
@@ -150,7 +150,7 @@ export const WatchLater: React.FC<WatchLaterProps> = ({
150
150
  onEndReachedThreshold,
151
151
  viewMode = 'poster',
152
152
  }) => {
153
- const { theme: appliedTheme } = useTheme(theme);
153
+ const { theme: appliedTheme } = useInternalTheme(theme);
154
154
 
155
155
  const listData = isLoading
156
156
  ? (Array.from({ length: skeletonCount }, (_, i) => ({
@@ -192,10 +192,11 @@ export const WatchLater: React.FC<WatchLaterProps> = ({
192
192
  />
193
193
  </View>
194
194
  <View style={styles.detailedInfo}>
195
- <Text numberOfLines={1} style={styles.detailedTitle}>
195
+ <Text theme={theme} numberOfLines={1} style={styles.detailedTitle}>
196
196
  {item?.content?.name}
197
197
  </Text>
198
198
  <Text
199
+ theme={theme}
199
200
  numberOfLines={5}
200
201
  style={[
201
202
  styles.detailedDesc,
@@ -216,6 +217,7 @@ export const WatchLater: React.FC<WatchLaterProps> = ({
216
217
  activeOpacity={0.8}
217
218
  >
218
219
  <CardPoster
220
+ content_offering_type={item?.content?.content_offering_type}
219
221
  theme={appliedTheme}
220
222
  isLoading={isLoading}
221
223
  posterUri={item?.content?.poster}
@@ -233,7 +235,7 @@ export const WatchLater: React.FC<WatchLaterProps> = ({
233
235
  onBackPress={onBackPress}
234
236
  title={title}
235
237
  titleAlign="left"
236
- theme={appliedTheme}
238
+ theme={theme}
237
239
  titleStyle={{
238
240
  ...(titleStyle ? StyleSheet.flatten(titleStyle) : {}),
239
241
  color: appliedTheme.colors.onBackground,
@@ -1,15 +1,20 @@
1
+ /**
2
+ * @author Naresh Dhamu
3
+ * @lastModified Fri 17 Oct 2025 at 10:16 PM
4
+ */
1
5
  import React, { useState } from 'react';
2
6
  import { Image, StyleSheet, View } from 'react-native';
7
+ import SkeletonPlaceholder from 'react-native-skeleton-placeholder';
3
8
  import { scale } from 'react-native-size-matters';
4
- import { useTheme } from '../../../theme/hook/useTheme';
5
- import type { AppTheme } from '../../../theme/themes';
9
+ import { useInternalTheme } from '../../../theme/hook/useInternalTheme';
10
+ import type { ThemeOverride } from '../../../theme/themes';
6
11
 
7
12
  const fallbackAvatar = require('../../../assets/img/profile.jpg');
8
13
 
9
14
  type UserAvatarProps = {
10
15
  avatarUri?: string;
11
16
  size?: number;
12
- theme?: AppTheme;
17
+ theme?: ThemeOverride;
13
18
  };
14
19
 
15
20
  const UserAvatar: React.FC<UserAvatarProps> = ({
@@ -17,26 +22,60 @@ const UserAvatar: React.FC<UserAvatarProps> = ({
17
22
  size = scale(80),
18
23
  theme,
19
24
  }) => {
25
+ const { theme: appliedTheme } = useInternalTheme(theme);
20
26
  const [imageError, setImageError] = useState(false);
21
- const { theme: appliedTheme } = useTheme(theme);
22
- const borderColor = appliedTheme.colors.primary;
27
+ const [loading, setLoading] = useState(!!avatarUri);
28
+
29
+ const borderColor = appliedTheme.colors.primary || '#ccc';
30
+ const skeletonBaseColor = appliedTheme.colors.skeletonBaseColor || '#E0E0E0';
31
+ const skeletonHighlightColor =
32
+ appliedTheme.colors.skeletonHighlightColor || '#F5F5F5';
33
+
34
+ const handleError = () => {
35
+ setImageError(true);
36
+ setLoading(false);
37
+ };
38
+
39
+ const handleLoadStart = () => setLoading(true);
40
+ const handleLoadEnd = () => setLoading(false);
23
41
 
24
42
  return (
25
43
  <View style={styles(size).wrapper}>
44
+ {loading && (
45
+ <SkeletonPlaceholder
46
+ backgroundColor={skeletonBaseColor}
47
+ highlightColor={skeletonHighlightColor}
48
+ borderRadius={size / 2}
49
+ >
50
+ <SkeletonPlaceholder.Item
51
+ width={size}
52
+ height={size}
53
+ borderRadius={size / 2}
54
+ />
55
+ </SkeletonPlaceholder>
56
+ )}
57
+
26
58
  <Image
27
59
  source={imageError || !avatarUri ? fallbackAvatar : { uri: avatarUri }}
28
- style={[styles(size).avatar, { borderColor }]}
29
- onError={() => setImageError(true)}
60
+ style={[styles(size).avatar, { borderColor, position: 'absolute' }]}
61
+ onError={handleError}
62
+ onLoadStart={handleLoadStart}
63
+ onLoadEnd={handleLoadEnd}
30
64
  />
31
65
  </View>
32
66
  );
33
67
  };
34
68
 
35
69
  export default UserAvatar;
70
+
36
71
  const styles = (size: number) =>
37
72
  StyleSheet.create({
38
73
  wrapper: {
74
+ width: size,
75
+ height: size,
39
76
  position: 'relative',
77
+ justifyContent: 'center',
78
+ alignItems: 'center',
40
79
  },
41
80
  avatar: {
42
81
  width: size,
@@ -9,8 +9,8 @@ import SkeletonPlaceholder from 'react-native-skeleton-placeholder';
9
9
  import { moderateScale, scale, verticalScale } from 'react-native-size-matters';
10
10
  import UserAvatar from './UserAvatar';
11
11
  import { Text } from '../../Text';
12
- import { useTheme } from '../../../theme/hook/useTheme';
13
- import type { AppTheme } from '../../../theme/themes';
12
+ import { useInternalTheme } from '../../../theme/hook/useInternalTheme';
13
+ import type { ThemeOverride } from '../../../theme/themes';
14
14
  import { RFValue } from 'react-native-responsive-fontsize';
15
15
 
16
16
  export interface UserInfo {
@@ -29,7 +29,7 @@ interface UserSectionProps {
29
29
  userInfo: UserInfo;
30
30
  isLoading?: boolean;
31
31
  renderUserInfo?: (userInfo: UserInfo) => React.ReactNode;
32
- theme?: AppTheme;
32
+ theme?: ThemeOverride;
33
33
  avatarComponent?: React.ReactNode;
34
34
  skeletonProps?: Partial<React.ComponentProps<typeof SkeletonPlaceholder>>;
35
35
  userInfoTextStyle?: UserInfoTextStyle;
@@ -44,7 +44,7 @@ const UserSection: React.FC<UserSectionProps> = ({
44
44
  skeletonProps = {},
45
45
  userInfoTextStyle = {},
46
46
  }) => {
47
- const { theme: appliedTheme } = useTheme(theme);
47
+ const { theme: appliedTheme } = useInternalTheme(theme);
48
48
  if (!userInfo) return null;
49
49
  if (renderUserInfo) return renderUserInfo(userInfo);
50
50
 
@@ -72,7 +72,7 @@ const UserSection: React.FC<UserSectionProps> = ({
72
72
  <View style={styles.avatarWrapper}>
73
73
  {avatarComponent ?? (
74
74
  <>
75
- <UserAvatar avatarUri={userInfo.avatarUri} theme={appliedTheme} />
75
+ <UserAvatar avatarUri={userInfo.avatarUri} theme={theme} />
76
76
  {userInfo.onEditPress && (
77
77
  <Pressable
78
78
  onPress={userInfo.onEditPress}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * @author Naresh Dhamu
3
+ * @lastModified Wed 22 Oct 2025 at 11:22 AM
4
+ */
5
+
6
+ import React, { useMemo } from 'react';
7
+ import { StatusBar, Platform, type StatusBarStyle } from 'react-native';
8
+ import Color from 'color';
9
+ import type { ThemeOverride } from '../../theme/themes';
10
+ import { useInternalTheme } from '../../theme/hook';
11
+
12
+ type AppStatusBarProps = {
13
+ backgroundColor?: string;
14
+ barStyle?: StatusBarStyle;
15
+ translucent?: boolean;
16
+ hidden?: boolean;
17
+ theme?: ThemeOverride;
18
+ };
19
+
20
+ export const AppStatusBar: React.FC<AppStatusBarProps> = ({
21
+ backgroundColor,
22
+ barStyle,
23
+ translucent = true,
24
+ hidden = false,
25
+ theme: overrideTheme,
26
+ }) => {
27
+ const { theme } = useInternalTheme(overrideTheme);
28
+
29
+ const resolvedBackground = useMemo(() => {
30
+ if (backgroundColor) return backgroundColor;
31
+ return theme.colors.background;
32
+ }, [backgroundColor, theme]);
33
+
34
+ // 🌗 Auto bar style
35
+ const resolvedBarStyle: StatusBarStyle = useMemo(() => {
36
+ if (barStyle) return barStyle;
37
+ const isDarkBg = Color(resolvedBackground).isDark();
38
+ return isDarkBg ? 'light-content' : 'dark-content';
39
+ }, [barStyle, resolvedBackground]);
40
+
41
+ return (
42
+ <StatusBar
43
+ translucent={translucent}
44
+ hidden={hidden}
45
+ barStyle={resolvedBarStyle}
46
+ backgroundColor={
47
+ Platform.OS === 'android' ? resolvedBackground : 'transparent'
48
+ }
49
+ />
50
+ );
51
+ };