@zezosoft/zezo-ott-react-native-ui-kit 1.0.5 → 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 (376) hide show
  1. package/lib/module/components/Account/Account.js +4 -4
  2. package/lib/module/components/Account/Account.js.map +1 -1
  3. package/lib/module/components/Alert/AlertDialog.js +2 -2
  4. package/lib/module/components/Alert/AlertDialog.js.map +1 -1
  5. package/lib/module/components/Alert/UAAlert.js +5 -1
  6. package/lib/module/components/Alert/UAAlert.js.map +1 -1
  7. package/lib/module/components/Auth/AuthProvider/AuthProvider.js +74 -104
  8. package/lib/module/components/Auth/AuthProvider/AuthProvider.js.map +1 -1
  9. package/lib/module/components/Auth/ForgotPassword/ForgotPassword.js +4 -8
  10. package/lib/module/components/Auth/ForgotPassword/ForgotPassword.js.map +1 -1
  11. package/lib/module/components/Auth/Login/LoginWithEmail.js +7 -7
  12. package/lib/module/components/Auth/Login/LoginWithEmail.js.map +1 -1
  13. package/lib/module/components/Auth/Login/LoginWithPhone.js +6 -6
  14. package/lib/module/components/Auth/Login/LoginWithPhone.js.map +1 -1
  15. package/lib/module/components/Auth/OTP/OTP.js +5 -5
  16. package/lib/module/components/Auth/OTP/OTP.js.map +1 -1
  17. package/lib/module/components/Auth/QrLogin/QrLogin.js +8 -9
  18. package/lib/module/components/Auth/QrLogin/QrLogin.js.map +1 -1
  19. package/lib/module/components/Auth/QrLogin/components/QrViewArea.js +2 -2
  20. package/lib/module/components/Auth/QrLogin/components/QrViewArea.js.map +1 -1
  21. package/lib/module/components/Auth/SignUp/SignUp.js +9 -9
  22. package/lib/module/components/Auth/SignUp/SignUp.js.map +1 -1
  23. package/lib/module/components/Auth/SplashScreen/SplashScreen.js +14 -23
  24. package/lib/module/components/Auth/SplashScreen/SplashScreen.js.map +1 -1
  25. package/lib/module/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.js +2 -2
  26. package/lib/module/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.js.map +1 -1
  27. package/lib/module/components/BackgroundLayout/BackgroundLayout.js +5 -1
  28. package/lib/module/components/BackgroundLayout/BackgroundLayout.js.map +1 -1
  29. package/lib/module/components/BlogView/BlogView.js +8 -7
  30. package/lib/module/components/BlogView/BlogView.js.map +1 -1
  31. package/lib/module/components/Button/BackBtn.js +2 -2
  32. package/lib/module/components/Button/BackBtn.js.map +1 -1
  33. package/lib/module/components/Button/MenuBtn.js +2 -2
  34. package/lib/module/components/Button/MenuBtn.js.map +1 -1
  35. package/lib/module/components/Button/PrimaryBtn.js +2 -2
  36. package/lib/module/components/Button/PrimaryBtn.js.map +1 -1
  37. package/lib/module/components/Button/SecondaryBtn.js +2 -2
  38. package/lib/module/components/Button/SecondaryBtn.js.map +1 -1
  39. package/lib/module/components/Button/TextButton.js +2 -2
  40. package/lib/module/components/Button/TextButton.js.map +1 -1
  41. package/lib/module/components/Content/Card/Category/Category.js +3 -3
  42. package/lib/module/components/Content/Card/Category/Category.js.map +1 -1
  43. package/lib/module/components/Content/Card/NowWatching/NowWatching.js +5 -3
  44. package/lib/module/components/Content/Card/NowWatching/NowWatching.js.map +1 -1
  45. package/lib/module/components/Content/Card/Sliders/Styles/One.js +5 -5
  46. package/lib/module/components/Content/Card/Sliders/Styles/One.js.map +1 -1
  47. package/lib/module/components/Content/Card/Sliders/Styles/Two.js +3 -2
  48. package/lib/module/components/Content/Card/Sliders/Styles/Two.js.map +1 -1
  49. package/lib/module/components/Content/Card/Styles/Five.js +4 -3
  50. package/lib/module/components/Content/Card/Styles/Five.js.map +1 -1
  51. package/lib/module/components/Content/Card/Styles/Four.js +4 -3
  52. package/lib/module/components/Content/Card/Styles/Four.js.map +1 -1
  53. package/lib/module/components/Content/Card/Styles/One.js +4 -3
  54. package/lib/module/components/Content/Card/Styles/One.js.map +1 -1
  55. package/lib/module/components/Content/Card/Styles/RotateInOut.js +4 -3
  56. package/lib/module/components/Content/Card/Styles/RotateInOut.js.map +1 -1
  57. package/lib/module/components/Content/Card/Styles/Six.js +5 -3
  58. package/lib/module/components/Content/Card/Styles/Six.js.map +1 -1
  59. package/lib/module/components/Content/Card/Styles/Three.js +4 -3
  60. package/lib/module/components/Content/Card/Styles/Three.js.map +1 -1
  61. package/lib/module/components/Content/Card/Styles/TopTen.js +4 -3
  62. package/lib/module/components/Content/Card/Styles/TopTen.js.map +1 -1
  63. package/lib/module/components/Content/Card/Styles/Two.js +4 -3
  64. package/lib/module/components/Content/Card/Styles/Two.js.map +1 -1
  65. package/lib/module/components/Content/Card/components/CardPoster.js +1 -0
  66. package/lib/module/components/Content/Card/components/CardPoster.js.map +1 -1
  67. package/lib/module/components/Content/Card/components/NoContentFallback.js +2 -2
  68. package/lib/module/components/Content/Card/components/NoContentFallback.js.map +1 -1
  69. package/lib/module/components/Content/Card/components/RentOrBuyIcon.js +1 -1
  70. package/lib/module/components/Content/Card/components/RentOrBuyIcon.js.map +1 -1
  71. package/lib/module/components/Content/Card/components/ShowAllButton.js +3 -1
  72. package/lib/module/components/Content/Card/components/ShowAllButton.js.map +1 -1
  73. package/lib/module/components/ContentView/ContentView.js +5 -5
  74. package/lib/module/components/ContentView/ContentView.js.map +1 -1
  75. package/lib/module/components/ContentView/MoreContentList.js +3 -2
  76. package/lib/module/components/ContentView/MoreContentList.js.map +1 -1
  77. package/lib/module/components/ContentView/components/EpisodeCard.js +15 -6
  78. package/lib/module/components/ContentView/components/EpisodeCard.js.map +1 -1
  79. package/lib/module/components/ContentView/components/HeroBanner.js +12 -3
  80. package/lib/module/components/ContentView/components/HeroBanner.js.map +1 -1
  81. package/lib/module/components/ContentView/components/TrailerButton.js +5 -5
  82. package/lib/module/components/ContentView/components/TrailerButton.js.map +1 -1
  83. package/lib/module/components/Headers/AppHeader.js +2 -2
  84. package/lib/module/components/Headers/AppHeader.js.map +1 -1
  85. package/lib/module/components/Headers/One.js +2 -2
  86. package/lib/module/components/Headers/One.js.map +1 -1
  87. package/lib/module/components/Headers/Three.js +2 -2
  88. package/lib/module/components/Headers/Three.js.map +1 -1
  89. package/lib/module/components/Headers/Two.js +2 -2
  90. package/lib/module/components/Headers/Two.js.map +1 -1
  91. package/lib/module/components/Input/InputOne.js +2 -2
  92. package/lib/module/components/Input/InputOne.js.map +1 -1
  93. package/lib/module/components/Input/InputTwo.js +2 -2
  94. package/lib/module/components/Input/InputTwo.js.map +1 -1
  95. package/lib/module/components/Input/PhoneNumberInput.js +5 -4
  96. package/lib/module/components/Input/PhoneNumberInput.js.map +1 -1
  97. package/lib/module/components/Logo/Logo.js +2 -2
  98. package/lib/module/components/Logo/Logo.js.map +1 -1
  99. package/lib/module/components/Search/One.js +4 -4
  100. package/lib/module/components/Search/One.js.map +1 -1
  101. package/lib/module/components/Search/components/SearchCard.js +2 -2
  102. package/lib/module/components/Search/components/SearchCard.js.map +1 -1
  103. package/lib/module/components/Settings/AppSettings.js +4 -4
  104. package/lib/module/components/Settings/AppSettings.js.map +1 -1
  105. package/lib/module/components/Subscription/SubOne.js +9 -8
  106. package/lib/module/components/Subscription/SubOne.js.map +1 -1
  107. package/lib/module/components/TabBar/One.js +8 -5
  108. package/lib/module/components/TabBar/One.js.map +1 -1
  109. package/lib/module/components/TabBar/Three.js +2 -2
  110. package/lib/module/components/TabBar/Three.js.map +1 -1
  111. package/lib/module/components/TabBar/Two.js +8 -5
  112. package/lib/module/components/TabBar/Two.js.map +1 -1
  113. package/lib/module/components/Text/Text.js +3 -2
  114. package/lib/module/components/Text/Text.js.map +1 -1
  115. package/lib/module/components/User/DeviceSessions/DeviceSessions.js +4 -3
  116. package/lib/module/components/User/DeviceSessions/DeviceSessions.js.map +1 -1
  117. package/lib/module/components/User/ProfileUpdate/ProfileUpdate.js +6 -6
  118. package/lib/module/components/User/ProfileUpdate/ProfileUpdate.js.map +1 -1
  119. package/lib/module/components/User/WatchHistory/WatchHistory.js +3 -3
  120. package/lib/module/components/User/WatchHistory/WatchHistory.js.map +1 -1
  121. package/lib/module/components/User/WatchLater/WatchLater.js +5 -3
  122. package/lib/module/components/User/WatchLater/WatchLater.js.map +1 -1
  123. package/lib/module/components/User/components/UserAvatar.js +13 -10
  124. package/lib/module/components/User/components/UserAvatar.js.map +1 -1
  125. package/lib/module/components/User/components/UserSection.js +3 -3
  126. package/lib/module/components/User/components/UserSection.js.map +1 -1
  127. package/lib/module/components/common/AppStatusBar.js +41 -0
  128. package/lib/module/components/common/AppStatusBar.js.map +1 -0
  129. package/lib/module/components/layout/SafeAreaWrapper.js +2 -2
  130. package/lib/module/components/layout/SafeAreaWrapper.js.map +1 -1
  131. package/lib/module/store/splashStore.js +3 -7
  132. package/lib/module/store/splashStore.js.map +1 -1
  133. package/lib/module/store/themeStore.js +39 -0
  134. package/lib/module/store/themeStore.js.map +1 -0
  135. package/lib/module/theme/ThemeProvider.js +40 -69
  136. package/lib/module/theme/ThemeProvider.js.map +1 -1
  137. package/lib/module/theme/hook/index.js +5 -0
  138. package/lib/module/theme/hook/index.js.map +1 -0
  139. package/lib/module/theme/hook/useInternalTheme.js +46 -0
  140. package/lib/module/theme/hook/useInternalTheme.js.map +1 -0
  141. package/lib/module/theme/hook/useThemeStatusBar.js +27 -0
  142. package/lib/module/theme/hook/useThemeStatusBar.js.map +1 -0
  143. package/lib/module/theme/index.js +1 -2
  144. package/lib/module/theme/index.js.map +1 -1
  145. package/lib/module/theme/themes.js +6 -4
  146. package/lib/module/theme/themes.js.map +1 -1
  147. package/lib/typescript/src/components/Account/Account.d.ts +2 -2
  148. package/lib/typescript/src/components/Account/Account.d.ts.map +1 -1
  149. package/lib/typescript/src/components/Alert/AlertDialog.d.ts +2 -2
  150. package/lib/typescript/src/components/Alert/AlertDialog.d.ts.map +1 -1
  151. package/lib/typescript/src/components/Alert/UAAlert.d.ts +2 -2
  152. package/lib/typescript/src/components/Alert/UAAlert.d.ts.map +1 -1
  153. package/lib/typescript/src/components/Auth/AuthProvider/AuthProvider.d.ts +6 -6
  154. package/lib/typescript/src/components/Auth/AuthProvider/AuthProvider.d.ts.map +1 -1
  155. package/lib/typescript/src/components/Auth/ForgotPassword/ForgotPassword.d.ts +2 -2
  156. package/lib/typescript/src/components/Auth/ForgotPassword/ForgotPassword.d.ts.map +1 -1
  157. package/lib/typescript/src/components/Auth/Login/LoginWithEmail.d.ts +2 -2
  158. package/lib/typescript/src/components/Auth/Login/LoginWithEmail.d.ts.map +1 -1
  159. package/lib/typescript/src/components/Auth/Login/LoginWithPhone.d.ts +2 -2
  160. package/lib/typescript/src/components/Auth/Login/LoginWithPhone.d.ts.map +1 -1
  161. package/lib/typescript/src/components/Auth/OTP/OTP.d.ts +2 -2
  162. package/lib/typescript/src/components/Auth/OTP/OTP.d.ts.map +1 -1
  163. package/lib/typescript/src/components/Auth/QrLogin/QrLogin.d.ts +2 -2
  164. package/lib/typescript/src/components/Auth/QrLogin/QrLogin.d.ts.map +1 -1
  165. package/lib/typescript/src/components/Auth/QrLogin/components/QrViewArea.d.ts +2 -2
  166. package/lib/typescript/src/components/Auth/QrLogin/components/QrViewArea.d.ts.map +1 -1
  167. package/lib/typescript/src/components/Auth/SignUp/SignUp.d.ts +2 -2
  168. package/lib/typescript/src/components/Auth/SignUp/SignUp.d.ts.map +1 -1
  169. package/lib/typescript/src/components/Auth/SplashScreen/SplashScreen.d.ts +2 -2
  170. package/lib/typescript/src/components/Auth/SplashScreen/SplashScreen.d.ts.map +1 -1
  171. package/lib/typescript/src/components/Auth/index.d.ts +5 -5
  172. package/lib/typescript/src/components/Auth/index.d.ts.map +1 -1
  173. package/lib/typescript/src/components/BackgroundLayout/BackgroundLayout.d.ts +2 -2
  174. package/lib/typescript/src/components/BackgroundLayout/BackgroundLayout.d.ts.map +1 -1
  175. package/lib/typescript/src/components/BlogView/BlogView.d.ts +2 -2
  176. package/lib/typescript/src/components/BlogView/BlogView.d.ts.map +1 -1
  177. package/lib/typescript/src/components/Button/BackBtn.d.ts +2 -2
  178. package/lib/typescript/src/components/Button/BackBtn.d.ts.map +1 -1
  179. package/lib/typescript/src/components/Button/MenuBtn.d.ts +2 -2
  180. package/lib/typescript/src/components/Button/MenuBtn.d.ts.map +1 -1
  181. package/lib/typescript/src/components/Button/PrimaryBtn.d.ts +2 -2
  182. package/lib/typescript/src/components/Button/PrimaryBtn.d.ts.map +1 -1
  183. package/lib/typescript/src/components/Button/SecondaryBtn.d.ts +2 -2
  184. package/lib/typescript/src/components/Button/SecondaryBtn.d.ts.map +1 -1
  185. package/lib/typescript/src/components/Button/index.d.ts +3 -3
  186. package/lib/typescript/src/components/Content/Card/Category/Category.d.ts +2 -2
  187. package/lib/typescript/src/components/Content/Card/Category/Category.d.ts.map +1 -1
  188. package/lib/typescript/src/components/Content/Card/NowWatching/NowWatching.d.ts +2 -2
  189. package/lib/typescript/src/components/Content/Card/NowWatching/NowWatching.d.ts.map +1 -1
  190. package/lib/typescript/src/components/Content/Card/Sliders/Styles/One.d.ts +2 -2
  191. package/lib/typescript/src/components/Content/Card/Sliders/Styles/One.d.ts.map +1 -1
  192. package/lib/typescript/src/components/Content/Card/Sliders/Styles/Two.d.ts +2 -2
  193. package/lib/typescript/src/components/Content/Card/Sliders/Styles/Two.d.ts.map +1 -1
  194. package/lib/typescript/src/components/Content/Card/Sliders/index.d.ts +2 -2
  195. package/lib/typescript/src/components/Content/Card/Styles/Five.d.ts +2 -2
  196. package/lib/typescript/src/components/Content/Card/Styles/Five.d.ts.map +1 -1
  197. package/lib/typescript/src/components/Content/Card/Styles/Four.d.ts +2 -2
  198. package/lib/typescript/src/components/Content/Card/Styles/Four.d.ts.map +1 -1
  199. package/lib/typescript/src/components/Content/Card/Styles/One.d.ts +2 -2
  200. package/lib/typescript/src/components/Content/Card/Styles/One.d.ts.map +1 -1
  201. package/lib/typescript/src/components/Content/Card/Styles/RotateInOut.d.ts +2 -2
  202. package/lib/typescript/src/components/Content/Card/Styles/RotateInOut.d.ts.map +1 -1
  203. package/lib/typescript/src/components/Content/Card/Styles/Six.d.ts +2 -2
  204. package/lib/typescript/src/components/Content/Card/Styles/Six.d.ts.map +1 -1
  205. package/lib/typescript/src/components/Content/Card/Styles/Three.d.ts +2 -2
  206. package/lib/typescript/src/components/Content/Card/Styles/Three.d.ts.map +1 -1
  207. package/lib/typescript/src/components/Content/Card/Styles/TopTen.d.ts +2 -2
  208. package/lib/typescript/src/components/Content/Card/Styles/TopTen.d.ts.map +1 -1
  209. package/lib/typescript/src/components/Content/Card/Styles/Two.d.ts +2 -2
  210. package/lib/typescript/src/components/Content/Card/Styles/Two.d.ts.map +1 -1
  211. package/lib/typescript/src/components/Content/Card/components/CardPoster.d.ts.map +1 -1
  212. package/lib/typescript/src/components/Content/Card/components/NoContentFallback.d.ts +2 -2
  213. package/lib/typescript/src/components/Content/Card/components/NoContentFallback.d.ts.map +1 -1
  214. package/lib/typescript/src/components/Content/Card/components/ShowAllButton.d.ts +2 -0
  215. package/lib/typescript/src/components/Content/Card/components/ShowAllButton.d.ts.map +1 -1
  216. package/lib/typescript/src/components/Content/Card/index.d.ts +10 -10
  217. package/lib/typescript/src/components/Content/Content.d.ts +2 -2
  218. package/lib/typescript/src/components/Content/Content.d.ts.map +1 -1
  219. package/lib/typescript/src/components/Content/Sections.d.ts +2 -2
  220. package/lib/typescript/src/components/Content/Sections.d.ts.map +1 -1
  221. package/lib/typescript/src/components/ContentView/MoreContentList.d.ts +2 -2
  222. package/lib/typescript/src/components/ContentView/MoreContentList.d.ts.map +1 -1
  223. package/lib/typescript/src/components/ContentView/components/EpisodeCard.d.ts +3 -3
  224. package/lib/typescript/src/components/ContentView/components/EpisodeCard.d.ts.map +1 -1
  225. package/lib/typescript/src/components/ContentView/components/HeroBanner.d.ts +1 -1
  226. package/lib/typescript/src/components/ContentView/components/HeroBanner.d.ts.map +1 -1
  227. package/lib/typescript/src/components/ContentView/components/TrailerButton.d.ts +2 -2
  228. package/lib/typescript/src/components/ContentView/components/TrailerButton.d.ts.map +1 -1
  229. package/lib/typescript/src/components/Headers/AppHeader.d.ts +2 -2
  230. package/lib/typescript/src/components/Headers/AppHeader.d.ts.map +1 -1
  231. package/lib/typescript/src/components/Headers/One.d.ts +2 -2
  232. package/lib/typescript/src/components/Headers/One.d.ts.map +1 -1
  233. package/lib/typescript/src/components/Headers/Three.d.ts +2 -2
  234. package/lib/typescript/src/components/Headers/Three.d.ts.map +1 -1
  235. package/lib/typescript/src/components/Headers/Two.d.ts +2 -2
  236. package/lib/typescript/src/components/Headers/Two.d.ts.map +1 -1
  237. package/lib/typescript/src/components/Input/InputOne.d.ts +2 -2
  238. package/lib/typescript/src/components/Input/InputOne.d.ts.map +1 -1
  239. package/lib/typescript/src/components/Input/InputTwo.d.ts +2 -2
  240. package/lib/typescript/src/components/Input/InputTwo.d.ts.map +1 -1
  241. package/lib/typescript/src/components/Input/PhoneNumberInput.d.ts +2 -2
  242. package/lib/typescript/src/components/Input/PhoneNumberInput.d.ts.map +1 -1
  243. package/lib/typescript/src/components/Logo/Logo.d.ts +2 -2
  244. package/lib/typescript/src/components/Logo/Logo.d.ts.map +1 -1
  245. package/lib/typescript/src/components/Search/One.d.ts +2 -2
  246. package/lib/typescript/src/components/Search/One.d.ts.map +1 -1
  247. package/lib/typescript/src/components/Search/components/SearchCard.d.ts +2 -2
  248. package/lib/typescript/src/components/Search/components/SearchCard.d.ts.map +1 -1
  249. package/lib/typescript/src/components/Settings/AppSettings.d.ts +2 -2
  250. package/lib/typescript/src/components/Settings/AppSettings.d.ts.map +1 -1
  251. package/lib/typescript/src/components/Subscription/SubOne.d.ts +2 -2
  252. package/lib/typescript/src/components/Subscription/SubOne.d.ts.map +1 -1
  253. package/lib/typescript/src/components/Subscription/index.d.ts +1 -1
  254. package/lib/typescript/src/components/Subscription/index.d.ts.map +1 -1
  255. package/lib/typescript/src/components/TabBar/One.d.ts +2 -2
  256. package/lib/typescript/src/components/TabBar/One.d.ts.map +1 -1
  257. package/lib/typescript/src/components/TabBar/Three.d.ts +2 -2
  258. package/lib/typescript/src/components/TabBar/Three.d.ts.map +1 -1
  259. package/lib/typescript/src/components/TabBar/Two.d.ts +2 -2
  260. package/lib/typescript/src/components/TabBar/Two.d.ts.map +1 -1
  261. package/lib/typescript/src/components/Text/Text.d.ts +2 -0
  262. package/lib/typescript/src/components/Text/Text.d.ts.map +1 -1
  263. package/lib/typescript/src/components/User/DeviceSessions/DeviceSessions.d.ts +2 -2
  264. package/lib/typescript/src/components/User/DeviceSessions/DeviceSessions.d.ts.map +1 -1
  265. package/lib/typescript/src/components/User/ProfileUpdate/ProfileUpdate.d.ts +2 -2
  266. package/lib/typescript/src/components/User/ProfileUpdate/ProfileUpdate.d.ts.map +1 -1
  267. package/lib/typescript/src/components/User/WatchHistory/WatchHistory.d.ts +2 -2
  268. package/lib/typescript/src/components/User/WatchHistory/WatchHistory.d.ts.map +1 -1
  269. package/lib/typescript/src/components/User/WatchLater/WatchLater.d.ts +2 -2
  270. package/lib/typescript/src/components/User/WatchLater/WatchLater.d.ts.map +1 -1
  271. package/lib/typescript/src/components/User/components/UserAvatar.d.ts +2 -2
  272. package/lib/typescript/src/components/User/components/UserAvatar.d.ts.map +1 -1
  273. package/lib/typescript/src/components/User/components/UserSection.d.ts +2 -2
  274. package/lib/typescript/src/components/User/components/UserSection.d.ts.map +1 -1
  275. package/lib/typescript/src/components/common/AppStatusBar.d.ts +17 -0
  276. package/lib/typescript/src/components/common/AppStatusBar.d.ts.map +1 -0
  277. package/lib/typescript/src/components/layout/SafeAreaWrapper.d.ts +2 -2
  278. package/lib/typescript/src/components/layout/SafeAreaWrapper.d.ts.map +1 -1
  279. package/lib/typescript/src/store/themeStore.d.ts +7 -0
  280. package/lib/typescript/src/store/themeStore.d.ts.map +1 -0
  281. package/lib/typescript/src/theme/ThemeProvider.d.ts +17 -10
  282. package/lib/typescript/src/theme/ThemeProvider.d.ts.map +1 -1
  283. package/lib/typescript/src/theme/hook/index.d.ts +3 -0
  284. package/lib/typescript/src/theme/hook/index.d.ts.map +1 -0
  285. package/lib/typescript/src/theme/hook/useInternalTheme.d.ts +3 -0
  286. package/lib/typescript/src/theme/hook/useInternalTheme.d.ts.map +1 -0
  287. package/lib/typescript/src/theme/hook/useThemeStatusBar.d.ts +10 -0
  288. package/lib/typescript/src/theme/hook/useThemeStatusBar.d.ts.map +1 -0
  289. package/lib/typescript/src/theme/index.d.ts +1 -6
  290. package/lib/typescript/src/theme/index.d.ts.map +1 -1
  291. package/lib/typescript/src/theme/themes.d.ts +14 -2
  292. package/lib/typescript/src/theme/themes.d.ts.map +1 -1
  293. package/lib/typescript/src/types/content/content-view.types.d.ts +3 -3
  294. package/lib/typescript/src/types/content/content-view.types.d.ts.map +1 -1
  295. package/package.json +1 -1
  296. package/src/components/Account/Account.tsx +6 -6
  297. package/src/components/Alert/AlertDialog.tsx +4 -4
  298. package/src/components/Alert/UAAlert.tsx +5 -3
  299. package/src/components/Auth/AuthProvider/AuthProvider.tsx +106 -156
  300. package/src/components/Auth/ForgotPassword/ForgotPassword.tsx +6 -8
  301. package/src/components/Auth/Login/LoginWithEmail.tsx +9 -9
  302. package/src/components/Auth/Login/LoginWithPhone.tsx +8 -8
  303. package/src/components/Auth/OTP/OTP.tsx +7 -7
  304. package/src/components/Auth/QrLogin/QrLogin.tsx +8 -12
  305. package/src/components/Auth/QrLogin/components/QrViewArea.tsx +4 -4
  306. package/src/components/Auth/SignUp/SignUp.tsx +11 -11
  307. package/src/components/Auth/SplashScreen/SplashScreen.tsx +17 -30
  308. package/src/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.tsx +2 -2
  309. package/src/components/BackgroundLayout/BackgroundLayout.tsx +5 -3
  310. package/src/components/BlogView/BlogView.tsx +13 -8
  311. package/src/components/Button/BackBtn.tsx +4 -4
  312. package/src/components/Button/MenuBtn.tsx +4 -4
  313. package/src/components/Button/PrimaryBtn.tsx +4 -4
  314. package/src/components/Button/SecondaryBtn.tsx +4 -4
  315. package/src/components/Button/TextButton.tsx +2 -2
  316. package/src/components/Content/Card/Category/Category.tsx +5 -5
  317. package/src/components/Content/Card/NowWatching/NowWatching.tsx +6 -5
  318. package/src/components/Content/Card/Sliders/Styles/One.tsx +9 -6
  319. package/src/components/Content/Card/Sliders/Styles/Two.tsx +8 -5
  320. package/src/components/Content/Card/Styles/Five.tsx +5 -5
  321. package/src/components/Content/Card/Styles/Four.tsx +5 -5
  322. package/src/components/Content/Card/Styles/One.tsx +5 -5
  323. package/src/components/Content/Card/Styles/RotateInOut.tsx +5 -5
  324. package/src/components/Content/Card/Styles/Six.tsx +9 -6
  325. package/src/components/Content/Card/Styles/Three.tsx +5 -5
  326. package/src/components/Content/Card/Styles/TopTen.tsx +5 -5
  327. package/src/components/Content/Card/Styles/Two.tsx +5 -5
  328. package/src/components/Content/Card/components/CardPoster.tsx +1 -0
  329. package/src/components/Content/Card/components/NoContentFallback.tsx +4 -4
  330. package/src/components/Content/Card/components/RentOrBuyIcon.tsx +1 -1
  331. package/src/components/Content/Card/components/ShowAllButton.tsx +6 -1
  332. package/src/components/Content/Content.tsx +2 -2
  333. package/src/components/Content/Sections.tsx +2 -2
  334. package/src/components/ContentView/ContentView.tsx +5 -5
  335. package/src/components/ContentView/MoreContentList.tsx +5 -4
  336. package/src/components/ContentView/components/EpisodeCard.tsx +21 -8
  337. package/src/components/ContentView/components/HeroBanner.tsx +10 -3
  338. package/src/components/ContentView/components/TrailerButton.tsx +6 -5
  339. package/src/components/Headers/AppHeader.tsx +4 -4
  340. package/src/components/Headers/One.tsx +4 -4
  341. package/src/components/Headers/Three.tsx +4 -4
  342. package/src/components/Headers/Two.tsx +4 -4
  343. package/src/components/Input/InputOne.tsx +4 -4
  344. package/src/components/Input/InputTwo.tsx +4 -4
  345. package/src/components/Input/PhoneNumberInput.tsx +5 -5
  346. package/src/components/Logo/Logo.tsx +4 -4
  347. package/src/components/Search/One.tsx +10 -9
  348. package/src/components/Search/components/SearchCard.tsx +4 -4
  349. package/src/components/Settings/AppSettings.tsx +6 -6
  350. package/src/components/Subscription/SubOne.tsx +15 -16
  351. package/src/components/TabBar/One.tsx +10 -6
  352. package/src/components/TabBar/Three.tsx +4 -4
  353. package/src/components/TabBar/Two.tsx +9 -6
  354. package/src/components/Text/Text.tsx +5 -2
  355. package/src/components/User/DeviceSessions/DeviceSessions.tsx +6 -5
  356. package/src/components/User/ProfileUpdate/ProfileUpdate.tsx +8 -12
  357. package/src/components/User/WatchHistory/WatchHistory.tsx +5 -5
  358. package/src/components/User/WatchLater/WatchLater.tsx +7 -6
  359. package/src/components/User/components/UserAvatar.tsx +16 -10
  360. package/src/components/User/components/UserSection.tsx +5 -5
  361. package/src/components/common/AppStatusBar.tsx +51 -0
  362. package/src/components/layout/SafeAreaWrapper.tsx +4 -4
  363. package/src/store/splashStore.ts +5 -5
  364. package/src/store/themeStore.ts +53 -0
  365. package/src/theme/ThemeProvider.tsx +40 -102
  366. package/src/theme/hook/index.ts +2 -0
  367. package/src/theme/hook/useInternalTheme.ts +61 -0
  368. package/src/theme/hook/useThemeStatusBar.ts +33 -0
  369. package/src/theme/index.ts +1 -7
  370. package/src/theme/themes.ts +20 -6
  371. package/src/types/content/content-view.types.ts +3 -3
  372. package/lib/module/theme/hook/useTheme.js +0 -45
  373. package/lib/module/theme/hook/useTheme.js.map +0 -1
  374. package/lib/typescript/src/theme/hook/useTheme.d.ts +0 -9
  375. package/lib/typescript/src/theme/hook/useTheme.d.ts.map +0 -1
  376. package/src/theme/hook/useTheme.ts +0 -45
@@ -17,9 +17,9 @@ import SkeletonPlaceholder from 'react-native-skeleton-placeholder';
17
17
  import Animated, { FadeIn, FadeOut } from 'react-native-reanimated';
18
18
  import { Text } from '../Text';
19
19
  import AppHeader from '../Headers/AppHeader';
20
- import { useTheme } from '../../theme/hook/useTheme';
20
+ import { useInternalTheme } from '../../theme/hook/useInternalTheme';
21
21
  import Display from '../../utils/Display';
22
- import type { AppTheme } from '../../theme/themes';
22
+ import type { ThemeOverride } from '../../theme/themes';
23
23
  import { RFValue } from 'react-native-responsive-fontsize';
24
24
 
25
25
  export type Plan = {
@@ -33,7 +33,7 @@ export type Plan = {
33
33
  };
34
34
 
35
35
  type SubscriptionSliderOneProps = {
36
- theme?: AppTheme;
36
+ theme?: ThemeOverride;
37
37
  headerTitleAlign?: 'center' | 'left';
38
38
  subscribeButtonText?: string;
39
39
  onSubscribe?: (plan: Plan) => void;
@@ -69,7 +69,7 @@ const SubscriptionSliderOne = ({
69
69
  footer,
70
70
  extraContentText,
71
71
  }: SubscriptionSliderOneProps) => {
72
- const { theme: appliedTheme } = useTheme(theme);
72
+ const { theme: appliedTheme } = useInternalTheme(theme);
73
73
  const colors = appliedTheme.colors;
74
74
  const parsePrice = (price: string) =>
75
75
  parseFloat(price.replace(/[^\d.]/g, '')) || 0;
@@ -125,12 +125,9 @@ const SubscriptionSliderOne = ({
125
125
  >
126
126
  {item?.isPopular && (
127
127
  <View
128
- style={[
129
- styles.popularBadge,
130
- { backgroundColor: colors.onBackground },
131
- ]}
128
+ style={[styles.popularBadge, { backgroundColor: colors.button }]}
132
129
  >
133
- <Text style={[styles.popularText, { color: colors.onSecondary }]}>
130
+ <Text style={[styles.popularText, { color: colors.buttonText }]}>
134
131
  POPULAR
135
132
  </Text>
136
133
  </View>
@@ -164,9 +161,11 @@ const SubscriptionSliderOne = ({
164
161
  disabled={subscribeLoadingId === item.id}
165
162
  >
166
163
  {subscribeLoadingId === item.id ? (
167
- <ActivityIndicator size="small" color={colors.black} />
164
+ <ActivityIndicator size="small" color={colors.buttonText} />
168
165
  ) : (
169
- <Text style={[styles.subscribeText, { color: colors.black }]}>
166
+ <Text
167
+ style={[styles.subscribeText, { color: colors.buttonText }]}
168
+ >
170
169
  {subscribeButtonText}
171
170
  </Text>
172
171
  )}
@@ -175,11 +174,9 @@ const SubscriptionSliderOne = ({
175
174
  </View>
176
175
  ),
177
176
  [
178
- colors.black,
179
177
  colors.button,
178
+ colors.buttonText,
180
179
  colors.cardGradient,
181
- colors.onBackground,
182
- colors.onSecondary,
183
180
  colors.primary,
184
181
  colors.white,
185
182
  onSubscribe,
@@ -194,10 +191,12 @@ const SubscriptionSliderOne = ({
194
191
  title={header.topTitle}
195
192
  onBackPress={onBackPress}
196
193
  titleAlign={header.topTitleAlign}
197
- theme={appliedTheme}
194
+ theme={theme}
198
195
  />
199
196
  <View style={styles.content}>
200
- <Text style={[styles.heading]}>{header.title}</Text>
197
+ <Text style={[styles.heading]} color={colors.textPrimary}>
198
+ {header.title}
199
+ </Text>
201
200
  <Text style={[styles.subText, { color: colors.onSurfaceVariant }]}>
202
201
  {header.subTitle}
203
202
  </Text>
@@ -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';
@@ -36,7 +36,7 @@ export type ProfileUpdateProps = {
36
36
  avatarUri?: string;
37
37
  onBackPress?: () => void;
38
38
  onSubmit?: (val: { fullName: string; avatarFile?: Image }) => void;
39
- theme?: AppTheme;
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 {
@@ -124,17 +124,13 @@ export const ProfileUpdate = ({
124
124
  <AppHeader
125
125
  title={title}
126
126
  onBackPress={onBackPress}
127
- theme={appliedTheme}
127
+ theme={theme}
128
128
  titleAlign="left"
129
129
  />
130
130
 
131
131
  <View style={styles.content}>
132
132
  <View style={styles.avatarBox}>
133
- <UserAvatar
134
- avatarUri={avatar?.path}
135
- theme={appliedTheme}
136
- size={100}
137
- />
133
+ <UserAvatar avatarUri={avatar?.path} theme={theme} size={100} />
138
134
  <TouchableOpacity
139
135
  style={[
140
136
  styles.cameraBtn,
@@ -180,7 +176,7 @@ export const ProfileUpdate = ({
180
176
  placeholder={'Enter your full name'}
181
177
  placeholderTextColor={colors.textDisabled}
182
178
  containerStyle={{ marginTop: verticalScale(20) }}
183
- theme={appliedTheme}
179
+ theme={theme}
184
180
  returnKeyType="done"
185
181
  onSubmitEditing={handleSubmit(handleFormSubmit)}
186
182
  />
@@ -196,7 +192,7 @@ export const ProfileUpdate = ({
196
192
  <Button.Primary
197
193
  title={'Update Profile'}
198
194
  onPress={handleSubmit(handleFormSubmit)}
199
- theme={appliedTheme}
195
+ theme={theme}
200
196
  titleStyle={{ fontSize: RFValue(14) }}
201
197
  loading={loading}
202
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) => ({
@@ -134,7 +134,7 @@ export const WatchHistory: React.FC<WatchHistoryProps> = ({
134
134
  onBackPress={onBackPress}
135
135
  title={title}
136
136
  titleAlign="left"
137
- theme={appliedTheme}
137
+ theme={theme}
138
138
  titleStyle={{
139
139
  color: appliedTheme.colors.onBackground,
140
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,
@@ -234,7 +235,7 @@ export const WatchLater: React.FC<WatchLaterProps> = ({
234
235
  onBackPress={onBackPress}
235
236
  title={title}
236
237
  titleAlign="left"
237
- theme={appliedTheme}
238
+ theme={theme}
238
239
  titleStyle={{
239
240
  ...(titleStyle ? StyleSheet.flatten(titleStyle) : {}),
240
241
  color: appliedTheme.colors.onBackground,
@@ -6,15 +6,15 @@ import React, { useState } from 'react';
6
6
  import { Image, StyleSheet, View } from 'react-native';
7
7
  import SkeletonPlaceholder from 'react-native-skeleton-placeholder';
8
8
  import { scale } from 'react-native-size-matters';
9
- import { useTheme } from '../../../theme/hook/useTheme';
10
- import type { AppTheme } from '../../../theme/themes';
9
+ import { useInternalTheme } from '../../../theme/hook/useInternalTheme';
10
+ import type { ThemeOverride } from '../../../theme/themes';
11
11
 
12
12
  const fallbackAvatar = require('../../../assets/img/profile.jpg');
13
13
 
14
14
  type UserAvatarProps = {
15
15
  avatarUri?: string;
16
16
  size?: number;
17
- theme?: AppTheme;
17
+ theme?: ThemeOverride;
18
18
  };
19
19
 
20
20
  const UserAvatar: React.FC<UserAvatarProps> = ({
@@ -22,14 +22,23 @@ const UserAvatar: React.FC<UserAvatarProps> = ({
22
22
  size = scale(80),
23
23
  theme,
24
24
  }) => {
25
+ const { theme: appliedTheme } = useInternalTheme(theme);
25
26
  const [imageError, setImageError] = useState(false);
26
27
  const [loading, setLoading] = useState(!!avatarUri);
27
- const { theme: appliedTheme } = useTheme(theme);
28
+
28
29
  const borderColor = appliedTheme.colors.primary || '#ccc';
29
30
  const skeletonBaseColor = appliedTheme.colors.skeletonBaseColor || '#E0E0E0';
30
31
  const skeletonHighlightColor =
31
32
  appliedTheme.colors.skeletonHighlightColor || '#F5F5F5';
32
33
 
34
+ const handleError = () => {
35
+ setImageError(true);
36
+ setLoading(false);
37
+ };
38
+
39
+ const handleLoadStart = () => setLoading(true);
40
+ const handleLoadEnd = () => setLoading(false);
41
+
33
42
  return (
34
43
  <View style={styles(size).wrapper}>
35
44
  {loading && (
@@ -49,12 +58,9 @@ const UserAvatar: React.FC<UserAvatarProps> = ({
49
58
  <Image
50
59
  source={imageError || !avatarUri ? fallbackAvatar : { uri: avatarUri }}
51
60
  style={[styles(size).avatar, { borderColor, position: 'absolute' }]}
52
- onError={() => {
53
- setImageError(true);
54
- setLoading(false);
55
- }}
56
- onLoadStart={() => setLoading(true)}
57
- onLoadEnd={() => setLoading(false)}
61
+ onError={handleError}
62
+ onLoadStart={handleLoadStart}
63
+ onLoadEnd={handleLoadEnd}
58
64
  />
59
65
  </View>
60
66
  );
@@ -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
+ };