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

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 +7 -6
  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 +1 -1
  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 +2 -1
  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 +4 -2
  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 +7 -6
  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 +1 -1
  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 +2 -1
  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 +3 -1
  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
@@ -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);
@@ -75,7 +76,7 @@ export const HeroBanner = ({
75
76
  },
76
77
  errorText: {
77
78
  color: theme.colors.textSecondary,
78
- fontSize: scale(16),
79
+ fontSize: RFValue(15),
79
80
  textAlign: 'center'
80
81
  },
81
82
  imageContainer: {
@@ -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>
@@ -15,8 +15,9 @@ import {
15
15
  } from 'react-native';
16
16
  import { Eye, EyeOff } from 'lucide-react-native';
17
17
  import { scale, verticalScale, moderateScale } from 'react-native-size-matters';
18
- import { useTheme } from '../../theme/ThemeProvider';
18
+ import { useTheme } from '../../theme/hook/useTheme';
19
19
  import type { AppTheme } from '../../theme/themes';
20
+ import { RFValue } from 'react-native-responsive-fontsize';
20
21
 
21
22
  export interface InputOneProps extends Omit<TextInputProps, 'theme'> {
22
23
  containerStyle?: ViewStyle;
@@ -95,6 +96,7 @@ const InputOne: React.FC<InputOneProps> = ({
95
96
  editable={!disabled}
96
97
  placeholderTextColor={placeholderTextColor || (disabled ? textDisabled : textSecondary)}
97
98
  secureTextEntry={inputSecure}
99
+ textContentType={isPasswordField ? 'oneTimeCode' : props.textContentType || 'none'}
98
100
  style={[
99
101
  styles.input,
100
102
  {
@@ -135,7 +137,7 @@ const styles = StyleSheet.create({
135
137
  paddingHorizontal: scale(4)
136
138
  },
137
139
  label: {
138
- fontSize: scale(12),
140
+ fontSize: RFValue(10),
139
141
  fontWeight: '500',
140
142
  backgroundColor: 'transparent'
141
143
  },
@@ -149,11 +151,11 @@ const styles = StyleSheet.create({
149
151
  input: {
150
152
  flex: 1,
151
153
  width: '100%',
152
- fontSize: scale(16),
154
+ fontSize: RFValue(14),
153
155
  minHeight: verticalScale(30)
154
156
  },
155
157
  errorText: {
156
- fontSize: scale(12),
158
+ fontSize: RFValue(10),
157
159
  marginTop: verticalScale(4),
158
160
  marginLeft: scale(8)
159
161
  }
@@ -16,8 +16,9 @@ import {
16
16
  } from 'react-native';
17
17
  import { Eye, EyeOff } from 'lucide-react-native';
18
18
  import { scale, verticalScale, moderateScale } from 'react-native-size-matters';
19
- import { useTheme } from '../../theme/ThemeProvider';
19
+ import { useTheme } from '../../theme/hook/useTheme';
20
20
  import type { AppTheme } from '../../theme/themes';
21
+ import { RFValue } from 'react-native-responsive-fontsize';
21
22
 
22
23
  export interface InputTwoProps extends Omit<TextInputProps, 'theme'> {
23
24
  containerStyle?: ViewStyle;
@@ -158,7 +159,7 @@ const styles = StyleSheet.create({
158
159
  paddingHorizontal: scale(4)
159
160
  },
160
161
  label: {
161
- fontSize: scale(12),
162
+ fontSize: RFValue(11),
162
163
  fontWeight: '500',
163
164
  backgroundColor: 'transparent'
164
165
  },
@@ -176,12 +177,12 @@ const styles = StyleSheet.create({
176
177
  },
177
178
  input: {
178
179
  flex: 1,
179
- fontSize: scale(16),
180
+ fontSize: RFValue(14),
180
181
  minHeight: verticalScale(30),
181
182
  padding: 0
182
183
  },
183
184
  errorText: {
184
- fontSize: scale(12),
185
+ fontSize: RFValue(11),
185
186
  marginTop: verticalScale(4),
186
187
  marginLeft: scale(8)
187
188
  }
@@ -20,8 +20,9 @@ import { getExampleNumber } from 'libphonenumber-js';
20
20
  import examples from 'libphonenumber-js/mobile/examples';
21
21
  import { parsePhoneNumberFromString } from 'libphonenumber-js';
22
22
  import debounce from 'lodash.debounce';
23
- import { useTheme } from '../../theme/ThemeProvider';
23
+ import { useTheme } from '../../theme/hook/useTheme';
24
24
  import type { AppTheme } from '../../theme/themes';
25
+ import { RFValue } from 'react-native-responsive-fontsize';
25
26
 
26
27
  export interface PhoneNumberInputProps extends Pick<AccessibilityProps, 'accessibilityLabel' | 'accessibilityHint'> {
27
28
  value: string;
@@ -99,7 +100,7 @@ const PhoneNumberInputOne: React.FC<PhoneNumberInputProps> = ({
99
100
  onChangeText({
100
101
  fullNumber: '',
101
102
  formattedNumber: formattedText,
102
- countryCode: inputCallingCode ? `+${inputCallingCode}` : ''
103
+ countryCode: inputCallingCode
103
104
  });
104
105
  return;
105
106
  }
@@ -109,7 +110,7 @@ const PhoneNumberInputOne: React.FC<PhoneNumberInputProps> = ({
109
110
  onChangeText({
110
111
  fullNumber: '',
111
112
  formattedNumber: formattedText,
112
- countryCode: inputCallingCode ? `+${inputCallingCode}` : ''
113
+ countryCode: inputCallingCode
113
114
  });
114
115
  return;
115
116
  }
@@ -119,7 +120,7 @@ const PhoneNumberInputOne: React.FC<PhoneNumberInputProps> = ({
119
120
  onChangeText({
120
121
  fullNumber: '',
121
122
  formattedNumber: formattedText,
122
- countryCode: `+${inputCallingCode}`
123
+ countryCode: inputCallingCode
123
124
  });
124
125
  return;
125
126
  }
@@ -129,7 +130,7 @@ const PhoneNumberInputOne: React.FC<PhoneNumberInputProps> = ({
129
130
  onChangeText({
130
131
  fullNumber: '',
131
132
  formattedNumber: formattedText,
132
- countryCode: `+${inputCallingCode}`
133
+ countryCode: inputCallingCode
133
134
  });
134
135
  return;
135
136
  }
@@ -142,14 +143,14 @@ const PhoneNumberInputOne: React.FC<PhoneNumberInputProps> = ({
142
143
  onChangeText({
143
144
  fullNumber: e164,
144
145
  formattedNumber: formattedText,
145
- countryCode: `+${inputCallingCode}`
146
+ countryCode: inputCallingCode
146
147
  });
147
148
  } else {
148
149
  setInputError('Please enter a valid phone number');
149
150
  onChangeText({
150
151
  fullNumber: '',
151
152
  formattedNumber: formattedText,
152
- countryCode: `+${inputCallingCode}`
153
+ countryCode: inputCallingCode
153
154
  });
154
155
  }
155
156
  },
@@ -329,7 +330,7 @@ const styles = StyleSheet.create({
329
330
  borderRadius: scale(4)
330
331
  },
331
332
  label: {
332
- fontSize: scale(12),
333
+ fontSize: RFValue(10),
333
334
  fontWeight: '500',
334
335
  letterSpacing: 0.3
335
336
  },
@@ -359,12 +360,12 @@ const styles = StyleSheet.create({
359
360
  },
360
361
  textInput: {
361
362
  flex: 1,
362
- fontSize: scale(18),
363
+ fontSize: RFValue(16),
363
364
  padding: 0,
364
365
  fontWeight: '400'
365
366
  },
366
367
  codeTextStyle: {
367
- fontSize: scale(18),
368
+ fontSize: RFValue(16),
368
369
  fontWeight: '500'
369
370
  },
370
371
  countryPickerButtonStyle: {
@@ -373,7 +374,7 @@ const styles = StyleSheet.create({
373
374
  marginLeft: scale(-4)
374
375
  },
375
376
  errorText: {
376
- fontSize: scale(12),
377
+ fontSize: RFValue(10),
377
378
  marginTop: verticalScale(8),
378
379
  marginLeft: scale(12),
379
380
  fontWeight: '400',
@@ -1,17 +1,19 @@
1
1
  /**
2
2
  * @author Naresh Dhamu
3
- * @lastModified Mon 16 Jun 2025 at 12:35 PM
3
+ * @lastModified Fri 08 Aug 2025 at 08:14 AM
4
4
  */
5
- import React from 'react';
5
+ import React, { useEffect, useRef } from 'react';
6
6
  import {
7
7
  TouchableWithoutFeedback,
8
8
  Keyboard,
9
9
  KeyboardAvoidingView,
10
- Platform,
11
10
  StyleSheet,
11
+ Animated,
12
+ Platform,
13
+ StatusBar,
12
14
  type ViewStyle
13
15
  } from 'react-native';
14
- import { verticalScale } from 'react-native-size-matters';
16
+ import { scale } from 'react-native-size-matters';
15
17
 
16
18
  interface HideKeyboardProps {
17
19
  children: React.ReactNode;
@@ -23,24 +25,48 @@ interface HideKeyboardProps {
23
25
  const HideKeyboard: React.FC<HideKeyboardProps> = ({
24
26
  children,
25
27
  containerStyle,
26
- behavior = Platform.OS === 'ios' ? 'padding' : 'padding',
27
- keyboardVerticalOffset = Platform.OS === 'ios' ? verticalScale(-90) : verticalScale(-40)
28
+ behavior = 'padding',
29
+ keyboardVerticalOffset = scale(-160)
28
30
  }) => {
31
+ const fadeAnim = useRef(new Animated.Value(1)).current;
32
+
33
+ // Platform-based offset
34
+ const offset = keyboardVerticalOffset ?? (Platform.OS === 'ios' ? 0 : (StatusBar.currentHeight ?? 0));
35
+
36
+ useEffect(() => {
37
+ const showEvent = Platform.OS === 'ios' ? 'keyboardWillShow' : 'keyboardDidShow';
38
+ const hideEvent = Platform.OS === 'ios' ? 'keyboardWillHide' : 'keyboardDidHide';
39
+
40
+ const showSub = Keyboard.addListener(showEvent, () => {
41
+ Animated.timing(fadeAnim, {
42
+ toValue: 0.98,
43
+ duration: 250,
44
+ useNativeDriver: true
45
+ }).start();
46
+ });
47
+
48
+ const hideSub = Keyboard.addListener(hideEvent, () => {
49
+ Animated.timing(fadeAnim, {
50
+ toValue: 1,
51
+ duration: 250,
52
+ useNativeDriver: true
53
+ }).start();
54
+ });
55
+
56
+ return () => {
57
+ showSub.remove();
58
+ hideSub.remove();
59
+ };
60
+ }, [fadeAnim]);
61
+
29
62
  return (
30
63
  <KeyboardAvoidingView
31
64
  style={[styles.keyboardAvoidingView, containerStyle]}
32
65
  behavior={behavior}
33
- keyboardVerticalOffset={keyboardVerticalOffset}
34
- enabled={true}
66
+ keyboardVerticalOffset={offset}
35
67
  >
36
68
  <TouchableWithoutFeedback onPress={Keyboard.dismiss} accessible={false}>
37
- <KeyboardAvoidingView
38
- style={[styles.keyboardAvoidingView, containerStyle]}
39
- behavior={behavior}
40
- keyboardVerticalOffset={keyboardVerticalOffset}
41
- >
42
- {children}
43
- </KeyboardAvoidingView>
69
+ <Animated.View style={{ flex: 1, transform: [{ scale: fadeAnim }] }}>{children}</Animated.View>
44
70
  </TouchableWithoutFeedback>
45
71
  </KeyboardAvoidingView>
46
72
  );