@zezosoft/zezo-ott-react-native-ui-kit 1.0.0 → 1.0.2

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 (351) hide show
  1. package/README.md +1 -1
  2. package/lib/module/components/Account/Account.js +7 -6
  3. package/lib/module/components/Account/Account.js.map +1 -1
  4. package/lib/module/components/Auth/ForgotPassword/ForgotPassword.js +39 -27
  5. package/lib/module/components/Auth/ForgotPassword/ForgotPassword.js.map +1 -1
  6. package/lib/module/components/Auth/Login/LoginWithEmail.js +39 -25
  7. package/lib/module/components/Auth/Login/LoginWithEmail.js.map +1 -1
  8. package/lib/module/components/Auth/Login/LoginWithPhone.js +34 -25
  9. package/lib/module/components/Auth/Login/LoginWithPhone.js.map +1 -1
  10. package/lib/module/components/Auth/OTP/OTP.js +61 -42
  11. package/lib/module/components/Auth/OTP/OTP.js.map +1 -1
  12. package/lib/module/components/Auth/SignUp/SignUp.js +41 -26
  13. package/lib/module/components/Auth/SignUp/SignUp.js.map +1 -1
  14. package/lib/module/components/Auth/SplashScreen/SplashScreen.js +132 -0
  15. package/lib/module/components/Auth/SplashScreen/SplashScreen.js.map +1 -0
  16. package/lib/module/components/Auth/SplashScreen/components/SplashImage/SplashImage.js +61 -0
  17. package/lib/module/components/Auth/SplashScreen/components/SplashImage/SplashImage.js.map +1 -0
  18. package/lib/module/components/{SplashScreen → Auth/SplashScreen}/components/SplashLottie/SplashLottie.js +8 -17
  19. package/lib/module/components/Auth/SplashScreen/components/SplashLottie/SplashLottie.js.map +1 -0
  20. package/lib/module/components/{SplashScreen → Auth/SplashScreen}/components/SplashVideo/SplashVideo.js +25 -11
  21. package/lib/module/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.js.map +1 -0
  22. package/lib/module/components/Auth/index.js +3 -1
  23. package/lib/module/components/Auth/index.js.map +1 -1
  24. package/lib/module/components/BackgroundLayout/BackgroundLayout.js +77 -57
  25. package/lib/module/components/BackgroundLayout/BackgroundLayout.js.map +1 -1
  26. package/lib/module/components/BlogView/BlogView.js +28 -9
  27. package/lib/module/components/BlogView/BlogView.js.map +1 -1
  28. package/lib/module/components/Button/BackBtn.js +1 -1
  29. package/lib/module/components/Button/BackBtn.js.map +1 -1
  30. package/lib/module/components/Button/MenuBtn.js +5 -3
  31. package/lib/module/components/Button/MenuBtn.js.map +1 -1
  32. package/lib/module/components/Button/PrimaryBtn.js +3 -2
  33. package/lib/module/components/Button/PrimaryBtn.js.map +1 -1
  34. package/lib/module/components/Button/TextButton.js +3 -2
  35. package/lib/module/components/Button/TextButton.js.map +1 -1
  36. package/lib/module/components/Content/Card/Category/Category.js +3 -2
  37. package/lib/module/components/Content/Card/Category/Category.js.map +1 -1
  38. package/lib/module/components/Content/Card/NowWatching/NowWatching.js +10 -7
  39. package/lib/module/components/Content/Card/NowWatching/NowWatching.js.map +1 -1
  40. package/lib/module/components/Content/Card/Sliders/Styles/One.js +6 -4
  41. package/lib/module/components/Content/Card/Sliders/Styles/One.js.map +1 -1
  42. package/lib/module/components/Content/Card/Sliders/Styles/Two.js +3 -2
  43. package/lib/module/components/Content/Card/Sliders/Styles/Two.js.map +1 -1
  44. package/lib/module/components/Content/Card/Sliders/index.js +1 -1
  45. package/lib/module/components/Content/Card/Sliders/index.js.map +1 -1
  46. package/lib/module/components/Content/Card/Styles/Five.js +7 -6
  47. package/lib/module/components/Content/Card/Styles/Five.js.map +1 -1
  48. package/lib/module/components/Content/Card/Styles/Four.js +9 -7
  49. package/lib/module/components/Content/Card/Styles/Four.js.map +1 -1
  50. package/lib/module/components/Content/Card/Styles/One.js +33 -70
  51. package/lib/module/components/Content/Card/Styles/One.js.map +1 -1
  52. package/lib/module/components/Content/Card/Styles/RotateInOut.js +6 -5
  53. package/lib/module/components/Content/Card/Styles/RotateInOut.js.map +1 -1
  54. package/lib/module/components/Content/Card/Styles/Six.js +7 -5
  55. package/lib/module/components/Content/Card/Styles/Six.js.map +1 -1
  56. package/lib/module/components/Content/Card/Styles/Three.js +6 -5
  57. package/lib/module/components/Content/Card/Styles/Three.js.map +1 -1
  58. package/lib/module/components/Content/Card/Styles/TopTen.js +10 -12
  59. package/lib/module/components/Content/Card/Styles/TopTen.js.map +1 -1
  60. package/lib/module/components/Content/Card/Styles/Two.js +8 -6
  61. package/lib/module/components/Content/Card/Styles/Two.js.map +1 -1
  62. package/lib/module/components/Content/Card/components/CardPoster.js +17 -9
  63. package/lib/module/components/Content/Card/components/CardPoster.js.map +1 -1
  64. package/lib/module/components/Content/Card/components/NavigateToMore.js +4 -3
  65. package/lib/module/components/Content/Card/components/NavigateToMore.js.map +1 -1
  66. package/lib/module/components/Content/Card/components/NoContentFallback.js +5 -4
  67. package/lib/module/components/Content/Card/components/NoContentFallback.js.map +1 -1
  68. package/lib/module/components/Content/Card/components/ThumbnailCard.js +2 -1
  69. package/lib/module/components/Content/Card/components/ThumbnailCard.js.map +1 -1
  70. package/lib/module/components/Content/Content.js +21 -7
  71. package/lib/module/components/Content/Content.js.map +1 -1
  72. package/lib/module/components/Content/Sections.js +1 -1
  73. package/lib/module/components/Content/Sections.js.map +1 -1
  74. package/lib/module/components/ContentView/ContentView.js +8 -6
  75. package/lib/module/components/ContentView/ContentView.js.map +1 -1
  76. package/lib/module/components/ContentView/MoreContentList.js +211 -0
  77. package/lib/module/components/ContentView/MoreContentList.js.map +1 -0
  78. package/lib/module/components/ContentView/components/AboutSection.js +5 -4
  79. package/lib/module/components/ContentView/components/AboutSection.js.map +1 -1
  80. package/lib/module/components/ContentView/components/CastCard.js +5 -4
  81. package/lib/module/components/ContentView/components/CastCard.js.map +1 -1
  82. package/lib/module/components/ContentView/components/EpisodeCard.js +23 -3
  83. package/lib/module/components/ContentView/components/EpisodeCard.js.map +1 -1
  84. package/lib/module/components/ContentView/components/GenreTags.js +2 -1
  85. package/lib/module/components/ContentView/components/GenreTags.js.map +1 -1
  86. package/lib/module/components/ContentView/components/HeroBanner.js +14 -5
  87. package/lib/module/components/ContentView/components/HeroBanner.js.map +1 -1
  88. package/lib/module/components/ContentView/components/Title.js +4 -3
  89. package/lib/module/components/ContentView/components/Title.js.map +1 -1
  90. package/lib/module/components/ContentView/index.js +1 -0
  91. package/lib/module/components/ContentView/index.js.map +1 -1
  92. package/lib/module/components/Headers/AppHeader.js +20 -25
  93. package/lib/module/components/Headers/AppHeader.js.map +1 -1
  94. package/lib/module/components/Headers/One.js +1 -1
  95. package/lib/module/components/Headers/Three.js +5 -3
  96. package/lib/module/components/Headers/Three.js.map +1 -1
  97. package/lib/module/components/Headers/Two.js +5 -3
  98. package/lib/module/components/Headers/Two.js.map +1 -1
  99. package/lib/module/components/Input/InputOne.js +6 -4
  100. package/lib/module/components/Input/InputOne.js.map +1 -1
  101. package/lib/module/components/Input/InputTwo.js +5 -4
  102. package/lib/module/components/Input/InputTwo.js.map +1 -1
  103. package/lib/module/components/Input/PhoneNumberInput.js +12 -11
  104. package/lib/module/components/Input/PhoneNumberInput.js.map +1 -1
  105. package/lib/module/components/Keyboard/HideKeyboard.js +40 -12
  106. package/lib/module/components/Keyboard/HideKeyboard.js.map +1 -1
  107. package/lib/module/components/Logo/Logo.js +2 -1
  108. package/lib/module/components/Logo/Logo.js.map +1 -1
  109. package/lib/module/components/Search/One.js +6 -4
  110. package/lib/module/components/Search/One.js.map +1 -1
  111. package/lib/module/components/Search/components/RecentSearchesSection.js +10 -9
  112. package/lib/module/components/Search/components/RecentSearchesSection.js.map +1 -1
  113. package/lib/module/components/Search/components/SearchCard.js +6 -5
  114. package/lib/module/components/Search/components/SearchCard.js.map +1 -1
  115. package/lib/module/components/Settings/AppSettings.js +5 -4
  116. package/lib/module/components/Settings/AppSettings.js.map +1 -1
  117. package/lib/module/components/Subscription/SubOne.js +16 -15
  118. package/lib/module/components/Subscription/SubOne.js.map +1 -1
  119. package/lib/module/components/TabBar/One.js +5 -3
  120. package/lib/module/components/TabBar/One.js.map +1 -1
  121. package/lib/module/components/TabBar/Three.js +18 -14
  122. package/lib/module/components/TabBar/Three.js.map +1 -1
  123. package/lib/module/components/TabBar/Two.js +4 -2
  124. package/lib/module/components/TabBar/Two.js.map +1 -1
  125. package/lib/module/components/Text/Text.js +4 -4
  126. package/lib/module/components/Text/Text.js.map +1 -1
  127. package/lib/module/components/User/DeviceSessions/DeviceSessions.js +7 -6
  128. package/lib/module/components/User/DeviceSessions/DeviceSessions.js.map +1 -1
  129. package/lib/module/components/User/WatchHistory/WatchHistory.js +6 -7
  130. package/lib/module/components/User/WatchHistory/WatchHistory.js.map +1 -1
  131. package/lib/module/components/User/WatchLater/WatchLater.js +12 -9
  132. package/lib/module/components/User/WatchLater/WatchLater.js.map +1 -1
  133. package/lib/module/components/User/components/UserAvatar.js +1 -1
  134. package/lib/module/components/User/components/UserAvatar.js.map +1 -1
  135. package/lib/module/components/User/components/UserSection.js +5 -4
  136. package/lib/module/components/User/components/UserSection.js.map +1 -1
  137. package/lib/module/components/index.js +0 -1
  138. package/lib/module/components/index.js.map +1 -1
  139. package/lib/module/components/layout/SafeAreaWrapper.js +12 -11
  140. package/lib/module/components/layout/SafeAreaWrapper.js.map +1 -1
  141. package/lib/module/hooks/useInitSplashCacheSync.js +67 -63
  142. package/lib/module/hooks/useInitSplashCacheSync.js.map +1 -1
  143. package/lib/module/hooks/useKeyboard.js +7 -9
  144. package/lib/module/hooks/useKeyboard.js.map +1 -1
  145. package/lib/module/hooks/usePaginatedSection.js +10 -3
  146. package/lib/module/hooks/usePaginatedSection.js.map +1 -1
  147. package/lib/module/theme/ThemeProvider.js +55 -52
  148. package/lib/module/theme/ThemeProvider.js.map +1 -1
  149. package/lib/module/theme/hook/useTheme.js +45 -0
  150. package/lib/module/theme/hook/useTheme.js.map +1 -0
  151. package/lib/module/theme/index.js +1 -0
  152. package/lib/module/theme/index.js.map +1 -1
  153. package/lib/module/theme/themes.js +1 -1
  154. package/lib/typescript/src/components/Account/Account.d.ts.map +1 -1
  155. package/lib/typescript/src/components/Auth/ForgotPassword/ForgotPassword.d.ts +9 -6
  156. package/lib/typescript/src/components/Auth/ForgotPassword/ForgotPassword.d.ts.map +1 -1
  157. package/lib/typescript/src/components/Auth/Login/LoginWithEmail.d.ts +6 -2
  158. package/lib/typescript/src/components/Auth/Login/LoginWithEmail.d.ts.map +1 -1
  159. package/lib/typescript/src/components/Auth/Login/LoginWithPhone.d.ts +6 -2
  160. package/lib/typescript/src/components/Auth/Login/LoginWithPhone.d.ts.map +1 -1
  161. package/lib/typescript/src/components/Auth/OTP/OTP.d.ts +7 -3
  162. package/lib/typescript/src/components/Auth/OTP/OTP.d.ts.map +1 -1
  163. package/lib/typescript/src/components/Auth/SignUp/SignUp.d.ts +6 -2
  164. package/lib/typescript/src/components/Auth/SignUp/SignUp.d.ts.map +1 -1
  165. package/lib/typescript/src/components/Auth/SplashScreen/SplashScreen.d.ts +34 -0
  166. package/lib/typescript/src/components/Auth/SplashScreen/SplashScreen.d.ts.map +1 -0
  167. package/lib/typescript/src/components/{SplashScreen → Auth/SplashScreen}/components/SplashImage/SplashImage.d.ts +2 -3
  168. package/lib/typescript/src/components/Auth/SplashScreen/components/SplashImage/SplashImage.d.ts.map +1 -0
  169. package/lib/typescript/src/components/{SplashScreen → Auth/SplashScreen}/components/SplashLottie/SplashLottie.d.ts +1 -1
  170. package/lib/typescript/src/components/Auth/SplashScreen/components/SplashLottie/SplashLottie.d.ts.map +1 -0
  171. package/lib/typescript/src/components/{SplashScreen → Auth/SplashScreen}/components/SplashVideo/SplashVideo.d.ts +1 -1
  172. package/lib/typescript/src/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.d.ts.map +1 -0
  173. package/lib/typescript/src/components/Auth/index.d.ts +49 -11
  174. package/lib/typescript/src/components/Auth/index.d.ts.map +1 -1
  175. package/lib/typescript/src/components/BackgroundLayout/BackgroundLayout.d.ts +5 -4
  176. package/lib/typescript/src/components/BackgroundLayout/BackgroundLayout.d.ts.map +1 -1
  177. package/lib/typescript/src/components/BlogView/BlogView.d.ts +1 -0
  178. package/lib/typescript/src/components/BlogView/BlogView.d.ts.map +1 -1
  179. package/lib/typescript/src/components/Button/MenuBtn.d.ts +1 -8
  180. package/lib/typescript/src/components/Button/MenuBtn.d.ts.map +1 -1
  181. package/lib/typescript/src/components/Button/PrimaryBtn.d.ts.map +1 -1
  182. package/lib/typescript/src/components/Button/TextButton.d.ts.map +1 -1
  183. package/lib/typescript/src/components/Content/Card/Category/Category.d.ts.map +1 -1
  184. package/lib/typescript/src/components/Content/Card/NowWatching/NowWatching.d.ts.map +1 -1
  185. package/lib/typescript/src/components/Content/Card/Sliders/Styles/One.d.ts.map +1 -1
  186. package/lib/typescript/src/components/Content/Card/Sliders/Styles/Two.d.ts.map +1 -1
  187. package/lib/typescript/src/components/Content/Card/Sliders/index.d.ts +1 -1
  188. package/lib/typescript/src/components/Content/Card/Styles/Five.d.ts.map +1 -1
  189. package/lib/typescript/src/components/Content/Card/Styles/Four.d.ts.map +1 -1
  190. package/lib/typescript/src/components/Content/Card/Styles/One.d.ts.map +1 -1
  191. package/lib/typescript/src/components/Content/Card/Styles/RotateInOut.d.ts.map +1 -1
  192. package/lib/typescript/src/components/Content/Card/Styles/Six.d.ts.map +1 -1
  193. package/lib/typescript/src/components/Content/Card/Styles/Three.d.ts.map +1 -1
  194. package/lib/typescript/src/components/Content/Card/Styles/TopTen.d.ts.map +1 -1
  195. package/lib/typescript/src/components/Content/Card/Styles/Two.d.ts.map +1 -1
  196. package/lib/typescript/src/components/Content/Card/components/CardPoster.d.ts +4 -0
  197. package/lib/typescript/src/components/Content/Card/components/CardPoster.d.ts.map +1 -1
  198. package/lib/typescript/src/components/Content/Card/components/NavigateToMore.d.ts.map +1 -1
  199. package/lib/typescript/src/components/Content/Card/components/NoContentFallback.d.ts.map +1 -1
  200. package/lib/typescript/src/components/Content/Card/components/ThumbnailCard.d.ts.map +1 -1
  201. package/lib/typescript/src/components/Content/Content.d.ts +1 -0
  202. package/lib/typescript/src/components/Content/Content.d.ts.map +1 -1
  203. package/lib/typescript/src/components/ContentView/MoreContentList.d.ts +27 -0
  204. package/lib/typescript/src/components/ContentView/MoreContentList.d.ts.map +1 -0
  205. package/lib/typescript/src/components/ContentView/components/AboutSection.d.ts.map +1 -1
  206. package/lib/typescript/src/components/ContentView/components/CastCard.d.ts.map +1 -1
  207. package/lib/typescript/src/components/ContentView/components/EpisodeCard.d.ts.map +1 -1
  208. package/lib/typescript/src/components/ContentView/components/GenreTags.d.ts.map +1 -1
  209. package/lib/typescript/src/components/ContentView/components/HeroBanner.d.ts.map +1 -1
  210. package/lib/typescript/src/components/ContentView/components/Title.d.ts.map +1 -1
  211. package/lib/typescript/src/components/ContentView/index.d.ts +1 -0
  212. package/lib/typescript/src/components/ContentView/index.d.ts.map +1 -1
  213. package/lib/typescript/src/components/Headers/AppHeader.d.ts.map +1 -1
  214. package/lib/typescript/src/components/Headers/Three.d.ts +1 -0
  215. package/lib/typescript/src/components/Headers/Three.d.ts.map +1 -1
  216. package/lib/typescript/src/components/Headers/Two.d.ts +1 -0
  217. package/lib/typescript/src/components/Headers/Two.d.ts.map +1 -1
  218. package/lib/typescript/src/components/Input/InputOne.d.ts.map +1 -1
  219. package/lib/typescript/src/components/Input/InputTwo.d.ts.map +1 -1
  220. package/lib/typescript/src/components/Input/PhoneNumberInput.d.ts.map +1 -1
  221. package/lib/typescript/src/components/Keyboard/HideKeyboard.d.ts +1 -1
  222. package/lib/typescript/src/components/Keyboard/HideKeyboard.d.ts.map +1 -1
  223. package/lib/typescript/src/components/Logo/Logo.d.ts.map +1 -1
  224. package/lib/typescript/src/components/Search/One.d.ts.map +1 -1
  225. package/lib/typescript/src/components/Search/components/RecentSearchesSection.d.ts.map +1 -1
  226. package/lib/typescript/src/components/Search/components/SearchCard.d.ts.map +1 -1
  227. package/lib/typescript/src/components/Settings/AppSettings.d.ts.map +1 -1
  228. package/lib/typescript/src/components/Subscription/SubOne.d.ts.map +1 -1
  229. package/lib/typescript/src/components/Subscription/index.d.ts.map +1 -1
  230. package/lib/typescript/src/components/TabBar/One.d.ts.map +1 -1
  231. package/lib/typescript/src/components/TabBar/Three.d.ts +2 -2
  232. package/lib/typescript/src/components/TabBar/Three.d.ts.map +1 -1
  233. package/lib/typescript/src/components/TabBar/Two.d.ts.map +1 -1
  234. package/lib/typescript/src/components/User/DeviceSessions/DeviceSessions.d.ts.map +1 -1
  235. package/lib/typescript/src/components/User/WatchHistory/WatchHistory.d.ts.map +1 -1
  236. package/lib/typescript/src/components/User/WatchLater/WatchLater.d.ts.map +1 -1
  237. package/lib/typescript/src/components/User/components/UserSection.d.ts.map +1 -1
  238. package/lib/typescript/src/components/index.d.ts +0 -1
  239. package/lib/typescript/src/components/index.d.ts.map +1 -1
  240. package/lib/typescript/src/components/layout/SafeAreaWrapper.d.ts +2 -4
  241. package/lib/typescript/src/components/layout/SafeAreaWrapper.d.ts.map +1 -1
  242. package/lib/typescript/src/hooks/useInitSplashCacheSync.d.ts +1 -1
  243. package/lib/typescript/src/hooks/useInitSplashCacheSync.d.ts.map +1 -1
  244. package/lib/typescript/src/hooks/useKeyboard.d.ts.map +1 -1
  245. package/lib/typescript/src/hooks/usePaginatedSection.d.ts +1 -0
  246. package/lib/typescript/src/hooks/usePaginatedSection.d.ts.map +1 -1
  247. package/lib/typescript/src/theme/ThemeProvider.d.ts +8 -4
  248. package/lib/typescript/src/theme/ThemeProvider.d.ts.map +1 -1
  249. package/lib/typescript/src/theme/hook/useTheme.d.ts +9 -0
  250. package/lib/typescript/src/theme/hook/useTheme.d.ts.map +1 -0
  251. package/lib/typescript/src/theme/index.d.ts +1 -0
  252. package/lib/typescript/src/theme/index.d.ts.map +1 -1
  253. package/lib/typescript/src/types/content/content-view.types.d.ts +7 -3
  254. package/lib/typescript/src/types/content/content-view.types.d.ts.map +1 -1
  255. package/package.json +3 -2
  256. package/src/components/Account/Account.tsx +7 -6
  257. package/src/components/Auth/ForgotPassword/ForgotPassword.tsx +51 -32
  258. package/src/components/Auth/Login/LoginWithEmail.tsx +45 -26
  259. package/src/components/Auth/Login/LoginWithPhone.tsx +38 -24
  260. package/src/components/Auth/OTP/OTP.tsx +96 -61
  261. package/src/components/Auth/SignUp/SignUp.tsx +49 -31
  262. package/src/components/Auth/SplashScreen/SplashScreen.tsx +166 -0
  263. package/src/components/Auth/SplashScreen/components/SplashImage/SplashImage.tsx +66 -0
  264. package/src/components/{SplashScreen → Auth/SplashScreen}/components/SplashLottie/SplashLottie.tsx +7 -19
  265. package/src/components/{SplashScreen → Auth/SplashScreen}/components/SplashVideo/SplashVideo.tsx +23 -14
  266. package/src/components/Auth/index.ts +3 -1
  267. package/src/components/BackgroundLayout/BackgroundLayout.tsx +72 -50
  268. package/src/components/BlogView/BlogView.tsx +29 -9
  269. package/src/components/Button/BackBtn.tsx +1 -1
  270. package/src/components/Button/MenuBtn.tsx +6 -9
  271. package/src/components/Button/PrimaryBtn.tsx +3 -2
  272. package/src/components/Button/TextButton.tsx +3 -2
  273. package/src/components/Content/Card/Category/Category.tsx +3 -2
  274. package/src/components/Content/Card/NowWatching/NowWatching.tsx +15 -8
  275. package/src/components/Content/Card/Sliders/Styles/One.tsx +4 -3
  276. package/src/components/Content/Card/Sliders/Styles/Two.tsx +3 -2
  277. package/src/components/Content/Card/Sliders/index.ts +1 -1
  278. package/src/components/Content/Card/Styles/Five.tsx +7 -6
  279. package/src/components/Content/Card/Styles/Four.tsx +7 -6
  280. package/src/components/Content/Card/Styles/One.tsx +44 -111
  281. package/src/components/Content/Card/Styles/RotateInOut.tsx +5 -5
  282. package/src/components/Content/Card/Styles/Six.tsx +7 -5
  283. package/src/components/Content/Card/Styles/Three.tsx +5 -5
  284. package/src/components/Content/Card/Styles/TopTen.tsx +10 -14
  285. package/src/components/Content/Card/Styles/Two.tsx +9 -7
  286. package/src/components/Content/Card/components/CardPoster.tsx +24 -11
  287. package/src/components/Content/Card/components/NavigateToMore.tsx +4 -3
  288. package/src/components/Content/Card/components/NoContentFallback.tsx +5 -4
  289. package/src/components/Content/Card/components/ThumbnailCard.tsx +2 -1
  290. package/src/components/Content/Content.tsx +38 -7
  291. package/src/components/Content/Sections.tsx +1 -1
  292. package/src/components/ContentView/ContentView.tsx +6 -6
  293. package/src/components/ContentView/MoreContentList.tsx +238 -0
  294. package/src/components/ContentView/components/AboutSection.tsx +5 -4
  295. package/src/components/ContentView/components/CastCard.tsx +5 -4
  296. package/src/components/ContentView/components/EpisodeCard.tsx +30 -4
  297. package/src/components/ContentView/components/GenreTags.tsx +2 -1
  298. package/src/components/ContentView/components/HeroBanner.tsx +10 -6
  299. package/src/components/ContentView/components/Title.tsx +4 -3
  300. package/src/components/ContentView/index.ts +1 -0
  301. package/src/components/Headers/AppHeader.tsx +20 -34
  302. package/src/components/Headers/One.tsx +1 -1
  303. package/src/components/Headers/Three.tsx +4 -3
  304. package/src/components/Headers/Two.tsx +4 -3
  305. package/src/components/Input/InputOne.tsx +6 -4
  306. package/src/components/Input/InputTwo.tsx +5 -4
  307. package/src/components/Input/PhoneNumberInput.tsx +12 -11
  308. package/src/components/Keyboard/HideKeyboard.tsx +41 -15
  309. package/src/components/Logo/Logo.tsx +2 -1
  310. package/src/components/Search/One.tsx +6 -5
  311. package/src/components/Search/components/RecentSearchesSection.tsx +10 -9
  312. package/src/components/Search/components/SearchCard.tsx +6 -5
  313. package/src/components/Settings/AppSettings.tsx +14 -13
  314. package/src/components/Subscription/SubOne.tsx +16 -15
  315. package/src/components/TabBar/One.tsx +6 -3
  316. package/src/components/TabBar/Three.tsx +28 -14
  317. package/src/components/TabBar/Two.tsx +4 -2
  318. package/src/components/Text/Text.tsx +4 -4
  319. package/src/components/User/DeviceSessions/DeviceSessions.tsx +7 -6
  320. package/src/components/User/WatchHistory/WatchHistory.tsx +5 -7
  321. package/src/components/User/WatchLater/WatchLater.tsx +12 -9
  322. package/src/components/User/components/UserAvatar.tsx +1 -1
  323. package/src/components/User/components/UserSection.tsx +5 -4
  324. package/src/components/index.ts +0 -1
  325. package/src/components/layout/SafeAreaWrapper.tsx +16 -9
  326. package/src/hooks/useInitSplashCacheSync.ts +74 -87
  327. package/src/hooks/useKeyboard.ts +9 -8
  328. package/src/hooks/usePaginatedSection.ts +7 -3
  329. package/src/theme/ThemeProvider.tsx +59 -55
  330. package/src/theme/hook/useTheme.ts +41 -0
  331. package/src/theme/index.ts +1 -0
  332. package/src/theme/themes.ts +1 -1
  333. package/src/types/content/content-view.types.ts +4 -2
  334. package/lib/module/components/SplashScreen/SplashScreen.js +0 -109
  335. package/lib/module/components/SplashScreen/SplashScreen.js.map +0 -1
  336. package/lib/module/components/SplashScreen/components/SplashImage/SplashImage.js +0 -68
  337. package/lib/module/components/SplashScreen/components/SplashImage/SplashImage.js.map +0 -1
  338. package/lib/module/components/SplashScreen/components/SplashLottie/SplashLottie.js.map +0 -1
  339. package/lib/module/components/SplashScreen/components/SplashVideo/SplashVideo.js.map +0 -1
  340. package/lib/module/components/SplashScreen/index.js +0 -9
  341. package/lib/module/components/SplashScreen/index.js.map +0 -1
  342. package/lib/typescript/src/components/SplashScreen/SplashScreen.d.ts +0 -32
  343. package/lib/typescript/src/components/SplashScreen/SplashScreen.d.ts.map +0 -1
  344. package/lib/typescript/src/components/SplashScreen/components/SplashImage/SplashImage.d.ts.map +0 -1
  345. package/lib/typescript/src/components/SplashScreen/components/SplashLottie/SplashLottie.d.ts.map +0 -1
  346. package/lib/typescript/src/components/SplashScreen/components/SplashVideo/SplashVideo.d.ts.map +0 -1
  347. package/lib/typescript/src/components/SplashScreen/index.d.ts +0 -6
  348. package/lib/typescript/src/components/SplashScreen/index.d.ts.map +0 -1
  349. package/src/components/SplashScreen/SplashScreen.tsx +0 -131
  350. package/src/components/SplashScreen/components/SplashImage/SplashImage.tsx +0 -84
  351. package/src/components/SplashScreen/index.ts +0 -6
@@ -0,0 +1,238 @@
1
+ /**
2
+ * @author Naresh Dhamu
3
+ * @lastModified Tue 01 Jul 2025 at 02:28 PM
4
+ */
5
+
6
+ import React, { useCallback, useRef } from 'react';
7
+ import { FlatList, StyleSheet, TouchableOpacity, ActivityIndicator, type FlatListProps } from 'react-native';
8
+ import { scale, verticalScale } from 'react-native-size-matters';
9
+ import Display from '../../utils/Display';
10
+ import type { IContentData } from '../../types';
11
+ import { Text } from '../Text';
12
+ import { View } from '../View';
13
+ import AppHeader, { type AppHeaderProps } from '../Headers/AppHeader';
14
+ import { RFValue } from 'react-native-responsive-fontsize';
15
+ import CardPoster from '../Content/Card/components/CardPoster';
16
+ import type { AppTheme } from '../../theme/themes';
17
+ import { useTheme } from '../../theme';
18
+ import Animated from 'react-native-reanimated';
19
+ import { Search } from 'lucide-react-native';
20
+
21
+ interface Props {
22
+ headerProps?: AppHeaderProps;
23
+ contentList: IContentData[];
24
+ onItemPress?: (item: IContentData) => void;
25
+ isLoading?: boolean;
26
+ error?: boolean | string | Error;
27
+ errorText?: string;
28
+ theme?: AppTheme;
29
+ moreDataIsLoading?: boolean;
30
+ onEndReached?: () => void;
31
+ skeletonCount?: number;
32
+ numColumns?: number;
33
+ footerComponent?: React.ReactNode;
34
+ refreshing?: boolean;
35
+ onRefresh?: () => void;
36
+ }
37
+
38
+ const AnimatedFlatList = Animated.createAnimatedComponent(FlatList as React.ComponentType<FlatListProps<IContentData>>);
39
+
40
+ const MoreContentList: React.FC<Props> = ({
41
+ headerProps,
42
+ contentList = [],
43
+ onItemPress,
44
+ isLoading = false,
45
+ error = false,
46
+ errorText = 'Something went wrong!',
47
+ theme,
48
+ moreDataIsLoading = false,
49
+ onEndReached,
50
+ skeletonCount = 12,
51
+ numColumns = 3,
52
+ footerComponent,
53
+ refreshing = false,
54
+ onRefresh
55
+ }) => {
56
+ const { theme: appliedTheme } = useTheme(theme);
57
+ const onEndReachedCalledDuringMomentum = useRef(false);
58
+ const isEmpty = !isLoading && (!contentList || contentList.length === 0);
59
+
60
+ const getErrorMessage = () => {
61
+ if (typeof error === 'string') return error;
62
+ if (error instanceof Error) return error.message;
63
+ return errorText;
64
+ };
65
+
66
+ const keyExtractor = useCallback((item: IContentData, index: number) => {
67
+ return item._id?.toString() || index.toString();
68
+ }, []);
69
+
70
+ const renderItem = useCallback(
71
+ ({ item }: { item: IContentData }) => (
72
+ <View style={styles.cardWrapper}>
73
+ <TouchableOpacity onPress={() => onItemPress?.(item)} activeOpacity={0.7}>
74
+ <CardPoster
75
+ posterUri={item.poster}
76
+ borderRadius={5}
77
+ isLoading={false}
78
+ theme={appliedTheme}
79
+ imageStyle={styles.itemContainer}
80
+ />
81
+ </TouchableOpacity>
82
+ </View>
83
+ ),
84
+ [onItemPress, appliedTheme]
85
+ );
86
+
87
+ const renderSkeletonItem = useCallback(
88
+ ({ index }: { index: number }) => (
89
+ <View style={styles.cardWrapper} key={`skeleton-${index}`}>
90
+ <CardPoster
91
+ posterUri=""
92
+ borderRadius={5}
93
+ isLoading={true}
94
+ theme={appliedTheme}
95
+ imageStyle={styles.itemContainer}
96
+ />
97
+ </View>
98
+ ),
99
+ [appliedTheme]
100
+ );
101
+
102
+ const renderFooter = () => {
103
+ if (footerComponent) return footerComponent;
104
+
105
+ return moreDataIsLoading ? (
106
+ <View style={styles.footerLoading}>
107
+ <ActivityIndicator size="small" />
108
+ </View>
109
+ ) : null;
110
+ };
111
+
112
+ const renderContent = () => {
113
+ if (isLoading) {
114
+ return (
115
+ <FlatList
116
+ data={Array.from({ length: skeletonCount })}
117
+ numColumns={numColumns}
118
+ keyExtractor={(_, index) => `skeleton-${index}`}
119
+ renderItem={renderSkeletonItem}
120
+ showsVerticalScrollIndicator={false}
121
+ contentContainerStyle={[
122
+ styles.listContent,
123
+ {
124
+ minHeight: Display.fullHeight - verticalScale(100)
125
+ }
126
+ ]}
127
+ />
128
+ );
129
+ }
130
+
131
+ if (error) {
132
+ return (
133
+ <View style={styles.centered}>
134
+ <Text style={styles.errorText}>{getErrorMessage()}</Text>
135
+ </View>
136
+ );
137
+ }
138
+
139
+ if (isEmpty) {
140
+ return (
141
+ <View style={styles.centered}>
142
+ <Text style={styles.emptyText}>No content found</Text>
143
+ </View>
144
+ );
145
+ }
146
+
147
+ return (
148
+ <AnimatedFlatList
149
+ data={contentList}
150
+ numColumns={numColumns}
151
+ showsVerticalScrollIndicator={false}
152
+ removeClippedSubviews
153
+ keyExtractor={keyExtractor}
154
+ renderItem={renderItem}
155
+ initialNumToRender={6}
156
+ bounces={false}
157
+ scrollEventThrottle={16}
158
+ contentContainerStyle={styles.listContent}
159
+ ListFooterComponent={renderFooter}
160
+ onEndReachedThreshold={0.7}
161
+ onEndReached={() => {
162
+ if (!onEndReachedCalledDuringMomentum.current && onEndReached && !moreDataIsLoading) {
163
+ onEndReached();
164
+ onEndReachedCalledDuringMomentum.current = true;
165
+ }
166
+ }}
167
+ onMomentumScrollBegin={() => {
168
+ onEndReachedCalledDuringMomentum.current = false;
169
+ }}
170
+ refreshing={refreshing}
171
+ onRefresh={onRefresh}
172
+ windowSize={5}
173
+ maxToRenderPerBatch={5}
174
+ updateCellsBatchingPeriod={50}
175
+ />
176
+ );
177
+ };
178
+
179
+ return (
180
+ <View style={{ flex: 1 }}>
181
+ <AppHeader
182
+ title="More Content"
183
+ titleAlign="left"
184
+ titleStyle={StyleSheet.flatten([styles.headerTitle, headerProps?.titleStyle])}
185
+ onBackPress={headerProps?.onBackPress || (() => {})}
186
+ onRightPress={headerProps?.onRightPress || (() => {})}
187
+ rightIcon={headerProps?.rightIcon || <Search size={scale(23)} color={appliedTheme.colors.onBackground} />}
188
+ {...headerProps}
189
+ />
190
+ {renderContent()}
191
+ </View>
192
+ );
193
+ };
194
+
195
+ export default MoreContentList;
196
+
197
+ const styles = StyleSheet.create({
198
+ listContent: {
199
+ paddingHorizontal: scale(6),
200
+ paddingBottom: scale(100)
201
+ },
202
+ cardWrapper: {
203
+ flexBasis: '33.33%',
204
+ maxWidth: '33.33%',
205
+ padding: scale(4),
206
+ alignItems: 'center',
207
+ justifyContent: 'center'
208
+ },
209
+ itemContainer: {
210
+ width: '100%',
211
+ aspectRatio: 2 / 3,
212
+ borderRadius: 5
213
+ },
214
+ centered: {
215
+ flex: 1,
216
+ justifyContent: 'center',
217
+ alignItems: 'center',
218
+ paddingVertical: verticalScale(50)
219
+ },
220
+ errorText: {
221
+ fontSize: RFValue(14),
222
+ color: 'red',
223
+ fontWeight: '500'
224
+ },
225
+ emptyText: {
226
+ fontSize: RFValue(14),
227
+ fontWeight: '400'
228
+ },
229
+ headerTitle: {
230
+ fontSize: RFValue(15),
231
+ textTransform: 'capitalize'
232
+ },
233
+ footerLoading: {
234
+ marginTop: verticalScale(30),
235
+ paddingVertical: verticalScale(10),
236
+ alignItems: 'center'
237
+ }
238
+ });
@@ -17,6 +17,7 @@ import { Text } from '../../Text';
17
17
  import SkeletonPlaceholder from 'react-native-skeleton-placeholder';
18
18
  import { scale, verticalScale } from 'react-native-size-matters';
19
19
  import type { ITheme } from '../../../theme/themes';
20
+ import { RFValue } from 'react-native-responsive-fontsize';
20
21
 
21
22
  type Props = {
22
23
  theme: ITheme;
@@ -118,20 +119,20 @@ const styles = StyleSheet.create({
118
119
  marginTop: verticalScale(7)
119
120
  },
120
121
  title: {
121
- fontSize: scale(16),
122
+ fontSize: RFValue(14),
122
123
  fontWeight: 'bold',
123
124
  marginBottom: scale(6)
124
125
  },
125
126
  body: {
126
- fontSize: scale(11.5),
127
+ fontSize: RFValue(10),
127
128
  lineHeight: scale(16),
128
- textAlign: 'justify'
129
+ textAlign: 'auto'
129
130
  },
130
131
  scrollExpanded: {
131
132
  maxHeight: verticalScale(250)
132
133
  },
133
134
  toggleText: {
134
- fontSize: scale(11),
135
+ fontSize: RFValue(9.5),
135
136
  fontWeight: '600',
136
137
  marginTop: scale(4)
137
138
  }
@@ -19,6 +19,7 @@ import { scale } from 'react-native-size-matters';
19
19
  import { Text } from '../../Text';
20
20
  import type { ITheme } from '../../../theme/themes';
21
21
  import type { IContentCast } from '../../../types';
22
+ import { RFValue } from 'react-native-responsive-fontsize';
22
23
 
23
24
  type StyleProps = {
24
25
  container?: StyleProp<ViewStyle>;
@@ -42,7 +43,7 @@ type Props = {
42
43
  style?: StyleProps;
43
44
  };
44
45
 
45
- const IMAGE_SIZE = scale(80);
46
+ const IMAGE_SIZE = scale(70);
46
47
  const PLACEHOLDER_COUNT = 6;
47
48
 
48
49
  export const CastCard = ({ theme, data, isLoading = false, heading = 'Cast', onItemPress, style = {} }: Props) => {
@@ -160,7 +161,7 @@ const styles = StyleSheet.create({
160
161
  marginVertical: scale(10)
161
162
  },
162
163
  heading: {
163
- fontSize: scale(16),
164
+ fontSize: RFValue(14),
164
165
  fontWeight: 'bold',
165
166
  marginBottom: scale(8),
166
167
  paddingHorizontal: scale(12)
@@ -180,12 +181,12 @@ const styles = StyleSheet.create({
180
181
  marginBottom: scale(6)
181
182
  },
182
183
  name: {
183
- fontSize: scale(11),
184
+ fontSize: RFValue(9),
184
185
  fontWeight: '500',
185
186
  textAlign: 'center'
186
187
  },
187
188
  role: {
188
- fontSize: scale(11),
189
+ fontSize: RFValue(9),
189
190
  textAlign: 'center',
190
191
  marginTop: scale(2)
191
192
  },
@@ -13,6 +13,7 @@ import Display from '../../../utils/Display';
13
13
  import type { IContentEpisodes, IContentSeasons } from '../../../types';
14
14
  import type { ITheme } from '../../../theme/themes';
15
15
  import { ThumbnailCard } from '../../Content/Card/components/ThumbnailCard';
16
+ import { RFValue } from 'react-native-responsive-fontsize';
16
17
 
17
18
  // Constants
18
19
  const SKELETON_COUNT = 3;
@@ -26,9 +27,9 @@ const TAB_MARGIN_RIGHT = scale(6);
26
27
  const CONTAINER_PADDING_HORIZONTAL = scale(8);
27
28
  const CONTAINER_GAP = verticalScale(8);
28
29
  const TEXT_PADDING = scale(6);
29
- const TITLE_FONT_SIZE = scale(12);
30
- const SUBTITLE_FONT_SIZE = scale(10);
31
- const SUBTITLE_LINE_HEIGHT = scale(14);
30
+ const TITLE_FONT_SIZE = RFValue(11);
31
+ const SUBTITLE_FONT_SIZE = RFValue(9);
32
+ const SUBTITLE_LINE_HEIGHT = RFValue(13);
32
33
 
33
34
  // Types
34
35
  interface IOnPressParams {
@@ -39,6 +40,7 @@ interface IOnPressParams {
39
40
 
40
41
  interface EpisodeCardItemProps {
41
42
  season_id: string;
43
+ season_number: number;
42
44
  episode: IContentEpisodes;
43
45
  onPress: (e: IOnPressParams) => void;
44
46
  theme: ITheme;
@@ -55,9 +57,27 @@ interface EpisodeCardProps {
55
57
  mode?: 'horizontal' | 'vertical';
56
58
  }
57
59
 
60
+ const formatDate = (dateString: string): string => {
61
+ const date = new Date(dateString);
62
+ return date.toLocaleDateString('en-US', {
63
+ day: '2-digit',
64
+ month: 'short',
65
+ year: 'numeric'
66
+ });
67
+ };
68
+
58
69
  // Memoized EpisodeCardItem
59
70
  const EpisodeCardItem = memo(
60
- ({ season_id, episode, onPress, theme, style, thumbnailHeight, isLoading = false }: EpisodeCardItemProps) => {
71
+ ({
72
+ season_id,
73
+ season_number,
74
+ episode,
75
+ onPress,
76
+ theme,
77
+ style,
78
+ thumbnailHeight,
79
+ isLoading = false
80
+ }: EpisodeCardItemProps) => {
61
81
  const handlePress = useCallback(() => {
62
82
  if (!isLoading) {
63
83
  onPress?.({ season_id, episode_id: episode._id, episode_number: episode.number });
@@ -174,6 +194,10 @@ const EpisodeCardItem = memo(
174
194
  <Text numberOfLines={1} color={theme.colors.textPrimary} style={styles.title}>
175
195
  {episode.name || `Episode ${episode.number}`}
176
196
  </Text>
197
+ <Text color={theme.colors.onSurface} style={{ fontSize: RFValue(9), marginTop: verticalScale(2) }}>
198
+ {`S${String(season_number).padStart(2, '0')} | E${String(episode.number).padStart(2, '0')} | `}
199
+ {episode.createdAt && formatDate(episode.createdAt)}
200
+ </Text>
177
201
  {!!episode.description && (
178
202
  <Text numberOfLines={isVerticalMode ? 4 : 2} color={theme.colors.textSecondary} style={styles.subtitle}>
179
203
  {episode.description}
@@ -246,6 +270,7 @@ export const EpisodeCard = ({ seasons, onPress, theme, isLoading = false, mode =
246
270
  theme={theme}
247
271
  season_id={selectedSeason._id}
248
272
  episode={item}
273
+ season_number={selectedSeason.season_number}
249
274
  onPress={onPress}
250
275
  style={{ width: cardWidth }}
251
276
  thumbnailHeight={thumbnailHeight}
@@ -259,6 +284,7 @@ export const EpisodeCard = ({ seasons, onPress, theme, isLoading = false, mode =
259
284
  <EpisodeCardItem
260
285
  theme={theme}
261
286
  season_id=""
287
+ season_number={0}
262
288
  episode={{
263
289
  _id: '',
264
290
  number: 0,
@@ -10,6 +10,7 @@ import SkeletonPlaceholder from 'react-native-skeleton-placeholder';
10
10
  import { scale, verticalScale } from 'react-native-size-matters';
11
11
  import type { IContentData } from '../../../types';
12
12
  import type { ITheme } from '../../../theme/themes';
13
+ import { RFValue } from 'react-native-responsive-fontsize';
13
14
 
14
15
  type Props = {
15
16
  genres?: IContentData['genres'];
@@ -81,7 +82,7 @@ const styles = StyleSheet.create({
81
82
  alignSelf: 'flex-start'
82
83
  },
83
84
  tagText: {
84
- fontSize: scale(11),
85
+ fontSize: RFValue(9),
85
86
  maxWidth: scale(110)
86
87
  },
87
88
  skeletonTag: {
@@ -15,6 +15,7 @@ import { TrailerButton } from './TrailerButton';
15
15
  import BackBtn from '../../Button/BackBtn';
16
16
  import MenuBtn from '../../Button/MenuBtn';
17
17
  import type { HeroBannerProps } from '../../../types/content/content-view.types';
18
+ import { RFValue } from 'react-native-responsive-fontsize';
18
19
 
19
20
  const SKELETON_CIRCLE_SIZE = scale(50);
20
21
  const BANNER_HEIGHT = verticalScale(200);
@@ -36,9 +37,12 @@ export const HeroBanner = ({
36
37
  const [hasImageLoaded, setHasImageLoaded] = useState(false);
37
38
  const [imageLoadError, setImageLoadError] = useState(false);
38
39
 
39
- const handlePressPlay = useCallback(() => {
40
- onPressPlay?.();
41
- }, [onPressPlay]);
40
+ const handlePressPlay = useCallback(
41
+ ({ is_trailer }: { is_trailer: boolean }) => {
42
+ onPressPlay?.({ is_trailer });
43
+ },
44
+ [onPressPlay]
45
+ );
42
46
 
43
47
  const showSkeleton = isLoading || (!hasImageLoaded && !imageLoadError);
44
48
 
@@ -75,7 +79,7 @@ export const HeroBanner = ({
75
79
  },
76
80
  errorText: {
77
81
  color: theme.colors.textSecondary,
78
- fontSize: scale(16),
82
+ fontSize: RFValue(15),
79
83
  textAlign: 'center'
80
84
  },
81
85
  imageContainer: {
@@ -224,11 +228,11 @@ export const HeroBanner = ({
224
228
  {!showSkeleton && !imageLoadError && (
225
229
  <>
226
230
  <Animated.View style={styles.centeredContent}>
227
- {renderButtons?.play?.() ?? <PlayButton onPress={handlePressPlay} />}
231
+ {renderButtons?.play?.() ?? <PlayButton onPress={() => handlePressPlay({ is_trailer: false })} />}
228
232
  </Animated.View>
229
233
 
230
234
  <Animated.View style={styles.trailerButtonWrapper}>
231
- {renderButtons?.trailer?.() ?? <TrailerButton onPress={handlePressPlay} />}
235
+ {renderButtons?.trailer?.() ?? <TrailerButton onPress={() => handlePressPlay({ is_trailer: true })} />}
232
236
  </Animated.View>
233
237
  </>
234
238
  )}
@@ -10,6 +10,7 @@ import { scale } from 'react-native-size-matters';
10
10
  import { Text } from '../../Text';
11
11
  import type { IContentData } from '../../../types';
12
12
  import type { ITheme } from '../../../theme/themes';
13
+ import { RFValue } from 'react-native-responsive-fontsize';
13
14
 
14
15
  type Props = {
15
16
  title: IContentData['name'];
@@ -102,19 +103,19 @@ const styles = StyleSheet.create({
102
103
  maxWidth: '100%'
103
104
  },
104
105
  title: {
105
- fontSize: scale(18),
106
+ fontSize: RFValue(17),
106
107
  fontWeight: 'bold',
107
108
  flexShrink: 1,
108
109
  maxWidth: '60%'
109
110
  },
110
111
  subTitle: {
111
- fontSize: scale(18),
112
+ fontSize: RFValue(17),
112
113
  marginLeft: scale(4),
113
114
  flexShrink: 1,
114
115
  maxWidth: '40%'
115
116
  },
116
117
  rating: {
117
- fontSize: scale(14),
118
+ fontSize: RFValue(13),
118
119
  marginTop: scale(4)
119
120
  }
120
121
  });
@@ -4,3 +4,4 @@
4
4
  */
5
5
 
6
6
  export * from './ContentView';
7
+ export { default as MoreContentList } from './MoreContentList';
@@ -3,12 +3,13 @@
3
3
  * @lastModified Sat 21 Jun 2025 at 02:52 PM
4
4
  */
5
5
  import React from 'react';
6
- import { View, Pressable, StyleSheet, type StyleProp, type ViewStyle, type TextStyle } from 'react-native';
6
+ import { View, StyleSheet, TouchableOpacity, type StyleProp, type ViewStyle, type TextStyle } from 'react-native';
7
7
  import { ArrowLeft } from 'lucide-react-native';
8
- import { useTheme } from '../../theme';
9
- import { moderateScale, scale, verticalScale } from 'react-native-size-matters';
8
+ import { useTheme } from '../../theme/hook/useTheme';
9
+ import { scale, verticalScale } from 'react-native-size-matters';
10
10
  import { Text } from '../Text';
11
11
  import type { AppTheme } from '../../theme/themes';
12
+ import { RFValue } from 'react-native-responsive-fontsize';
12
13
 
13
14
  export type AppHeaderProps = {
14
15
  title: string;
@@ -37,17 +38,9 @@ const AppHeader: React.FC<AppHeaderProps> = ({
37
38
  <View style={[styles.header, { backgroundColor: appliedTheme.colors.background }, style]}>
38
39
  {/* Left icon */}
39
40
  {onBackPress && (
40
- <Pressable
41
- onPress={onBackPress}
42
- android_ripple={{
43
- color: appliedTheme.colors.surfaceDisabled,
44
- borderless: false,
45
- radius: scale(20)
46
- }}
47
- style={styles.iconButton}
48
- >
41
+ <TouchableOpacity onPress={onBackPress} activeOpacity={0.7} style={styles.iconButton}>
49
42
  <ArrowLeft size={scale(22)} color={appliedTheme.colors.textPrimary} />
50
- </Pressable>
43
+ </TouchableOpacity>
51
44
  )}
52
45
 
53
46
  {/* Title */}
@@ -55,10 +48,10 @@ const AppHeader: React.FC<AppHeaderProps> = ({
55
48
  <Text
56
49
  numberOfLines={1}
57
50
  style={[
58
- styles.title,
59
51
  { color: appliedTheme.colors.onBackground },
60
- !onBackPress && { fontSize: moderateScale(20) },
61
- titleStyle
52
+ !onBackPress && { ...titleStyle },
53
+ titleStyle,
54
+ styles.title
62
55
  ]}
63
56
  >
64
57
  {title}
@@ -67,17 +60,9 @@ const AppHeader: React.FC<AppHeaderProps> = ({
67
60
 
68
61
  {/* Right icon */}
69
62
  {rightIcon ? (
70
- <Pressable
71
- onPress={onRightPress}
72
- android_ripple={{
73
- color: appliedTheme.colors.surfaceDisabled,
74
- borderless: false,
75
- radius: scale(20)
76
- }}
77
- style={styles.iconButton}
78
- >
63
+ <TouchableOpacity onPress={onRightPress} activeOpacity={0.7} style={styles.iconButton}>
79
64
  {rightIcon}
80
- </Pressable>
65
+ </TouchableOpacity>
81
66
  ) : (
82
67
  <View style={styles.iconButton} />
83
68
  )}
@@ -89,21 +74,21 @@ export default AppHeader;
89
74
 
90
75
  const styles = StyleSheet.create({
91
76
  header: {
92
- height: verticalScale(56),
77
+ height: verticalScale(40),
93
78
  paddingHorizontal: scale(12),
79
+ paddingBottom: verticalScale(4),
94
80
  flexDirection: 'row',
95
81
  alignItems: 'center'
96
82
  },
97
83
  iconButton: {
98
- width: scale(40),
99
- height: scale(40),
100
- borderRadius: scale(20),
84
+ width: scale(42),
85
+ height: scale(42),
86
+ borderRadius: scale(21),
101
87
  justifyContent: 'center',
102
88
  alignItems: 'center',
103
89
  overflow: 'hidden',
104
90
  backgroundColor: 'transparent'
105
91
  },
106
-
107
92
  titleWrapper: {
108
93
  flex: 1,
109
94
  justifyContent: 'center'
@@ -113,10 +98,11 @@ const styles = StyleSheet.create({
113
98
  },
114
99
  leftAligned: {
115
100
  alignItems: 'flex-start',
116
- paddingLeft: scale(4)
101
+ paddingLeft: scale(2)
117
102
  },
118
103
  title: {
119
- fontSize: moderateScale(18),
120
- fontWeight: 'bold'
104
+ fontSize: RFValue(14),
105
+ textTransform: 'capitalize',
106
+ fontWeight: '500'
121
107
  }
122
108
  });
@@ -8,7 +8,7 @@ import { Platform, Pressable, StyleSheet, View } from 'react-native';
8
8
  import { scale, verticalScale } from 'react-native-size-matters';
9
9
  import { Logo } from '../Logo/Logo';
10
10
  import type { AppTheme } from '../../theme/themes';
11
- import { useTheme } from '../../theme/ThemeProvider';
11
+ import { useTheme } from '../../theme/hook/useTheme';
12
12
  import { Menu as DefaultMenuIcon, Search as DefaultSearchIcon } from 'lucide-react-native';
13
13
 
14
14
  export interface HeaderOneProps {
@@ -7,21 +7,22 @@ import { Platform, StyleSheet, View } from 'react-native';
7
7
  import { scale, verticalScale } from 'react-native-size-matters';
8
8
  import { Logo } from '../Logo/Logo';
9
9
  import type { AppTheme } from '../../theme/themes';
10
- import { useTheme } from '../../theme/ThemeProvider';
10
+ import { useTheme } from '../../theme/hook/useTheme';
11
11
 
12
12
  export interface HeaderThreeProps {
13
13
  logoUri: string;
14
14
  category?: React.ReactNode;
15
15
  theme?: AppTheme;
16
+ isLoading?: boolean;
16
17
  }
17
18
 
18
- const HeaderThree: React.FC<HeaderThreeProps> = ({ logoUri, category, theme }) => {
19
+ const HeaderThree: React.FC<HeaderThreeProps> = ({ logoUri, category, theme, isLoading }) => {
19
20
  const { theme: appliedTheme } = useTheme(theme);
20
21
  return (
21
22
  <View style={[styles.headerContainer, { backgroundColor: appliedTheme.colors.background }]}>
22
23
  <View style={styles.leftContainer}>
23
24
  <View style={styles.logo}>
24
- <Logo width={scale(55)} height={scale(50)} logoUri={logoUri} />
25
+ <Logo width={scale(55)} height={scale(50)} logoUri={logoUri} isLoading={isLoading} />
25
26
  </View>
26
27
  {category || null}
27
28
  </View>
@@ -8,16 +8,17 @@ import { scale, verticalScale } from 'react-native-size-matters';
8
8
  import { Logo } from '../Logo/Logo';
9
9
  import DefaultIcons from '../Icons/NewIndex';
10
10
  import type { AppTheme } from '../../theme/themes';
11
- import { useTheme } from '../../theme/ThemeProvider';
11
+ import { useTheme } from '../../theme/hook/useTheme';
12
12
 
13
13
  export interface HeaderTwoProps {
14
14
  theme?: AppTheme;
15
15
  logoUri: string;
16
16
  MenuIcon?: React.FC<{ width: number; height: number; color?: string }>;
17
17
  onMenuPress?: () => void;
18
+ isLoading?: boolean;
18
19
  }
19
20
 
20
- const HeaderTwo: React.FC<HeaderTwoProps> = ({ theme, logoUri, MenuIcon, onMenuPress }) => {
21
+ const HeaderTwo: React.FC<HeaderTwoProps> = ({ theme, logoUri, MenuIcon, onMenuPress, isLoading }) => {
21
22
  const { theme: appliedTheme } = useTheme(theme);
22
23
 
23
24
  const Menu = MenuIcon || DefaultIcons.MenuBar;
@@ -35,7 +36,7 @@ const HeaderTwo: React.FC<HeaderTwoProps> = ({ theme, logoUri, MenuIcon, onMenuP
35
36
  <Menu width={scale(28)} height={scale(28)} />
36
37
  </Pressable>
37
38
  <View style={styles.logo}>
38
- <Logo width={scale(100)} height={scale(80)} logoUri={logoUri} />
39
+ <Logo width={scale(100)} height={scale(80)} logoUri={logoUri} isLoading={isLoading} />
39
40
  </View>
40
41
  <View style={styles.placeholder} />
41
42
  </View>