@zezosoft/zezo-ott-react-native-ui-kit 1.0.5 → 1.0.7

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/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 +71 -47
  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 +6 -0
  66. package/lib/module/components/Content/Card/components/CardPoster.js.map +1 -1
  67. package/lib/module/components/Content/Card/components/RentOrBuyIcon.js +1 -1
  68. package/lib/module/components/Content/Card/components/RentOrBuyIcon.js.map +1 -1
  69. package/lib/module/components/Content/Card/components/ShowAllButton.js +3 -1
  70. package/lib/module/components/Content/Card/components/ShowAllButton.js.map +1 -1
  71. package/lib/module/components/Content/Content.js +22 -7
  72. package/lib/module/components/Content/Content.js.map +1 -1
  73. package/lib/module/components/ContentView/ContentView.js +101 -85
  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/AboutSection.js +15 -1
  78. package/lib/module/components/ContentView/components/AboutSection.js.map +1 -1
  79. package/lib/module/components/ContentView/components/CastCard.js +1 -1
  80. package/lib/module/components/ContentView/components/EpisodeCard.js +15 -6
  81. package/lib/module/components/ContentView/components/EpisodeCard.js.map +1 -1
  82. package/lib/module/components/ContentView/components/HeroBanner.js +56 -20
  83. package/lib/module/components/ContentView/components/HeroBanner.js.map +1 -1
  84. package/lib/module/components/ContentView/components/MiniInfo.js +136 -0
  85. package/lib/module/components/ContentView/components/MiniInfo.js.map +1 -0
  86. package/lib/module/components/ContentView/components/Title.js +19 -27
  87. package/lib/module/components/ContentView/components/Title.js.map +1 -1
  88. package/lib/module/components/ContentView/components/TrailerButton.js +5 -5
  89. package/lib/module/components/ContentView/components/TrailerButton.js.map +1 -1
  90. package/lib/module/components/{Content/Card/components → Fallbacks}/NoContentFallback.js +50 -33
  91. package/lib/module/components/Fallbacks/NoContentFallback.js.map +1 -0
  92. package/lib/module/components/Fallbacks/NotFoundFallback.js +79 -0
  93. package/lib/module/components/Fallbacks/NotFoundFallback.js.map +1 -0
  94. package/lib/module/components/Fallbacks/index.js +5 -0
  95. package/lib/module/components/Fallbacks/index.js.map +1 -0
  96. package/lib/module/components/Headers/AppHeader.js +2 -2
  97. package/lib/module/components/Headers/AppHeader.js.map +1 -1
  98. package/lib/module/components/Headers/One.js +2 -2
  99. package/lib/module/components/Headers/One.js.map +1 -1
  100. package/lib/module/components/Headers/Three.js +2 -2
  101. package/lib/module/components/Headers/Three.js.map +1 -1
  102. package/lib/module/components/Headers/Two.js +2 -2
  103. package/lib/module/components/Headers/Two.js.map +1 -1
  104. package/lib/module/components/Input/InputOne.js +11 -5
  105. package/lib/module/components/Input/InputOne.js.map +1 -1
  106. package/lib/module/components/Input/InputTwo.js +2 -2
  107. package/lib/module/components/Input/InputTwo.js.map +1 -1
  108. package/lib/module/components/Input/PhoneNumberInput.js +5 -4
  109. package/lib/module/components/Input/PhoneNumberInput.js.map +1 -1
  110. package/lib/module/components/Logo/Logo.js +2 -2
  111. package/lib/module/components/Logo/Logo.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 +9 -8
  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 +34 -12
  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 +8 -8
  131. package/lib/module/components/User/ProfileUpdate/ProfileUpdate.js.map +1 -1
  132. package/lib/module/components/User/WatchHistory/WatchHistory.js +3 -3
  133. package/lib/module/components/User/WatchHistory/WatchHistory.js.map +1 -1
  134. package/lib/module/components/User/WatchLater/WatchLater.js +5 -3
  135. package/lib/module/components/User/WatchLater/WatchLater.js.map +1 -1
  136. package/lib/module/components/User/components/UserAvatar.js +13 -10
  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/View/View.js.map +1 -1
  141. package/lib/module/components/common/AppStatusBar.js +41 -0
  142. package/lib/module/components/common/AppStatusBar.js.map +1 -0
  143. package/lib/module/components/index.js +3 -1
  144. package/lib/module/components/index.js.map +1 -1
  145. package/lib/module/components/layout/SafeAreaWrapper.js +2 -2
  146. package/lib/module/components/layout/SafeAreaWrapper.js.map +1 -1
  147. package/lib/module/store/splashStore.js +3 -7
  148. package/lib/module/store/splashStore.js.map +1 -1
  149. package/lib/module/store/themeStore.js +36 -0
  150. package/lib/module/store/themeStore.js.map +1 -0
  151. package/lib/module/theme/ThemeProvider.js +40 -69
  152. package/lib/module/theme/ThemeProvider.js.map +1 -1
  153. package/lib/module/theme/hook/index.js +5 -0
  154. package/lib/module/theme/hook/index.js.map +1 -0
  155. package/lib/module/theme/hook/useInternalTheme.js +57 -0
  156. package/lib/module/theme/hook/useInternalTheme.js.map +1 -0
  157. package/lib/module/theme/hook/useThemeStatusBar.js +27 -0
  158. package/lib/module/theme/hook/useThemeStatusBar.js.map +1 -0
  159. package/lib/module/theme/index.js +1 -2
  160. package/lib/module/theme/index.js.map +1 -1
  161. package/lib/module/theme/themes.js +18 -4
  162. package/lib/module/theme/themes.js.map +1 -1
  163. package/lib/typescript/src/components/Account/Account.d.ts +2 -2
  164. package/lib/typescript/src/components/Account/Account.d.ts.map +1 -1
  165. package/lib/typescript/src/components/Alert/AlertDialog.d.ts +2 -2
  166. package/lib/typescript/src/components/Alert/AlertDialog.d.ts.map +1 -1
  167. package/lib/typescript/src/components/Alert/UAAlert.d.ts +2 -2
  168. package/lib/typescript/src/components/Alert/UAAlert.d.ts.map +1 -1
  169. package/lib/typescript/src/components/Auth/AuthProvider/AuthProvider.d.ts +6 -6
  170. package/lib/typescript/src/components/Auth/AuthProvider/AuthProvider.d.ts.map +1 -1
  171. package/lib/typescript/src/components/Auth/ForgotPassword/ForgotPassword.d.ts +2 -2
  172. package/lib/typescript/src/components/Auth/ForgotPassword/ForgotPassword.d.ts.map +1 -1
  173. package/lib/typescript/src/components/Auth/Login/LoginWithEmail.d.ts +2 -2
  174. package/lib/typescript/src/components/Auth/Login/LoginWithEmail.d.ts.map +1 -1
  175. package/lib/typescript/src/components/Auth/Login/LoginWithPhone.d.ts +2 -2
  176. package/lib/typescript/src/components/Auth/Login/LoginWithPhone.d.ts.map +1 -1
  177. package/lib/typescript/src/components/Auth/OTP/OTP.d.ts +2 -2
  178. package/lib/typescript/src/components/Auth/OTP/OTP.d.ts.map +1 -1
  179. package/lib/typescript/src/components/Auth/QrLogin/QrLogin.d.ts +2 -2
  180. package/lib/typescript/src/components/Auth/QrLogin/QrLogin.d.ts.map +1 -1
  181. package/lib/typescript/src/components/Auth/QrLogin/components/QrViewArea.d.ts +2 -2
  182. package/lib/typescript/src/components/Auth/QrLogin/components/QrViewArea.d.ts.map +1 -1
  183. package/lib/typescript/src/components/Auth/SignUp/SignUp.d.ts +2 -2
  184. package/lib/typescript/src/components/Auth/SignUp/SignUp.d.ts.map +1 -1
  185. package/lib/typescript/src/components/Auth/SplashScreen/SplashScreen.d.ts +2 -2
  186. package/lib/typescript/src/components/Auth/SplashScreen/SplashScreen.d.ts.map +1 -1
  187. package/lib/typescript/src/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.d.ts +7 -6
  188. package/lib/typescript/src/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.d.ts.map +1 -1
  189. package/lib/typescript/src/components/Auth/index.d.ts +5 -5
  190. package/lib/typescript/src/components/Auth/index.d.ts.map +1 -1
  191. package/lib/typescript/src/components/BackgroundLayout/BackgroundLayout.d.ts +2 -2
  192. package/lib/typescript/src/components/BackgroundLayout/BackgroundLayout.d.ts.map +1 -1
  193. package/lib/typescript/src/components/BlogView/BlogView.d.ts +2 -2
  194. package/lib/typescript/src/components/BlogView/BlogView.d.ts.map +1 -1
  195. package/lib/typescript/src/components/Button/BackBtn.d.ts +2 -2
  196. package/lib/typescript/src/components/Button/BackBtn.d.ts.map +1 -1
  197. package/lib/typescript/src/components/Button/MenuBtn.d.ts +2 -2
  198. package/lib/typescript/src/components/Button/MenuBtn.d.ts.map +1 -1
  199. package/lib/typescript/src/components/Button/PrimaryBtn.d.ts +2 -2
  200. package/lib/typescript/src/components/Button/PrimaryBtn.d.ts.map +1 -1
  201. package/lib/typescript/src/components/Button/SecondaryBtn.d.ts +2 -2
  202. package/lib/typescript/src/components/Button/SecondaryBtn.d.ts.map +1 -1
  203. package/lib/typescript/src/components/Button/index.d.ts +3 -3
  204. package/lib/typescript/src/components/Content/Card/Category/Category.d.ts +2 -2
  205. package/lib/typescript/src/components/Content/Card/Category/Category.d.ts.map +1 -1
  206. package/lib/typescript/src/components/Content/Card/NowWatching/NowWatching.d.ts +2 -2
  207. package/lib/typescript/src/components/Content/Card/NowWatching/NowWatching.d.ts.map +1 -1
  208. package/lib/typescript/src/components/Content/Card/Sliders/Styles/One.d.ts +2 -2
  209. package/lib/typescript/src/components/Content/Card/Sliders/Styles/One.d.ts.map +1 -1
  210. package/lib/typescript/src/components/Content/Card/Sliders/Styles/Two.d.ts +2 -2
  211. package/lib/typescript/src/components/Content/Card/Sliders/Styles/Two.d.ts.map +1 -1
  212. package/lib/typescript/src/components/Content/Card/Sliders/index.d.ts +2 -2
  213. package/lib/typescript/src/components/Content/Card/Styles/Five.d.ts +2 -2
  214. package/lib/typescript/src/components/Content/Card/Styles/Five.d.ts.map +1 -1
  215. package/lib/typescript/src/components/Content/Card/Styles/Four.d.ts +2 -2
  216. package/lib/typescript/src/components/Content/Card/Styles/Four.d.ts.map +1 -1
  217. package/lib/typescript/src/components/Content/Card/Styles/One.d.ts +2 -2
  218. package/lib/typescript/src/components/Content/Card/Styles/One.d.ts.map +1 -1
  219. package/lib/typescript/src/components/Content/Card/Styles/RotateInOut.d.ts +2 -2
  220. package/lib/typescript/src/components/Content/Card/Styles/RotateInOut.d.ts.map +1 -1
  221. package/lib/typescript/src/components/Content/Card/Styles/Six.d.ts +2 -2
  222. package/lib/typescript/src/components/Content/Card/Styles/Six.d.ts.map +1 -1
  223. package/lib/typescript/src/components/Content/Card/Styles/Three.d.ts +2 -2
  224. package/lib/typescript/src/components/Content/Card/Styles/Three.d.ts.map +1 -1
  225. package/lib/typescript/src/components/Content/Card/Styles/TopTen.d.ts +2 -2
  226. package/lib/typescript/src/components/Content/Card/Styles/TopTen.d.ts.map +1 -1
  227. package/lib/typescript/src/components/Content/Card/Styles/Two.d.ts +2 -2
  228. package/lib/typescript/src/components/Content/Card/Styles/Two.d.ts.map +1 -1
  229. package/lib/typescript/src/components/Content/Card/components/CardPoster.d.ts +4 -0
  230. package/lib/typescript/src/components/Content/Card/components/CardPoster.d.ts.map +1 -1
  231. package/lib/typescript/src/components/Content/Card/components/ShowAllButton.d.ts +2 -0
  232. package/lib/typescript/src/components/Content/Card/components/ShowAllButton.d.ts.map +1 -1
  233. package/lib/typescript/src/components/Content/Card/index.d.ts +10 -10
  234. package/lib/typescript/src/components/Content/Content.d.ts +4 -2
  235. package/lib/typescript/src/components/Content/Content.d.ts.map +1 -1
  236. package/lib/typescript/src/components/Content/Sections.d.ts +2 -2
  237. package/lib/typescript/src/components/Content/Sections.d.ts.map +1 -1
  238. package/lib/typescript/src/components/ContentView/ContentView.d.ts +1 -5
  239. package/lib/typescript/src/components/ContentView/ContentView.d.ts.map +1 -1
  240. package/lib/typescript/src/components/ContentView/MoreContentList.d.ts +2 -2
  241. package/lib/typescript/src/components/ContentView/MoreContentList.d.ts.map +1 -1
  242. package/lib/typescript/src/components/ContentView/components/AboutSection.d.ts +6 -3
  243. package/lib/typescript/src/components/ContentView/components/AboutSection.d.ts.map +1 -1
  244. package/lib/typescript/src/components/ContentView/components/EpisodeCard.d.ts +3 -3
  245. package/lib/typescript/src/components/ContentView/components/EpisodeCard.d.ts.map +1 -1
  246. package/lib/typescript/src/components/ContentView/components/HeroBanner.d.ts +1 -1
  247. package/lib/typescript/src/components/ContentView/components/HeroBanner.d.ts.map +1 -1
  248. package/lib/typescript/src/components/ContentView/components/MiniInfo.d.ts +22 -0
  249. package/lib/typescript/src/components/ContentView/components/MiniInfo.d.ts.map +1 -0
  250. package/lib/typescript/src/components/ContentView/components/TrailerButton.d.ts +2 -2
  251. package/lib/typescript/src/components/ContentView/components/TrailerButton.d.ts.map +1 -1
  252. package/lib/typescript/src/components/Fallbacks/NoContentFallback.d.ts +16 -0
  253. package/lib/typescript/src/components/Fallbacks/NoContentFallback.d.ts.map +1 -0
  254. package/lib/typescript/src/components/Fallbacks/NotFoundFallback.d.ts +19 -0
  255. package/lib/typescript/src/components/Fallbacks/NotFoundFallback.d.ts.map +1 -0
  256. package/lib/typescript/src/components/Fallbacks/index.d.ts +3 -0
  257. package/lib/typescript/src/components/Fallbacks/index.d.ts.map +1 -0
  258. package/lib/typescript/src/components/Headers/AppHeader.d.ts +2 -2
  259. package/lib/typescript/src/components/Headers/AppHeader.d.ts.map +1 -1
  260. package/lib/typescript/src/components/Headers/One.d.ts +2 -2
  261. package/lib/typescript/src/components/Headers/One.d.ts.map +1 -1
  262. package/lib/typescript/src/components/Headers/Three.d.ts +2 -2
  263. package/lib/typescript/src/components/Headers/Three.d.ts.map +1 -1
  264. package/lib/typescript/src/components/Headers/Two.d.ts +2 -2
  265. package/lib/typescript/src/components/Headers/Two.d.ts.map +1 -1
  266. package/lib/typescript/src/components/Input/InputOne.d.ts +2 -2
  267. package/lib/typescript/src/components/Input/InputOne.d.ts.map +1 -1
  268. package/lib/typescript/src/components/Input/InputTwo.d.ts +2 -2
  269. package/lib/typescript/src/components/Input/InputTwo.d.ts.map +1 -1
  270. package/lib/typescript/src/components/Input/PhoneNumberInput.d.ts +2 -2
  271. package/lib/typescript/src/components/Input/PhoneNumberInput.d.ts.map +1 -1
  272. package/lib/typescript/src/components/Logo/Logo.d.ts +2 -2
  273. package/lib/typescript/src/components/Logo/Logo.d.ts.map +1 -1
  274. package/lib/typescript/src/components/Search/One.d.ts +2 -2
  275. package/lib/typescript/src/components/Search/One.d.ts.map +1 -1
  276. package/lib/typescript/src/components/Search/components/SearchCard.d.ts +2 -2
  277. package/lib/typescript/src/components/Search/components/SearchCard.d.ts.map +1 -1
  278. package/lib/typescript/src/components/Settings/AppSettings.d.ts +2 -2
  279. package/lib/typescript/src/components/Settings/AppSettings.d.ts.map +1 -1
  280. package/lib/typescript/src/components/Subscription/SubOne.d.ts +2 -2
  281. package/lib/typescript/src/components/Subscription/SubOne.d.ts.map +1 -1
  282. package/lib/typescript/src/components/Subscription/index.d.ts +1 -1
  283. package/lib/typescript/src/components/Subscription/index.d.ts.map +1 -1
  284. package/lib/typescript/src/components/TabBar/One.d.ts +2 -2
  285. package/lib/typescript/src/components/TabBar/One.d.ts.map +1 -1
  286. package/lib/typescript/src/components/TabBar/Three.d.ts +2 -2
  287. package/lib/typescript/src/components/TabBar/Three.d.ts.map +1 -1
  288. package/lib/typescript/src/components/TabBar/Two.d.ts +2 -2
  289. package/lib/typescript/src/components/TabBar/Two.d.ts.map +1 -1
  290. package/lib/typescript/src/components/Text/Text.d.ts +3 -4
  291. package/lib/typescript/src/components/Text/Text.d.ts.map +1 -1
  292. package/lib/typescript/src/components/User/DeviceSessions/DeviceSessions.d.ts +2 -2
  293. package/lib/typescript/src/components/User/DeviceSessions/DeviceSessions.d.ts.map +1 -1
  294. package/lib/typescript/src/components/User/ProfileUpdate/ProfileUpdate.d.ts +2 -2
  295. package/lib/typescript/src/components/User/ProfileUpdate/ProfileUpdate.d.ts.map +1 -1
  296. package/lib/typescript/src/components/User/WatchHistory/WatchHistory.d.ts +2 -2
  297. package/lib/typescript/src/components/User/WatchHistory/WatchHistory.d.ts.map +1 -1
  298. package/lib/typescript/src/components/User/WatchLater/WatchLater.d.ts +2 -2
  299. package/lib/typescript/src/components/User/WatchLater/WatchLater.d.ts.map +1 -1
  300. package/lib/typescript/src/components/User/components/UserAvatar.d.ts +2 -2
  301. package/lib/typescript/src/components/User/components/UserAvatar.d.ts.map +1 -1
  302. package/lib/typescript/src/components/User/components/UserSection.d.ts +2 -2
  303. package/lib/typescript/src/components/User/components/UserSection.d.ts.map +1 -1
  304. package/lib/typescript/src/components/View/View.d.ts +2 -2
  305. package/lib/typescript/src/components/View/View.d.ts.map +1 -1
  306. package/lib/typescript/src/components/common/AppStatusBar.d.ts +17 -0
  307. package/lib/typescript/src/components/common/AppStatusBar.d.ts.map +1 -0
  308. package/lib/typescript/src/components/index.d.ts +3 -1
  309. package/lib/typescript/src/components/index.d.ts.map +1 -1
  310. package/lib/typescript/src/components/layout/SafeAreaWrapper.d.ts +2 -2
  311. package/lib/typescript/src/components/layout/SafeAreaWrapper.d.ts.map +1 -1
  312. package/lib/typescript/src/store/themeStore.d.ts +25 -0
  313. package/lib/typescript/src/store/themeStore.d.ts.map +1 -0
  314. package/lib/typescript/src/theme/ThemeProvider.d.ts +17 -10
  315. package/lib/typescript/src/theme/ThemeProvider.d.ts.map +1 -1
  316. package/lib/typescript/src/theme/hook/index.d.ts +3 -0
  317. package/lib/typescript/src/theme/hook/index.d.ts.map +1 -0
  318. package/lib/typescript/src/theme/hook/useInternalTheme.d.ts +7 -0
  319. package/lib/typescript/src/theme/hook/useInternalTheme.d.ts.map +1 -0
  320. package/lib/typescript/src/theme/hook/useThemeStatusBar.d.ts +10 -0
  321. package/lib/typescript/src/theme/hook/useThemeStatusBar.d.ts.map +1 -0
  322. package/lib/typescript/src/theme/index.d.ts +1 -6
  323. package/lib/typescript/src/theme/index.d.ts.map +1 -1
  324. package/lib/typescript/src/theme/themes.d.ts +20 -2
  325. package/lib/typescript/src/theme/themes.d.ts.map +1 -1
  326. package/lib/typescript/src/types/content/content-view.types.d.ts +10 -3
  327. package/lib/typescript/src/types/content/content-view.types.d.ts.map +1 -1
  328. package/package.json +1 -1
  329. package/src/components/Account/Account.tsx +6 -6
  330. package/src/components/Alert/AlertDialog.tsx +4 -4
  331. package/src/components/Alert/UAAlert.tsx +5 -3
  332. package/src/components/Auth/AuthProvider/AuthProvider.tsx +106 -156
  333. package/src/components/Auth/ForgotPassword/ForgotPassword.tsx +6 -8
  334. package/src/components/Auth/Login/LoginWithEmail.tsx +9 -9
  335. package/src/components/Auth/Login/LoginWithPhone.tsx +8 -8
  336. package/src/components/Auth/OTP/OTP.tsx +7 -7
  337. package/src/components/Auth/QrLogin/QrLogin.tsx +8 -12
  338. package/src/components/Auth/QrLogin/components/QrViewArea.tsx +4 -4
  339. package/src/components/Auth/SignUp/SignUp.tsx +11 -11
  340. package/src/components/Auth/SplashScreen/SplashScreen.tsx +17 -30
  341. package/src/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.tsx +90 -74
  342. package/src/components/BackgroundLayout/BackgroundLayout.tsx +5 -3
  343. package/src/components/BlogView/BlogView.tsx +13 -8
  344. package/src/components/Button/BackBtn.tsx +4 -4
  345. package/src/components/Button/MenuBtn.tsx +4 -4
  346. package/src/components/Button/PrimaryBtn.tsx +4 -4
  347. package/src/components/Button/SecondaryBtn.tsx +4 -4
  348. package/src/components/Button/TextButton.tsx +2 -2
  349. package/src/components/Content/Card/Category/Category.tsx +5 -5
  350. package/src/components/Content/Card/NowWatching/NowWatching.tsx +6 -5
  351. package/src/components/Content/Card/Sliders/Styles/One.tsx +9 -6
  352. package/src/components/Content/Card/Sliders/Styles/Two.tsx +8 -5
  353. package/src/components/Content/Card/Styles/Five.tsx +5 -5
  354. package/src/components/Content/Card/Styles/Four.tsx +5 -5
  355. package/src/components/Content/Card/Styles/One.tsx +5 -5
  356. package/src/components/Content/Card/Styles/RotateInOut.tsx +5 -5
  357. package/src/components/Content/Card/Styles/Six.tsx +9 -6
  358. package/src/components/Content/Card/Styles/Three.tsx +5 -5
  359. package/src/components/Content/Card/Styles/TopTen.tsx +5 -5
  360. package/src/components/Content/Card/Styles/Two.tsx +5 -5
  361. package/src/components/Content/Card/components/CardPoster.tsx +6 -0
  362. package/src/components/Content/Card/components/RentOrBuyIcon.tsx +1 -1
  363. package/src/components/Content/Card/components/ShowAllButton.tsx +6 -1
  364. package/src/components/Content/Content.tsx +25 -5
  365. package/src/components/Content/Sections.tsx +2 -2
  366. package/src/components/ContentView/ContentView.tsx +112 -88
  367. package/src/components/ContentView/MoreContentList.tsx +5 -4
  368. package/src/components/ContentView/components/AboutSection.tsx +23 -3
  369. package/src/components/ContentView/components/CastCard.tsx +1 -1
  370. package/src/components/ContentView/components/EpisodeCard.tsx +21 -8
  371. package/src/components/ContentView/components/HeroBanner.tsx +55 -20
  372. package/src/components/ContentView/components/MiniInfo.tsx +193 -0
  373. package/src/components/ContentView/components/Title.tsx +17 -26
  374. package/src/components/ContentView/components/TrailerButton.tsx +6 -5
  375. package/src/components/Fallbacks/NoContentFallback.tsx +172 -0
  376. package/src/components/Fallbacks/NotFoundFallback.tsx +86 -0
  377. package/src/components/Fallbacks/index.ts +2 -0
  378. package/src/components/Headers/AppHeader.tsx +4 -4
  379. package/src/components/Headers/One.tsx +4 -4
  380. package/src/components/Headers/Three.tsx +4 -4
  381. package/src/components/Headers/Two.tsx +4 -4
  382. package/src/components/Input/InputOne.tsx +30 -7
  383. package/src/components/Input/InputTwo.tsx +4 -4
  384. package/src/components/Input/PhoneNumberInput.tsx +5 -5
  385. package/src/components/Logo/Logo.tsx +4 -4
  386. package/src/components/Search/One.tsx +10 -9
  387. package/src/components/Search/components/SearchCard.tsx +4 -4
  388. package/src/components/Settings/AppSettings.tsx +6 -6
  389. package/src/components/Subscription/SubOne.tsx +15 -16
  390. package/src/components/TabBar/One.tsx +10 -6
  391. package/src/components/TabBar/Three.tsx +4 -4
  392. package/src/components/TabBar/Two.tsx +9 -6
  393. package/src/components/Text/Text.tsx +26 -13
  394. package/src/components/User/DeviceSessions/DeviceSessions.tsx +6 -5
  395. package/src/components/User/ProfileUpdate/ProfileUpdate.tsx +10 -14
  396. package/src/components/User/WatchHistory/WatchHistory.tsx +5 -5
  397. package/src/components/User/WatchLater/WatchLater.tsx +7 -6
  398. package/src/components/User/components/UserAvatar.tsx +16 -10
  399. package/src/components/User/components/UserSection.tsx +5 -5
  400. package/src/components/View/View.tsx +2 -1
  401. package/src/components/common/AppStatusBar.tsx +51 -0
  402. package/src/components/index.ts +3 -1
  403. package/src/components/layout/SafeAreaWrapper.tsx +4 -4
  404. package/src/store/splashStore.ts +5 -5
  405. package/src/store/themeStore.ts +43 -0
  406. package/src/theme/ThemeProvider.tsx +39 -102
  407. package/src/theme/hook/index.ts +2 -0
  408. package/src/theme/hook/useInternalTheme.ts +83 -0
  409. package/src/theme/hook/useThemeStatusBar.ts +33 -0
  410. package/src/theme/index.ts +1 -7
  411. package/src/theme/themes.ts +40 -6
  412. package/src/types/content/content-view.types.ts +10 -3
  413. package/lib/module/components/Content/Card/components/NoContentFallback.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/components/Content/Card/components/NoContentFallback.d.ts +0 -17
  417. package/lib/typescript/src/components/Content/Card/components/NoContentFallback.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/components/Content/Card/components/NoContentFallback.tsx +0 -147
  421. package/src/theme/hook/useTheme.ts +0 -45
@@ -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}
@@ -1,41 +1,54 @@
1
- /**
2
- * @author Naresh Dhamu
3
- * @lastModified Tue 24 Jun 2025 at 04:33 PM
4
- */
5
-
6
1
  import React from 'react';
7
2
  import {
8
3
  Text as RNText,
9
4
  type TextProps as RNTextProps,
10
5
  type TextStyle,
11
6
  } from 'react-native';
12
- import { useTheme } from '../../theme/hook/useTheme';
7
+ import { useInternalTheme } from '../../theme/hook/useInternalTheme';
13
8
  import { RFValue } from 'react-native-responsive-fontsize';
9
+ import type { ThemeOverride } from '../../theme/themes';
14
10
 
15
11
  export interface TextProps extends RNTextProps {
16
12
  children: React.ReactNode;
17
- size?: number; // base size
13
+ type?: 'title' | 'subtitle' | 'body' | 'caption';
14
+ size?: number;
18
15
  color?: string;
19
16
  weight?: TextStyle['fontWeight'];
20
17
  align?: TextStyle['textAlign'];
21
18
  fontFamily?: string;
22
19
  numberOfLines?: number;
23
20
  allowFontScaling?: boolean;
21
+ theme?: ThemeOverride;
24
22
  }
25
23
 
26
24
  const Text: React.FC<TextProps> = ({
27
25
  children,
28
- size = 10,
26
+ type = 'body',
27
+ size,
29
28
  color,
30
- weight = '500',
29
+ weight,
31
30
  align = 'left',
32
31
  fontFamily,
33
32
  numberOfLines,
34
33
  allowFontScaling = false,
35
34
  style,
35
+ theme: overrideTheme,
36
36
  ...rest
37
37
  }) => {
38
- const { theme } = useTheme();
38
+ const { theme } = useInternalTheme(overrideTheme);
39
+
40
+ // Define default styles for each type
41
+ const typeStyles: Record<
42
+ string,
43
+ { size: number; weight: TextStyle['fontWeight']; color?: string }
44
+ > = {
45
+ title: { size: 18, weight: '700', color: theme.colors.textPrimary },
46
+ subtitle: { size: 14, weight: '500', color: theme.colors.textSecondary },
47
+ body: { size: 12, weight: '400', color: theme.colors.textPrimary },
48
+ caption: { size: 10, weight: '400', color: theme.colors.textSecondary },
49
+ };
50
+
51
+ const typeStyle = typeStyles[type] || typeStyles.body;
39
52
 
40
53
  return (
41
54
  <RNText
@@ -44,9 +57,9 @@ const Text: React.FC<TextProps> = ({
44
57
  numberOfLines={numberOfLines}
45
58
  style={[
46
59
  {
47
- color: color ?? theme.colors.textPrimary,
48
- fontSize: RFValue(size),
49
- fontWeight: weight,
60
+ color: color ?? typeStyle?.color,
61
+ fontSize: size ? RFValue(size) : RFValue(Number(typeStyle?.size)),
62
+ fontWeight: weight ?? typeStyle?.weight,
50
63
  textAlign: align,
51
64
  fontFamily,
52
65
  },
@@ -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,22 +124,18 @@ 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,
141
137
  {
142
- borderColor: colors.button,
138
+ borderColor: colors.primary,
143
139
  backgroundColor: colors.surfaceVariant,
144
140
  shadowColor: colors.shadow || colors.surface,
145
141
  },
@@ -149,7 +145,7 @@ export const ProfileUpdate = ({
149
145
  >
150
146
  <Camera
151
147
  size={moderateScale(13)}
152
- color={colors.button}
148
+ color={colors.primary}
153
149
  strokeWidth={2}
154
150
  />
155
151
  </TouchableOpacity>
@@ -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}
@@ -6,11 +6,12 @@ import React from 'react';
6
6
  import {
7
7
  View as RNView,
8
8
  type ViewProps as RNViewProps,
9
+ type StyleProp,
9
10
  type ViewStyle,
10
11
  } from 'react-native';
11
12
 
12
13
  export type ViewProps = RNViewProps & {
13
- style?: ViewStyle;
14
+ style?: StyleProp<ViewStyle> | undefined;
14
15
  backgroundColor?: string;
15
16
  };
16
17
 
@@ -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
+ };
@@ -3,7 +3,9 @@
3
3
  * @lastModified Sun 08 Jun 2025 at 03:23 PM
4
4
  */
5
5
 
6
- export * from './Button/PrimaryBtn';
6
+ export * from './Button';
7
+ export * from './Fallbacks';
8
+ export * from './Input/Input';
7
9
  export * from './Loader/Loader';
8
10
  export * from './Headers';
9
11
  export * from './Content/Content';
@@ -1,13 +1,13 @@
1
1
  import React, { useMemo } from 'react';
2
2
  import { StyleSheet, type ViewStyle } from 'react-native';
3
3
  import { SafeAreaView } from 'react-native-safe-area-context';
4
- import type { AppTheme } from '../../theme/themes';
5
- import { useTheme } from '../../theme/hook/useTheme';
4
+ import type { ThemeOverride } from '../../theme/themes';
5
+ import { useInternalTheme } from '../../theme/hook/useInternalTheme';
6
6
 
7
7
  type SafeAreaWrapperProps = {
8
8
  children: React.ReactNode;
9
9
  style?: ViewStyle;
10
- theme?: AppTheme;
10
+ theme?: ThemeOverride;
11
11
  edges?: ('top' | 'right' | 'bottom' | 'left')[];
12
12
  fallbackBackground?: string;
13
13
  };
@@ -19,7 +19,7 @@ export const SafeAreaWrapper: React.FC<SafeAreaWrapperProps> = ({
19
19
  edges = ['top'],
20
20
  fallbackBackground = '#fff',
21
21
  }) => {
22
- const { theme: appliedTheme } = useTheme(theme);
22
+ const { theme: appliedTheme } = useInternalTheme(theme);
23
23
 
24
24
  const containerStyle = useMemo(() => {
25
25
  return [
@@ -5,9 +5,9 @@
5
5
 
6
6
  import { create } from 'zustand';
7
7
  import { persist, createJSONStorage } from 'zustand/middleware';
8
- import { MMKV } from 'react-native-mmkv'; // Updated import
8
+ import { MMKV } from 'react-native-mmkv';
9
9
 
10
- const mmkv = new MMKV(); // Initialize MMKV instance
10
+ const mmkv = new MMKV();
11
11
 
12
12
  interface ImageState {
13
13
  localPath: string | null;
@@ -72,9 +72,9 @@ export const useSplashStore = create<SplashState>()(
72
72
  {
73
73
  name: 'splash-storage',
74
74
  storage: createJSONStorage(() => ({
75
- getItem: (name) => mmkv.getString(name) || null, // Updated to use MMKV getString
76
- setItem: (name, value) => mmkv.set(name, value), // Updated to use MMKV set
77
- removeItem: (name) => mmkv.delete(name), // Updated to use MMKV delete
75
+ getItem: (name) => mmkv.getString(name) || null,
76
+ setItem: (name, value) => mmkv.set(name, value),
77
+ removeItem: (name) => mmkv.delete(name),
78
78
  })),
79
79
  partialize: (state) => ({
80
80
  logo: {
@@ -0,0 +1,43 @@
1
+ /**
2
+ * @author Naresh Dhamu
3
+ * @lastModified Thu 12 Jun 2025 at 07:57 PM
4
+ */
5
+
6
+ import { create } from 'zustand';
7
+ import { persist, createJSONStorage } from 'zustand/middleware';
8
+ import { MMKV } from 'react-native-mmkv';
9
+
10
+ const storage = new MMKV();
11
+
12
+ interface ThemeState {
13
+ isDarkMode: boolean;
14
+ themeMode: 'dark' | 'light' | 'system';
15
+ setIsDarkMode: (value: boolean) => void;
16
+ setTheme: (mode: 'dark' | 'light' | 'system') => void;
17
+ }
18
+
19
+ export const useInternalThemeStore = create(
20
+ persist<ThemeState>(
21
+ (set, _get) => ({
22
+ isDarkMode: false,
23
+ themeMode: 'system',
24
+
25
+ setIsDarkMode: (value: boolean) => {
26
+ const mode = value ? 'dark' : 'light';
27
+ set({ isDarkMode: value, themeMode: mode });
28
+ },
29
+
30
+ setTheme: (mode: 'dark' | 'light' | 'system') => {
31
+ set({ themeMode: mode, isDarkMode: mode === 'dark' });
32
+ },
33
+ }),
34
+ {
35
+ name: 'theme-storage',
36
+ storage: createJSONStorage(() => ({
37
+ getItem: (key: string) => storage.getString(key) ?? null,
38
+ setItem: (key: string, value: string) => storage.set(key, value),
39
+ removeItem: (key: string) => storage.delete(key),
40
+ })),
41
+ }
42
+ )
43
+ );