@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
@@ -4,7 +4,7 @@
4
4
  */
5
5
 
6
6
  import { useState, useMemo, useCallback } from 'react';
7
- import { View, StyleSheet, Animated, Text } from 'react-native';
7
+ import { View, StyleSheet, Animated } from 'react-native';
8
8
  import LinearGradient from 'react-native-linear-gradient';
9
9
  import SkeletonPlaceholder from 'react-native-skeleton-placeholder';
10
10
  import { scale, verticalScale } from 'react-native-size-matters';
@@ -17,6 +17,8 @@ import MenuBtn from '../../Button/MenuBtn';
17
17
  import type { HeroBannerProps } from '../../../types/content/content-view.types';
18
18
  import { RFValue } from 'react-native-responsive-fontsize';
19
19
  import RentOrBuyIcon from '../../Content/Card/components/RentOrBuyIcon';
20
+ import { useInternalTheme } from '../../../theme/hook';
21
+ import { Text } from '../../Text';
20
22
 
21
23
  const SKELETON_CIRCLE_SIZE = scale(50);
22
24
  const BANNER_HEIGHT = verticalScale(200);
@@ -26,7 +28,7 @@ const BACK_BTN_SIZE = scale(35);
26
28
  export const HeroBanner = ({
27
29
  backgroundImage,
28
30
  title,
29
- theme,
31
+ theme: themeOverride,
30
32
  isLoading = false,
31
33
  onPressPlay,
32
34
  onBackPress,
@@ -36,6 +38,7 @@ export const HeroBanner = ({
36
38
  menuActions,
37
39
  content_offering_type,
38
40
  }: HeroBannerProps) => {
41
+ const { theme } = useInternalTheme(themeOverride);
39
42
  const [hasImageLoaded, setHasImageLoaded] = useState(false);
40
43
  const [imageLoadError, setImageLoadError] = useState(false);
41
44
 
@@ -128,6 +131,14 @@ export const HeroBanner = ({
128
131
  zIndex: 4,
129
132
  backgroundColor: theme.colors.background,
130
133
  },
134
+ badge: {
135
+ position: 'absolute',
136
+ bottom: verticalScale(20),
137
+ left: scale(10),
138
+ paddingHorizontal: scale(8),
139
+ paddingVertical: scale(4),
140
+ borderRadius: scale(8),
141
+ },
131
142
  }),
132
143
  [theme]
133
144
  );
@@ -154,7 +165,7 @@ export const HeroBanner = ({
154
165
  : (renderButtons?.back?.() ??
155
166
  (onBackPress && (
156
167
  <BackBtn
157
- theme={theme}
168
+ theme={themeOverride}
158
169
  onPress={onBackPress}
159
170
  style={styles.defaultBackBtn}
160
171
  size={scale(20)}
@@ -181,7 +192,7 @@ export const HeroBanner = ({
181
192
  : menuActions &&
182
193
  (renderButtons?.menu?.() ?? (
183
194
  <MenuBtn
184
- theme={theme}
195
+ theme={themeOverride}
185
196
  style={styles.defaultMenuBtn}
186
197
  actions={menuActions}
187
198
  />
@@ -190,33 +201,53 @@ export const HeroBanner = ({
190
201
  {/* Gradient Overlay */}
191
202
  <LinearGradient
192
203
  colors={theme.colors.heroBannerGradient}
193
- style={[StyleSheet.absoluteFill, { zIndex: 3 }]}
204
+ style={[StyleSheet.absoluteFill, { zIndex: 1 }]}
194
205
  locations={GRADIENT_LOCATIONS}
195
206
  />
196
207
 
197
208
  {/* Background Image */}
198
209
  {!isLoading && (
199
- <View style={styles.imageContainer}>
210
+ <>
211
+ <View style={styles.imageContainer}>
212
+ <FastImage
213
+ style={StyleSheet.absoluteFillObject}
214
+ source={{
215
+ uri: backgroundImage,
216
+ cache: FastImage.cacheControl.immutable,
217
+ }}
218
+ resizeMode={FastImage.resizeMode.cover}
219
+ onLoad={() => setHasImageLoaded(true)}
220
+ onError={() => setImageLoadError(true)}
221
+ accessibilityLabel={`Background image for ${title}`}
222
+ />
223
+ </View>
224
+ {/* Badge above gradient */}
225
+ {content_offering_type && content_offering_type === 'FREE' && (
226
+ <View
227
+ style={[
228
+ styles.badge,
229
+ { backgroundColor: theme.colors.primary, zIndex: 2 },
230
+ ]}
231
+ >
232
+ <Text
233
+ type="caption"
234
+ style={{ color: theme.colors.onPrimary, fontWeight: '600' }}
235
+ theme={themeOverride}
236
+ >
237
+ {content_offering_type}
238
+ </Text>
239
+ </View>
240
+ )}
241
+
200
242
  {content_offering_type && (
201
243
  <RentOrBuyIcon
202
244
  size={30}
203
- style={styles.rentOrBuyIcon}
245
+ theme={theme}
246
+ style={[styles.rentOrBuyIcon, { zIndex: 2 }]}
204
247
  content_offering_type={content_offering_type}
205
248
  />
206
249
  )}
207
-
208
- <FastImage
209
- style={StyleSheet.absoluteFillObject}
210
- source={{
211
- uri: backgroundImage,
212
- cache: FastImage.cacheControl.immutable,
213
- }}
214
- resizeMode={FastImage.resizeMode.cover}
215
- onLoad={() => setHasImageLoaded(true)}
216
- onError={() => setImageLoadError(true)}
217
- accessibilityLabel={`Background image for ${title}`}
218
- />
219
- </View>
250
+ </>
220
251
  )}
221
252
 
222
253
  {/* Skeleton UI */}
@@ -269,6 +300,8 @@ export const HeroBanner = ({
269
300
  <Animated.View style={styles.centeredContent}>
270
301
  {renderButtons?.play?.() ?? (
271
302
  <PlayButton
303
+ color={theme.colors.buttonText}
304
+ backgroundColor={theme.colors.button}
272
305
  onPress={() => handlePressPlay({ is_trailer: false })}
273
306
  />
274
307
  )}
@@ -277,6 +310,8 @@ export const HeroBanner = ({
277
310
  <Animated.View style={styles.trailerButtonWrapper}>
278
311
  {renderButtons?.trailer?.() ?? (
279
312
  <TrailerButton
313
+ color={theme.colors.buttonText}
314
+ backgroundColor={theme.colors.button}
280
315
  onPress={() => handlePressPlay({ is_trailer: true })}
281
316
  />
282
317
  )}
@@ -0,0 +1,193 @@
1
+ import React from 'react';
2
+ import {
3
+ View,
4
+ StyleSheet,
5
+ type StyleProp,
6
+ type ViewStyle,
7
+ type TextStyle,
8
+ } from 'react-native';
9
+ import SkeletonPlaceholder from 'react-native-skeleton-placeholder';
10
+ import { scale } from 'react-native-size-matters';
11
+ import { Text } from '../../Text';
12
+ import type { IContentData } from '../../../types';
13
+ import type { ThemeOverride } from '../../../theme/themes';
14
+ import { RFValue } from 'react-native-responsive-fontsize';
15
+ import { useInternalTheme } from '../../../theme/hook';
16
+
17
+ type Props = {
18
+ content?: IContentData;
19
+ theme?: ThemeOverride;
20
+ isLoading?: boolean;
21
+ style?: {
22
+ container?: StyleProp<ViewStyle>;
23
+ row?: StyleProp<ViewStyle>;
24
+ title?: StyleProp<TextStyle>;
25
+ subTitle?: StyleProp<TextStyle>;
26
+ badge?: StyleProp<ViewStyle>;
27
+ price?: StyleProp<TextStyle>;
28
+ rating?: StyleProp<TextStyle>;
29
+ };
30
+ };
31
+
32
+ export function formatCurrency(
33
+ amount: number,
34
+ currency: string = 'INR'
35
+ ): string {
36
+ return new Intl.NumberFormat('en-IN', {
37
+ style: 'currency',
38
+ currency,
39
+ minimumFractionDigits: 0,
40
+ maximumFractionDigits: 2,
41
+ }).format(amount);
42
+ }
43
+
44
+ export const MiniInfo = ({
45
+ content,
46
+ theme,
47
+ isLoading = false,
48
+ style,
49
+ }: Props): React.ReactElement | null => {
50
+ const { theme: appliedTheme } = useInternalTheme(theme);
51
+
52
+ if (isLoading) {
53
+ // Skeleton Placeholder
54
+ return (
55
+ <View
56
+ style={[
57
+ styles.container,
58
+ style?.container,
59
+ {
60
+ backgroundColor: appliedTheme.colors.background,
61
+ borderColor: appliedTheme.colors.border,
62
+ },
63
+ ]}
64
+ >
65
+ <SkeletonPlaceholder
66
+ backgroundColor={appliedTheme.colors.skeletonBaseColor}
67
+ highlightColor={appliedTheme.colors.skeletonHighlightColor}
68
+ >
69
+ <SkeletonPlaceholder.Item
70
+ flexDirection="row"
71
+ alignItems="center"
72
+ marginBottom={scale(6)}
73
+ >
74
+ <SkeletonPlaceholder.Item
75
+ width={scale(100)}
76
+ height={scale(20)}
77
+ borderRadius={scale(4)}
78
+ />
79
+ <SkeletonPlaceholder.Item
80
+ width={scale(60)}
81
+ height={scale(20)}
82
+ borderRadius={scale(4)}
83
+ marginLeft={scale(8)}
84
+ />
85
+ </SkeletonPlaceholder.Item>
86
+ <SkeletonPlaceholder.Item
87
+ width={scale(120)}
88
+ height={scale(16)}
89
+ borderRadius={scale(4)}
90
+ marginBottom={scale(4)}
91
+ />
92
+ <SkeletonPlaceholder.Item
93
+ width={scale(80)}
94
+ height={scale(14)}
95
+ borderRadius={scale(4)}
96
+ />
97
+ </SkeletonPlaceholder>
98
+ </View>
99
+ );
100
+ }
101
+
102
+ if (!content) return null;
103
+
104
+ const { content_offering_type, price, is_buy_or_rent, rent_duration } =
105
+ content;
106
+
107
+ if (content_offering_type !== 'BUY_OR_RENT') return null;
108
+
109
+ const renderBadge = () => (
110
+ <View
111
+ style={[
112
+ styles.badge,
113
+ {
114
+ backgroundColor: appliedTheme.colors.primary,
115
+ shadowColor: appliedTheme.colors.textPrimary,
116
+ },
117
+ style?.badge,
118
+ ]}
119
+ >
120
+ <Text
121
+ type="caption"
122
+ style={{ color: appliedTheme.colors.onPrimary, fontWeight: '600' }}
123
+ theme={theme}
124
+ >
125
+ {content_offering_type === 'BUY_OR_RENT' ? 'BUY OR RENT' : 'BUY'}
126
+ </Text>
127
+ </View>
128
+ );
129
+
130
+ const renderPriceInfo = () => {
131
+ if (!price) return null;
132
+ const text =
133
+ is_buy_or_rent === 'BUY'
134
+ ? `Price: ${formatCurrency(price)}`
135
+ : `Rent: ${formatCurrency(price)} for ${rent_duration ?? 1} day(s)`;
136
+
137
+ return (
138
+ <Text
139
+ type="subtitle"
140
+ style={[
141
+ styles.subTitle,
142
+ { color: appliedTheme.colors.textPrimary },
143
+ style?.price,
144
+ ]}
145
+ theme={theme}
146
+ >
147
+ {text}
148
+ </Text>
149
+ );
150
+ };
151
+
152
+ return (
153
+ <View
154
+ style={[
155
+ styles.container,
156
+ style?.container,
157
+ {
158
+ backgroundColor: appliedTheme.colors.background,
159
+ borderColor: appliedTheme.colors.border,
160
+ },
161
+ ]}
162
+ >
163
+ <View style={styles.headerRow}>{renderBadge()}</View>
164
+ {renderPriceInfo()}
165
+ </View>
166
+ );
167
+ };
168
+
169
+ const styles = StyleSheet.create({
170
+ container: {
171
+ borderWidth: 1,
172
+ borderRadius: scale(14),
173
+ padding: scale(10),
174
+ marginHorizontal: scale(6),
175
+ marginVertical: scale(6),
176
+ },
177
+ headerRow: {
178
+ flexDirection: 'row',
179
+ justifyContent: 'space-between',
180
+ alignItems: 'center',
181
+ marginBottom: scale(6),
182
+ },
183
+ badge: {
184
+ paddingHorizontal: scale(10),
185
+ paddingVertical: scale(5),
186
+ borderRadius: scale(10),
187
+ },
188
+ subTitle: {
189
+ fontSize: RFValue(12),
190
+ marginTop: scale(3),
191
+ fontWeight: '500',
192
+ },
193
+ });
@@ -78,26 +78,26 @@ export const Title = ({
78
78
 
79
79
  return (
80
80
  <View style={StyleSheet.flatten([styles.container, style?.container])}>
81
- <View style={styles.row}>
81
+ <View>
82
82
  <Text
83
83
  color={theme.colors.textPrimary}
84
84
  style={StyleSheet.flatten([styles.title, style?.title])}
85
- numberOfLines={1}
85
+ // numberOfLines={1}
86
86
  ellipsizeMode="tail"
87
87
  >
88
88
  {title}
89
+ {!!subtitle && (
90
+ <Text
91
+ color={theme.colors.textSecondary}
92
+ style={StyleSheet.flatten([styles.subTitle, style?.subTitle])}
93
+ // numberOfLines={1}
94
+ ellipsizeMode="tail"
95
+ >
96
+ {' '}
97
+ {`: ${subtitle}`}
98
+ </Text>
99
+ )}
89
100
  </Text>
90
-
91
- {!!subtitle && (
92
- <Text
93
- color={theme.colors.textSecondary}
94
- style={StyleSheet.flatten([styles.subTitle, style?.subTitle])}
95
- numberOfLines={1}
96
- ellipsizeMode="tail"
97
- >
98
- {`: ${subtitle}`}
99
- </Text>
100
- )}
101
101
  </View>
102
102
 
103
103
  {!!rating && (
@@ -117,25 +117,16 @@ const styles = StyleSheet.create({
117
117
  paddingHorizontal: scale(12),
118
118
  marginTop: scale(5),
119
119
  },
120
- row: {
121
- flexDirection: 'row',
122
- alignItems: 'center',
123
- maxWidth: '100%',
124
- },
125
120
  title: {
126
- fontSize: RFValue(17),
121
+ fontSize: RFValue(15),
127
122
  fontWeight: 'bold',
128
- flexShrink: 1,
129
- maxWidth: '60%',
130
123
  },
131
124
  subTitle: {
132
- fontSize: RFValue(17),
133
- marginLeft: scale(4),
134
- flexShrink: 1,
135
- maxWidth: '40%',
125
+ fontSize: RFValue(15),
126
+ marginLeft: scale(6),
136
127
  },
137
128
  rating: {
138
- fontSize: RFValue(13),
129
+ fontSize: RFValue(12),
139
130
  marginTop: scale(4),
140
131
  },
141
132
  });
@@ -18,7 +18,7 @@ interface Props {
18
18
  onPress?: (event: GestureResponderEvent) => void;
19
19
  label?: string;
20
20
  iconSize?: number;
21
- iconColor?: string;
21
+ color?: string;
22
22
  backgroundColor?: string;
23
23
  textStyle?: TextStyle;
24
24
  style?: ViewStyle;
@@ -28,7 +28,7 @@ export const TrailerButton = ({
28
28
  onPress,
29
29
  label = 'Watch Trailer',
30
30
  iconSize = scale(18),
31
- iconColor = '#000',
31
+ color = '#000',
32
32
  backgroundColor = '#FFD700',
33
33
  textStyle,
34
34
  style,
@@ -39,8 +39,10 @@ export const TrailerButton = ({
39
39
  activeOpacity={0.8}
40
40
  style={[styles.button, { backgroundColor }, style]}
41
41
  >
42
- <PlayCircle size={iconSize} color={iconColor} />
43
- <Text style={[styles.text, textStyle]}> {label}</Text>
42
+ <PlayCircle size={iconSize} color={color} />
43
+ <Text style={[styles.text, textStyle]} color={color}>
44
+ {label}
45
+ </Text>
44
46
  </TouchableOpacity>
45
47
  );
46
48
  };
@@ -54,7 +56,6 @@ const styles = StyleSheet.create({
54
56
  alignItems: 'center',
55
57
  },
56
58
  text: {
57
- color: '#000',
58
59
  fontWeight: '600',
59
60
  fontSize: scale(12),
60
61
  marginLeft: scale(2),
@@ -0,0 +1,172 @@
1
+ /**
2
+ * @author Naresh Dhamu
3
+ * @lastModified Sat 25 Oct 2025 at 11:15 AM
4
+ */
5
+
6
+ import { useCallback } from 'react';
7
+ import {
8
+ TouchableOpacity,
9
+ StyleSheet,
10
+ ActivityIndicator,
11
+ type StyleProp,
12
+ type ViewStyle,
13
+ } from 'react-native';
14
+ import Animated, {
15
+ useSharedValue,
16
+ useAnimatedStyle,
17
+ withSpring,
18
+ } from 'react-native-reanimated';
19
+ import { scale, verticalScale } from 'react-native-size-matters';
20
+ import { Text } from '../Text';
21
+ import { useInternalTheme } from '../../theme/hook/useInternalTheme';
22
+ import type { ThemeOverride } from '../../theme/themes';
23
+ import { RFValue } from 'react-native-responsive-fontsize';
24
+ import { AlertCircle } from 'lucide-react-native';
25
+
26
+ export type NoContentFallbackProps = {
27
+ message?: string;
28
+ retryText?: string;
29
+ onRetry?: () => void;
30
+ isLoading?: boolean;
31
+ theme?: ThemeOverride;
32
+ style?: StyleProp<ViewStyle>;
33
+ };
34
+
35
+ export const NoContentFallback = ({
36
+ message = 'No content available right now.\nPlease check back later.',
37
+ retryText = 'Try Again',
38
+ onRetry,
39
+ isLoading = false,
40
+ theme,
41
+ style,
42
+ }: NoContentFallbackProps) => {
43
+ const { theme: appliedTheme } = useInternalTheme(theme);
44
+ const scaleValue = useSharedValue(1);
45
+
46
+ const handlePressIn = useCallback(() => {
47
+ if (isLoading) return; // disable press animation during loading
48
+ scaleValue.value = withSpring(0.95, { damping: 15, stiffness: 200 });
49
+ }, [scaleValue, isLoading]);
50
+
51
+ const handlePressOut = useCallback(() => {
52
+ if (isLoading) return;
53
+ scaleValue.value = withSpring(1, { damping: 15, stiffness: 200 });
54
+ }, [scaleValue, isLoading]);
55
+
56
+ const animatedButtonStyle = useAnimatedStyle(() => ({
57
+ transform: [{ scale: scaleValue.value }],
58
+ }));
59
+
60
+ return (
61
+ <Animated.View
62
+ style={[styles.container, style]}
63
+ accessibilityLabel="No content available"
64
+ accessibilityHint="Check back later or try again"
65
+ >
66
+ <AlertCircle
67
+ size={RFValue(63)}
68
+ color={
69
+ appliedTheme?.colors?.textPrimary ??
70
+ appliedTheme?.colors?.textSecondary ??
71
+ '#999'
72
+ }
73
+ style={{ marginBottom: scale(20) }}
74
+ />
75
+
76
+ <Text
77
+ style={[styles.message, { color: appliedTheme.colors.textSecondary }]}
78
+ >
79
+ {message}
80
+ </Text>
81
+
82
+ {onRetry && (
83
+ <TouchableOpacity
84
+ onPress={!isLoading ? onRetry : undefined}
85
+ onPressIn={handlePressIn}
86
+ onPressOut={handlePressOut}
87
+ activeOpacity={0.7}
88
+ disabled={isLoading}
89
+ style={[
90
+ styles.retryButton,
91
+ {
92
+ backgroundColor: isLoading
93
+ ? appliedTheme.colors.surfaceDisabled
94
+ : appliedTheme.colors.primary,
95
+ borderColor: appliedTheme.colors.outline,
96
+ opacity: isLoading ? 0.8 : 1,
97
+ },
98
+ ]}
99
+ accessibilityLabel={retryText}
100
+ accessibilityRole="button"
101
+ >
102
+ <Animated.View
103
+ style={[
104
+ animatedButtonStyle,
105
+ {
106
+ flexDirection: 'row',
107
+ alignItems: 'center',
108
+ justifyContent: 'center',
109
+ },
110
+ ]}
111
+ >
112
+ {isLoading ? (
113
+ <>
114
+ <ActivityIndicator
115
+ size="small"
116
+ color={appliedTheme.colors.onPrimary}
117
+ style={{ marginRight: scale(8) }}
118
+ />
119
+ <Text
120
+ style={[
121
+ styles.retryText,
122
+ { color: appliedTheme.colors.onPrimary },
123
+ ]}
124
+ >
125
+ Loading...
126
+ </Text>
127
+ </>
128
+ ) : (
129
+ <Text
130
+ style={[
131
+ styles.retryText,
132
+ { color: appliedTheme.colors.onPrimary },
133
+ ]}
134
+ >
135
+ {retryText}
136
+ </Text>
137
+ )}
138
+ </Animated.View>
139
+ </TouchableOpacity>
140
+ )}
141
+ </Animated.View>
142
+ );
143
+ };
144
+
145
+ const styles = StyleSheet.create({
146
+ container: {
147
+ flex: 1,
148
+ alignItems: 'center',
149
+ justifyContent: 'center',
150
+ paddingHorizontal: scale(20),
151
+ paddingVertical: verticalScale(40),
152
+ },
153
+ message: {
154
+ fontSize: RFValue(15),
155
+ textAlign: 'center',
156
+ fontWeight: '500',
157
+ lineHeight: verticalScale(22),
158
+ marginBottom: verticalScale(20),
159
+ },
160
+ retryButton: {
161
+ paddingHorizontal: scale(18),
162
+ paddingVertical: verticalScale(10),
163
+ borderRadius: scale(8),
164
+ borderWidth: scale(1),
165
+ alignItems: 'center',
166
+ },
167
+ retryText: {
168
+ fontSize: RFValue(13),
169
+ fontWeight: '600',
170
+ textAlign: 'center',
171
+ },
172
+ });
@@ -0,0 +1,86 @@
1
+ /**
2
+ * @author Naresh Dhamu
3
+ * @lastModified Tue 01 Jul 2025 at 02:28 PM
4
+ */
5
+
6
+ import React from 'react';
7
+ import { StyleSheet } from 'react-native';
8
+ import { scale } from 'react-native-size-matters';
9
+ import { Button } from '../Button';
10
+ import type { ThemeOverride } from '../../theme';
11
+ import { View } from '../View';
12
+ import { Text } from '../Text';
13
+ import { AlertCircle } from 'lucide-react-native';
14
+ import { useInternalTheme } from '../../theme/hook';
15
+
16
+ interface NotFoundFallbackProps {
17
+ title?: string;
18
+ subtitle?: string;
19
+ content?: React.ReactNode;
20
+ onPressBack?: () => void;
21
+ backButtonText?: string;
22
+ theme?: ThemeOverride;
23
+ iconSize?: number;
24
+ iconColor?: string;
25
+ }
26
+
27
+ export const NotFoundFallback: React.FC<NotFoundFallbackProps> = ({
28
+ title = 'Content Not Found',
29
+ subtitle = 'We couldn’t find anything to show here. Please check back later.',
30
+ content,
31
+ onPressBack,
32
+ backButtonText = 'Go Back',
33
+ theme,
34
+ iconSize = scale(60),
35
+ iconColor,
36
+ }) => {
37
+ const { theme: appliedTheme } = useInternalTheme(theme);
38
+ if (content) return <>{content}</>;
39
+
40
+ return (
41
+ <View style={styles.container}>
42
+ <AlertCircle
43
+ size={iconSize}
44
+ color={iconColor ?? appliedTheme?.colors?.textSecondary ?? '#999'}
45
+ style={{ marginBottom: scale(20) }}
46
+ />
47
+
48
+ <Text style={styles.title} type="title" theme={theme}>
49
+ {title}
50
+ </Text>
51
+ <Text style={styles.subtitle} type="subtitle" theme={theme}>
52
+ {subtitle}
53
+ </Text>
54
+
55
+ {onPressBack && (
56
+ <Button.Primary
57
+ theme={theme}
58
+ title={backButtonText}
59
+ onPress={onPressBack}
60
+ />
61
+ )}
62
+ </View>
63
+ );
64
+ };
65
+
66
+ const styles = StyleSheet.create({
67
+ container: {
68
+ flex: 1,
69
+ justifyContent: 'center',
70
+ alignItems: 'center',
71
+ paddingHorizontal: scale(30),
72
+ paddingBottom: scale(30),
73
+ backgroundColor: 'transparent',
74
+ },
75
+ title: {
76
+ fontSize: scale(18),
77
+ fontWeight: '700',
78
+ marginBottom: scale(8),
79
+ textAlign: 'center',
80
+ },
81
+ subtitle: {
82
+ fontSize: scale(14),
83
+ textAlign: 'center',
84
+ marginBottom: scale(20),
85
+ },
86
+ });