@zezosoft/zezo-ott-react-native-ui-kit 1.0.4 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (421) hide show
  1. package/lib/module/assets/animations/Failed.json +2103 -0
  2. package/lib/module/assets/animations/Pending.json +522 -0
  3. package/lib/module/assets/animations/Successful.json +2289 -0
  4. package/lib/module/components/Account/Account.js +4 -4
  5. package/lib/module/components/Account/Account.js.map +1 -1
  6. package/lib/module/components/Alert/AlertDialog.js +208 -0
  7. package/lib/module/components/Alert/AlertDialog.js.map +1 -0
  8. package/lib/module/components/Alert/UAAlert.js +5 -1
  9. package/lib/module/components/Alert/UAAlert.js.map +1 -1
  10. package/lib/module/components/Alert/index.js +1 -0
  11. package/lib/module/components/Alert/index.js.map +1 -1
  12. package/lib/module/components/Auth/AuthProvider/AuthProvider.js +240 -0
  13. package/lib/module/components/Auth/AuthProvider/AuthProvider.js.map +1 -0
  14. package/lib/module/components/Auth/ForgotPassword/ForgotPassword.js +4 -8
  15. package/lib/module/components/Auth/ForgotPassword/ForgotPassword.js.map +1 -1
  16. package/lib/module/components/Auth/Login/LoginWithEmail.js +7 -7
  17. package/lib/module/components/Auth/Login/LoginWithEmail.js.map +1 -1
  18. package/lib/module/components/Auth/Login/LoginWithPhone.js +6 -6
  19. package/lib/module/components/Auth/Login/LoginWithPhone.js.map +1 -1
  20. package/lib/module/components/Auth/OTP/OTP.js +5 -5
  21. package/lib/module/components/Auth/OTP/OTP.js.map +1 -1
  22. package/lib/module/components/Auth/QrLogin/QrLogin.js +8 -9
  23. package/lib/module/components/Auth/QrLogin/QrLogin.js.map +1 -1
  24. package/lib/module/components/Auth/QrLogin/components/QrViewArea.js +2 -2
  25. package/lib/module/components/Auth/QrLogin/components/QrViewArea.js.map +1 -1
  26. package/lib/module/components/Auth/SignUp/SignUp.js +9 -9
  27. package/lib/module/components/Auth/SignUp/SignUp.js.map +1 -1
  28. package/lib/module/components/Auth/SplashScreen/SplashScreen.js +62 -73
  29. package/lib/module/components/Auth/SplashScreen/SplashScreen.js.map +1 -1
  30. package/lib/module/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.js +82 -41
  31. package/lib/module/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.js.map +1 -1
  32. package/lib/module/components/Auth/index.js +2 -0
  33. package/lib/module/components/Auth/index.js.map +1 -1
  34. package/lib/module/components/BackgroundLayout/BackgroundLayout.js +8 -4
  35. package/lib/module/components/BackgroundLayout/BackgroundLayout.js.map +1 -1
  36. package/lib/module/components/BlogView/BlogView.js +8 -7
  37. package/lib/module/components/BlogView/BlogView.js.map +1 -1
  38. package/lib/module/components/Button/BackBtn.js +2 -2
  39. package/lib/module/components/Button/BackBtn.js.map +1 -1
  40. package/lib/module/components/Button/MenuBtn.js +2 -2
  41. package/lib/module/components/Button/MenuBtn.js.map +1 -1
  42. package/lib/module/components/Button/PrimaryBtn.js +2 -2
  43. package/lib/module/components/Button/PrimaryBtn.js.map +1 -1
  44. package/lib/module/components/Button/SecondaryBtn.js +91 -0
  45. package/lib/module/components/Button/SecondaryBtn.js.map +1 -0
  46. package/lib/module/components/Button/TextButton.js +2 -2
  47. package/lib/module/components/Button/TextButton.js.map +1 -1
  48. package/lib/module/components/Button/index.js +2 -0
  49. package/lib/module/components/Button/index.js.map +1 -1
  50. package/lib/module/components/Content/Card/Category/Category.js +3 -3
  51. package/lib/module/components/Content/Card/Category/Category.js.map +1 -1
  52. package/lib/module/components/Content/Card/NowWatching/NowWatching.js +11 -6
  53. package/lib/module/components/Content/Card/NowWatching/NowWatching.js.map +1 -1
  54. package/lib/module/components/Content/Card/Sliders/Styles/One.js +9 -6
  55. package/lib/module/components/Content/Card/Sliders/Styles/One.js.map +1 -1
  56. package/lib/module/components/Content/Card/Sliders/Styles/Two.js +7 -3
  57. package/lib/module/components/Content/Card/Sliders/Styles/Two.js.map +1 -1
  58. package/lib/module/components/Content/Card/Styles/Five.js +5 -3
  59. package/lib/module/components/Content/Card/Styles/Five.js.map +1 -1
  60. package/lib/module/components/Content/Card/Styles/Four.js +5 -3
  61. package/lib/module/components/Content/Card/Styles/Four.js.map +1 -1
  62. package/lib/module/components/Content/Card/Styles/One.js +11 -6
  63. package/lib/module/components/Content/Card/Styles/One.js.map +1 -1
  64. package/lib/module/components/Content/Card/Styles/RotateInOut.js +5 -3
  65. package/lib/module/components/Content/Card/Styles/RotateInOut.js.map +1 -1
  66. package/lib/module/components/Content/Card/Styles/Six.js +9 -4
  67. package/lib/module/components/Content/Card/Styles/Six.js.map +1 -1
  68. package/lib/module/components/Content/Card/Styles/Three.js +5 -3
  69. package/lib/module/components/Content/Card/Styles/Three.js.map +1 -1
  70. package/lib/module/components/Content/Card/Styles/TopTen.js +5 -3
  71. package/lib/module/components/Content/Card/Styles/TopTen.js.map +1 -1
  72. package/lib/module/components/Content/Card/Styles/Two.js +5 -3
  73. package/lib/module/components/Content/Card/Styles/Two.js.map +1 -1
  74. package/lib/module/components/Content/Card/components/CardPoster.js +13 -28
  75. package/lib/module/components/Content/Card/components/CardPoster.js.map +1 -1
  76. package/lib/module/components/Content/Card/components/NoContentFallback.js +2 -2
  77. package/lib/module/components/Content/Card/components/NoContentFallback.js.map +1 -1
  78. package/lib/module/components/Content/Card/components/RentOrBuyIcon.js +116 -0
  79. package/lib/module/components/Content/Card/components/RentOrBuyIcon.js.map +1 -0
  80. package/lib/module/components/Content/Card/components/ShowAllButton.js +3 -1
  81. package/lib/module/components/Content/Card/components/ShowAllButton.js.map +1 -1
  82. package/lib/module/components/Content/Card/components/ThumbnailCard.js +1 -2
  83. package/lib/module/components/Content/Card/components/ThumbnailCard.js.map +1 -1
  84. package/lib/module/components/ContentView/ContentView.js +6 -5
  85. package/lib/module/components/ContentView/ContentView.js.map +1 -1
  86. package/lib/module/components/ContentView/MoreContentList.js +4 -2
  87. package/lib/module/components/ContentView/MoreContentList.js.map +1 -1
  88. package/lib/module/components/ContentView/components/EpisodeCard.js +21 -16
  89. package/lib/module/components/ContentView/components/EpisodeCard.js.map +1 -1
  90. package/lib/module/components/ContentView/components/HeroBanner.js +29 -8
  91. package/lib/module/components/ContentView/components/HeroBanner.js.map +1 -1
  92. package/lib/module/components/ContentView/components/TrailerButton.js +5 -5
  93. package/lib/module/components/ContentView/components/TrailerButton.js.map +1 -1
  94. package/lib/module/components/Headers/AppHeader.js +2 -2
  95. package/lib/module/components/Headers/AppHeader.js.map +1 -1
  96. package/lib/module/components/Headers/One.js +2 -2
  97. package/lib/module/components/Headers/One.js.map +1 -1
  98. package/lib/module/components/Headers/Three.js +2 -2
  99. package/lib/module/components/Headers/Three.js.map +1 -1
  100. package/lib/module/components/Headers/Two.js +2 -2
  101. package/lib/module/components/Headers/Two.js.map +1 -1
  102. package/lib/module/components/Input/InputOne.js +2 -2
  103. package/lib/module/components/Input/InputOne.js.map +1 -1
  104. package/lib/module/components/Input/InputTwo.js +2 -2
  105. package/lib/module/components/Input/InputTwo.js.map +1 -1
  106. package/lib/module/components/Input/PhoneNumberInput.js +5 -4
  107. package/lib/module/components/Input/PhoneNumberInput.js.map +1 -1
  108. package/lib/module/components/Logo/Logo.js +7 -7
  109. package/lib/module/components/Logo/Logo.js.map +1 -1
  110. package/lib/module/components/Reels/ReelsSeries/Model/Synopsis.js +0 -4
  111. package/lib/module/components/Reels/ReelsSeries/Model/Synopsis.js.map +1 -1
  112. package/lib/module/components/Search/One.js +4 -4
  113. package/lib/module/components/Search/One.js.map +1 -1
  114. package/lib/module/components/Search/components/SearchCard.js +2 -2
  115. package/lib/module/components/Search/components/SearchCard.js.map +1 -1
  116. package/lib/module/components/Settings/AppSettings.js +4 -4
  117. package/lib/module/components/Settings/AppSettings.js.map +1 -1
  118. package/lib/module/components/Subscription/SubOne.js +11 -10
  119. package/lib/module/components/Subscription/SubOne.js.map +1 -1
  120. package/lib/module/components/TabBar/One.js +8 -5
  121. package/lib/module/components/TabBar/One.js.map +1 -1
  122. package/lib/module/components/TabBar/Three.js +2 -2
  123. package/lib/module/components/TabBar/Three.js.map +1 -1
  124. package/lib/module/components/TabBar/Two.js +8 -5
  125. package/lib/module/components/TabBar/Two.js.map +1 -1
  126. package/lib/module/components/Text/Text.js +3 -2
  127. package/lib/module/components/Text/Text.js.map +1 -1
  128. package/lib/module/components/User/DeviceSessions/DeviceSessions.js +4 -3
  129. package/lib/module/components/User/DeviceSessions/DeviceSessions.js.map +1 -1
  130. package/lib/module/components/User/ProfileUpdate/ProfileUpdate.js +17 -20
  131. package/lib/module/components/User/ProfileUpdate/ProfileUpdate.js.map +1 -1
  132. package/lib/module/components/User/WatchHistory/WatchHistory.js +4 -3
  133. package/lib/module/components/User/WatchHistory/WatchHistory.js.map +1 -1
  134. package/lib/module/components/User/WatchLater/WatchLater.js +6 -3
  135. package/lib/module/components/User/WatchLater/WatchLater.js.map +1 -1
  136. package/lib/module/components/User/components/UserAvatar.js +41 -11
  137. package/lib/module/components/User/components/UserAvatar.js.map +1 -1
  138. package/lib/module/components/User/components/UserSection.js +3 -3
  139. package/lib/module/components/User/components/UserSection.js.map +1 -1
  140. package/lib/module/components/common/AppStatusBar.js +41 -0
  141. package/lib/module/components/common/AppStatusBar.js.map +1 -0
  142. package/lib/module/components/layout/SafeAreaWrapper.js +2 -2
  143. package/lib/module/components/layout/SafeAreaWrapper.js.map +1 -1
  144. package/lib/module/hooks/useSplashCache.js +117 -0
  145. package/lib/module/hooks/useSplashCache.js.map +1 -0
  146. package/lib/module/store/RecentSearchesStore.js +0 -1
  147. package/lib/module/store/RecentSearchesStore.js.map +1 -1
  148. package/lib/module/store/splashStore.js +3 -7
  149. package/lib/module/store/splashStore.js.map +1 -1
  150. package/lib/module/store/themeStore.js +39 -0
  151. package/lib/module/store/themeStore.js.map +1 -0
  152. package/lib/module/theme/ThemeProvider.js +40 -69
  153. package/lib/module/theme/ThemeProvider.js.map +1 -1
  154. package/lib/module/theme/hook/index.js +5 -0
  155. package/lib/module/theme/hook/index.js.map +1 -0
  156. package/lib/module/theme/hook/useInternalTheme.js +46 -0
  157. package/lib/module/theme/hook/useInternalTheme.js.map +1 -0
  158. package/lib/module/theme/hook/useThemeStatusBar.js +27 -0
  159. package/lib/module/theme/hook/useThemeStatusBar.js.map +1 -0
  160. package/lib/module/theme/index.js +1 -2
  161. package/lib/module/theme/index.js.map +1 -1
  162. package/lib/module/theme/themes.js +6 -4
  163. package/lib/module/theme/themes.js.map +1 -1
  164. package/lib/typescript/src/components/Account/Account.d.ts +2 -2
  165. package/lib/typescript/src/components/Account/Account.d.ts.map +1 -1
  166. package/lib/typescript/src/components/Alert/AlertDialog.d.ts +18 -0
  167. package/lib/typescript/src/components/Alert/AlertDialog.d.ts.map +1 -0
  168. package/lib/typescript/src/components/Alert/UAAlert.d.ts +2 -2
  169. package/lib/typescript/src/components/Alert/UAAlert.d.ts.map +1 -1
  170. package/lib/typescript/src/components/Alert/index.d.ts +1 -0
  171. package/lib/typescript/src/components/Alert/index.d.ts.map +1 -1
  172. package/lib/typescript/src/components/Auth/AuthProvider/AuthProvider.d.ts +35 -0
  173. package/lib/typescript/src/components/Auth/AuthProvider/AuthProvider.d.ts.map +1 -0
  174. package/lib/typescript/src/components/Auth/ForgotPassword/ForgotPassword.d.ts +2 -2
  175. package/lib/typescript/src/components/Auth/ForgotPassword/ForgotPassword.d.ts.map +1 -1
  176. package/lib/typescript/src/components/Auth/Login/LoginWithEmail.d.ts +2 -2
  177. package/lib/typescript/src/components/Auth/Login/LoginWithEmail.d.ts.map +1 -1
  178. package/lib/typescript/src/components/Auth/Login/LoginWithPhone.d.ts +2 -2
  179. package/lib/typescript/src/components/Auth/Login/LoginWithPhone.d.ts.map +1 -1
  180. package/lib/typescript/src/components/Auth/OTP/OTP.d.ts +2 -2
  181. package/lib/typescript/src/components/Auth/OTP/OTP.d.ts.map +1 -1
  182. package/lib/typescript/src/components/Auth/QrLogin/QrLogin.d.ts +2 -2
  183. package/lib/typescript/src/components/Auth/QrLogin/QrLogin.d.ts.map +1 -1
  184. package/lib/typescript/src/components/Auth/QrLogin/components/QrViewArea.d.ts +2 -2
  185. package/lib/typescript/src/components/Auth/QrLogin/components/QrViewArea.d.ts.map +1 -1
  186. package/lib/typescript/src/components/Auth/SignUp/SignUp.d.ts +2 -2
  187. package/lib/typescript/src/components/Auth/SignUp/SignUp.d.ts.map +1 -1
  188. package/lib/typescript/src/components/Auth/SplashScreen/SplashScreen.d.ts +6 -5
  189. package/lib/typescript/src/components/Auth/SplashScreen/SplashScreen.d.ts.map +1 -1
  190. package/lib/typescript/src/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.d.ts +1 -1
  191. package/lib/typescript/src/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.d.ts.map +1 -1
  192. package/lib/typescript/src/components/Auth/index.d.ts +7 -5
  193. package/lib/typescript/src/components/Auth/index.d.ts.map +1 -1
  194. package/lib/typescript/src/components/BackgroundLayout/BackgroundLayout.d.ts +2 -2
  195. package/lib/typescript/src/components/BackgroundLayout/BackgroundLayout.d.ts.map +1 -1
  196. package/lib/typescript/src/components/BlogView/BlogView.d.ts +2 -2
  197. package/lib/typescript/src/components/BlogView/BlogView.d.ts.map +1 -1
  198. package/lib/typescript/src/components/Button/BackBtn.d.ts +2 -2
  199. package/lib/typescript/src/components/Button/BackBtn.d.ts.map +1 -1
  200. package/lib/typescript/src/components/Button/MenuBtn.d.ts +2 -2
  201. package/lib/typescript/src/components/Button/MenuBtn.d.ts.map +1 -1
  202. package/lib/typescript/src/components/Button/PrimaryBtn.d.ts +2 -2
  203. package/lib/typescript/src/components/Button/PrimaryBtn.d.ts.map +1 -1
  204. package/lib/typescript/src/components/Button/SecondaryBtn.d.ts +21 -0
  205. package/lib/typescript/src/components/Button/SecondaryBtn.d.ts.map +1 -0
  206. package/lib/typescript/src/components/Button/index.d.ts +13 -2
  207. package/lib/typescript/src/components/Button/index.d.ts.map +1 -1
  208. package/lib/typescript/src/components/Content/Card/Category/Category.d.ts +2 -2
  209. package/lib/typescript/src/components/Content/Card/Category/Category.d.ts.map +1 -1
  210. package/lib/typescript/src/components/Content/Card/NowWatching/NowWatching.d.ts +2 -2
  211. package/lib/typescript/src/components/Content/Card/NowWatching/NowWatching.d.ts.map +1 -1
  212. package/lib/typescript/src/components/Content/Card/Sliders/Styles/One.d.ts +2 -2
  213. package/lib/typescript/src/components/Content/Card/Sliders/Styles/One.d.ts.map +1 -1
  214. package/lib/typescript/src/components/Content/Card/Sliders/Styles/Two.d.ts +2 -2
  215. package/lib/typescript/src/components/Content/Card/Sliders/Styles/Two.d.ts.map +1 -1
  216. package/lib/typescript/src/components/Content/Card/Sliders/index.d.ts +2 -2
  217. package/lib/typescript/src/components/Content/Card/Styles/Five.d.ts +2 -2
  218. package/lib/typescript/src/components/Content/Card/Styles/Five.d.ts.map +1 -1
  219. package/lib/typescript/src/components/Content/Card/Styles/Four.d.ts +2 -2
  220. package/lib/typescript/src/components/Content/Card/Styles/Four.d.ts.map +1 -1
  221. package/lib/typescript/src/components/Content/Card/Styles/One.d.ts +2 -2
  222. package/lib/typescript/src/components/Content/Card/Styles/One.d.ts.map +1 -1
  223. package/lib/typescript/src/components/Content/Card/Styles/RotateInOut.d.ts +2 -2
  224. package/lib/typescript/src/components/Content/Card/Styles/RotateInOut.d.ts.map +1 -1
  225. package/lib/typescript/src/components/Content/Card/Styles/Six.d.ts +2 -2
  226. package/lib/typescript/src/components/Content/Card/Styles/Six.d.ts.map +1 -1
  227. package/lib/typescript/src/components/Content/Card/Styles/Three.d.ts +2 -2
  228. package/lib/typescript/src/components/Content/Card/Styles/Three.d.ts.map +1 -1
  229. package/lib/typescript/src/components/Content/Card/Styles/TopTen.d.ts +2 -2
  230. package/lib/typescript/src/components/Content/Card/Styles/TopTen.d.ts.map +1 -1
  231. package/lib/typescript/src/components/Content/Card/Styles/Two.d.ts +2 -2
  232. package/lib/typescript/src/components/Content/Card/Styles/Two.d.ts.map +1 -1
  233. package/lib/typescript/src/components/Content/Card/components/CardPoster.d.ts +4 -2
  234. package/lib/typescript/src/components/Content/Card/components/CardPoster.d.ts.map +1 -1
  235. package/lib/typescript/src/components/Content/Card/components/NoContentFallback.d.ts +2 -2
  236. package/lib/typescript/src/components/Content/Card/components/NoContentFallback.d.ts.map +1 -1
  237. package/lib/typescript/src/components/Content/Card/components/RentOrBuyIcon.d.ts +14 -0
  238. package/lib/typescript/src/components/Content/Card/components/RentOrBuyIcon.d.ts.map +1 -0
  239. package/lib/typescript/src/components/Content/Card/components/ShowAllButton.d.ts +2 -0
  240. package/lib/typescript/src/components/Content/Card/components/ShowAllButton.d.ts.map +1 -1
  241. package/lib/typescript/src/components/Content/Card/index.d.ts +10 -10
  242. package/lib/typescript/src/components/Content/Content.d.ts +2 -2
  243. package/lib/typescript/src/components/Content/Content.d.ts.map +1 -1
  244. package/lib/typescript/src/components/Content/Sections.d.ts +2 -2
  245. package/lib/typescript/src/components/Content/Sections.d.ts.map +1 -1
  246. package/lib/typescript/src/components/ContentView/ContentView.d.ts.map +1 -1
  247. package/lib/typescript/src/components/ContentView/MoreContentList.d.ts +2 -2
  248. package/lib/typescript/src/components/ContentView/MoreContentList.d.ts.map +1 -1
  249. package/lib/typescript/src/components/ContentView/components/EpisodeCard.d.ts +3 -3
  250. package/lib/typescript/src/components/ContentView/components/EpisodeCard.d.ts.map +1 -1
  251. package/lib/typescript/src/components/ContentView/components/HeroBanner.d.ts +1 -1
  252. package/lib/typescript/src/components/ContentView/components/HeroBanner.d.ts.map +1 -1
  253. package/lib/typescript/src/components/ContentView/components/TrailerButton.d.ts +2 -2
  254. package/lib/typescript/src/components/ContentView/components/TrailerButton.d.ts.map +1 -1
  255. package/lib/typescript/src/components/Headers/AppHeader.d.ts +2 -2
  256. package/lib/typescript/src/components/Headers/AppHeader.d.ts.map +1 -1
  257. package/lib/typescript/src/components/Headers/One.d.ts +2 -2
  258. package/lib/typescript/src/components/Headers/One.d.ts.map +1 -1
  259. package/lib/typescript/src/components/Headers/Three.d.ts +2 -2
  260. package/lib/typescript/src/components/Headers/Three.d.ts.map +1 -1
  261. package/lib/typescript/src/components/Headers/Two.d.ts +2 -2
  262. package/lib/typescript/src/components/Headers/Two.d.ts.map +1 -1
  263. package/lib/typescript/src/components/Input/InputOne.d.ts +2 -2
  264. package/lib/typescript/src/components/Input/InputOne.d.ts.map +1 -1
  265. package/lib/typescript/src/components/Input/InputTwo.d.ts +2 -2
  266. package/lib/typescript/src/components/Input/InputTwo.d.ts.map +1 -1
  267. package/lib/typescript/src/components/Input/PhoneNumberInput.d.ts +2 -2
  268. package/lib/typescript/src/components/Input/PhoneNumberInput.d.ts.map +1 -1
  269. package/lib/typescript/src/components/Logo/Logo.d.ts +2 -2
  270. package/lib/typescript/src/components/Logo/Logo.d.ts.map +1 -1
  271. package/lib/typescript/src/components/Reels/ReelsSeries/Model/Synopsis.d.ts.map +1 -1
  272. package/lib/typescript/src/components/Search/One.d.ts +2 -2
  273. package/lib/typescript/src/components/Search/One.d.ts.map +1 -1
  274. package/lib/typescript/src/components/Search/components/SearchCard.d.ts +2 -2
  275. package/lib/typescript/src/components/Search/components/SearchCard.d.ts.map +1 -1
  276. package/lib/typescript/src/components/Settings/AppSettings.d.ts +2 -2
  277. package/lib/typescript/src/components/Settings/AppSettings.d.ts.map +1 -1
  278. package/lib/typescript/src/components/Subscription/SubOne.d.ts +2 -2
  279. package/lib/typescript/src/components/Subscription/SubOne.d.ts.map +1 -1
  280. package/lib/typescript/src/components/Subscription/index.d.ts +1 -1
  281. package/lib/typescript/src/components/Subscription/index.d.ts.map +1 -1
  282. package/lib/typescript/src/components/TabBar/One.d.ts +2 -2
  283. package/lib/typescript/src/components/TabBar/One.d.ts.map +1 -1
  284. package/lib/typescript/src/components/TabBar/Three.d.ts +2 -2
  285. package/lib/typescript/src/components/TabBar/Three.d.ts.map +1 -1
  286. package/lib/typescript/src/components/TabBar/Two.d.ts +2 -2
  287. package/lib/typescript/src/components/TabBar/Two.d.ts.map +1 -1
  288. package/lib/typescript/src/components/Text/Text.d.ts +2 -0
  289. package/lib/typescript/src/components/Text/Text.d.ts.map +1 -1
  290. package/lib/typescript/src/components/User/DeviceSessions/DeviceSessions.d.ts +2 -2
  291. package/lib/typescript/src/components/User/DeviceSessions/DeviceSessions.d.ts.map +1 -1
  292. package/lib/typescript/src/components/User/ProfileUpdate/ProfileUpdate.d.ts +4 -4
  293. package/lib/typescript/src/components/User/ProfileUpdate/ProfileUpdate.d.ts.map +1 -1
  294. package/lib/typescript/src/components/User/WatchHistory/WatchHistory.d.ts +2 -2
  295. package/lib/typescript/src/components/User/WatchHistory/WatchHistory.d.ts.map +1 -1
  296. package/lib/typescript/src/components/User/WatchLater/WatchLater.d.ts +2 -2
  297. package/lib/typescript/src/components/User/WatchLater/WatchLater.d.ts.map +1 -1
  298. package/lib/typescript/src/components/User/components/UserAvatar.d.ts +6 -2
  299. package/lib/typescript/src/components/User/components/UserAvatar.d.ts.map +1 -1
  300. package/lib/typescript/src/components/User/components/UserSection.d.ts +2 -2
  301. package/lib/typescript/src/components/User/components/UserSection.d.ts.map +1 -1
  302. package/lib/typescript/src/components/common/AppStatusBar.d.ts +17 -0
  303. package/lib/typescript/src/components/common/AppStatusBar.d.ts.map +1 -0
  304. package/lib/typescript/src/components/layout/SafeAreaWrapper.d.ts +2 -2
  305. package/lib/typescript/src/components/layout/SafeAreaWrapper.d.ts.map +1 -1
  306. package/lib/typescript/src/hooks/useSplashCache.d.ts +22 -0
  307. package/lib/typescript/src/hooks/useSplashCache.d.ts.map +1 -0
  308. package/lib/typescript/src/store/RecentSearchesStore.d.ts.map +1 -1
  309. package/lib/typescript/src/store/themeStore.d.ts +7 -0
  310. package/lib/typescript/src/store/themeStore.d.ts.map +1 -0
  311. package/lib/typescript/src/theme/ThemeProvider.d.ts +17 -10
  312. package/lib/typescript/src/theme/ThemeProvider.d.ts.map +1 -1
  313. package/lib/typescript/src/theme/hook/index.d.ts +3 -0
  314. package/lib/typescript/src/theme/hook/index.d.ts.map +1 -0
  315. package/lib/typescript/src/theme/hook/useInternalTheme.d.ts +3 -0
  316. package/lib/typescript/src/theme/hook/useInternalTheme.d.ts.map +1 -0
  317. package/lib/typescript/src/theme/hook/useThemeStatusBar.d.ts +10 -0
  318. package/lib/typescript/src/theme/hook/useThemeStatusBar.d.ts.map +1 -0
  319. package/lib/typescript/src/theme/index.d.ts +1 -6
  320. package/lib/typescript/src/theme/index.d.ts.map +1 -1
  321. package/lib/typescript/src/theme/themes.d.ts +14 -2
  322. package/lib/typescript/src/theme/themes.d.ts.map +1 -1
  323. package/lib/typescript/src/types/content/content-view.types.d.ts +4 -3
  324. package/lib/typescript/src/types/content/content-view.types.d.ts.map +1 -1
  325. package/package.json +1 -1
  326. package/src/assets/animations/Failed.json +2103 -0
  327. package/src/assets/animations/Pending.json +522 -0
  328. package/src/assets/animations/Successful.json +2289 -0
  329. package/src/components/Account/Account.tsx +6 -6
  330. package/src/components/Alert/AlertDialog.tsx +247 -0
  331. package/src/components/Alert/UAAlert.tsx +5 -3
  332. package/src/components/Alert/index.ts +1 -0
  333. package/src/components/Auth/AuthProvider/AuthProvider.tsx +294 -0
  334. package/src/components/Auth/ForgotPassword/ForgotPassword.tsx +6 -8
  335. package/src/components/Auth/Login/LoginWithEmail.tsx +9 -9
  336. package/src/components/Auth/Login/LoginWithPhone.tsx +8 -8
  337. package/src/components/Auth/OTP/OTP.tsx +7 -7
  338. package/src/components/Auth/QrLogin/QrLogin.tsx +8 -12
  339. package/src/components/Auth/QrLogin/components/QrViewArea.tsx +4 -4
  340. package/src/components/Auth/SignUp/SignUp.tsx +11 -11
  341. package/src/components/Auth/SplashScreen/SplashScreen.tsx +87 -91
  342. package/src/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.tsx +90 -40
  343. package/src/components/Auth/index.ts +2 -0
  344. package/src/components/BackgroundLayout/BackgroundLayout.tsx +8 -6
  345. package/src/components/BlogView/BlogView.tsx +13 -8
  346. package/src/components/Button/BackBtn.tsx +4 -4
  347. package/src/components/Button/MenuBtn.tsx +4 -4
  348. package/src/components/Button/PrimaryBtn.tsx +4 -4
  349. package/src/components/Button/SecondaryBtn.tsx +116 -0
  350. package/src/components/Button/TextButton.tsx +2 -2
  351. package/src/components/Button/index.ts +2 -0
  352. package/src/components/Content/Card/Category/Category.tsx +5 -5
  353. package/src/components/Content/Card/NowWatching/NowWatching.tsx +10 -5
  354. package/src/components/Content/Card/Sliders/Styles/One.tsx +10 -5
  355. package/src/components/Content/Card/Sliders/Styles/Two.tsx +9 -4
  356. package/src/components/Content/Card/Styles/Five.tsx +6 -5
  357. package/src/components/Content/Card/Styles/Four.tsx +6 -5
  358. package/src/components/Content/Card/Styles/One.tsx +12 -6
  359. package/src/components/Content/Card/Styles/RotateInOut.tsx +6 -5
  360. package/src/components/Content/Card/Styles/Six.tsx +10 -5
  361. package/src/components/Content/Card/Styles/Three.tsx +6 -5
  362. package/src/components/Content/Card/Styles/TopTen.tsx +6 -5
  363. package/src/components/Content/Card/Styles/Two.tsx +6 -5
  364. package/src/components/Content/Card/components/CardPoster.tsx +24 -51
  365. package/src/components/Content/Card/components/NoContentFallback.tsx +4 -4
  366. package/src/components/Content/Card/components/RentOrBuyIcon.tsx +109 -0
  367. package/src/components/Content/Card/components/ShowAllButton.tsx +6 -1
  368. package/src/components/Content/Card/components/ThumbnailCard.tsx +1 -2
  369. package/src/components/Content/Content.tsx +2 -2
  370. package/src/components/Content/Sections.tsx +2 -2
  371. package/src/components/ContentView/ContentView.tsx +6 -5
  372. package/src/components/ContentView/MoreContentList.tsx +6 -4
  373. package/src/components/ContentView/components/EpisodeCard.tsx +25 -17
  374. package/src/components/ContentView/components/HeroBanner.tsx +26 -3
  375. package/src/components/ContentView/components/TrailerButton.tsx +6 -5
  376. package/src/components/Headers/AppHeader.tsx +4 -4
  377. package/src/components/Headers/One.tsx +4 -4
  378. package/src/components/Headers/Three.tsx +4 -4
  379. package/src/components/Headers/Two.tsx +4 -4
  380. package/src/components/Input/InputOne.tsx +4 -4
  381. package/src/components/Input/InputTwo.tsx +4 -4
  382. package/src/components/Input/PhoneNumberInput.tsx +5 -5
  383. package/src/components/Logo/Logo.tsx +9 -11
  384. package/src/components/Reels/ReelsSeries/Model/Synopsis.tsx +1 -8
  385. package/src/components/Search/One.tsx +10 -9
  386. package/src/components/Search/components/SearchCard.tsx +4 -4
  387. package/src/components/Settings/AppSettings.tsx +6 -6
  388. package/src/components/Subscription/SubOne.tsx +19 -18
  389. package/src/components/TabBar/One.tsx +10 -6
  390. package/src/components/TabBar/Three.tsx +4 -4
  391. package/src/components/TabBar/Two.tsx +9 -6
  392. package/src/components/Text/Text.tsx +5 -2
  393. package/src/components/User/DeviceSessions/DeviceSessions.tsx +6 -5
  394. package/src/components/User/ProfileUpdate/ProfileUpdate.tsx +20 -26
  395. package/src/components/User/WatchHistory/WatchHistory.tsx +6 -5
  396. package/src/components/User/WatchLater/WatchLater.tsx +8 -6
  397. package/src/components/User/components/UserAvatar.tsx +46 -7
  398. package/src/components/User/components/UserSection.tsx +5 -5
  399. package/src/components/common/AppStatusBar.tsx +51 -0
  400. package/src/components/layout/SafeAreaWrapper.tsx +4 -4
  401. package/src/hooks/useSplashCache.ts +166 -0
  402. package/src/store/RecentSearchesStore.ts +0 -1
  403. package/src/store/splashStore.ts +5 -5
  404. package/src/store/themeStore.ts +53 -0
  405. package/src/theme/ThemeProvider.tsx +40 -102
  406. package/src/theme/hook/index.ts +2 -0
  407. package/src/theme/hook/useInternalTheme.ts +61 -0
  408. package/src/theme/hook/useThemeStatusBar.ts +33 -0
  409. package/src/theme/index.ts +1 -7
  410. package/src/theme/themes.ts +20 -6
  411. package/src/types/content/content-view.types.ts +4 -3
  412. package/lib/module/hooks/useInitSplashCacheSync.js +0 -116
  413. package/lib/module/hooks/useInitSplashCacheSync.js.map +0 -1
  414. package/lib/module/theme/hook/useTheme.js +0 -45
  415. package/lib/module/theme/hook/useTheme.js.map +0 -1
  416. package/lib/typescript/src/hooks/useInitSplashCacheSync.d.ts +0 -22
  417. package/lib/typescript/src/hooks/useInitSplashCacheSync.d.ts.map +0 -1
  418. package/lib/typescript/src/theme/hook/useTheme.d.ts +0 -9
  419. package/lib/typescript/src/theme/hook/useTheme.d.ts.map +0 -1
  420. package/src/hooks/useInitSplashCacheSync.ts +0 -174
  421. package/src/theme/hook/useTheme.ts +0 -45
@@ -11,7 +11,7 @@ import {
11
11
  type TextStyle,
12
12
  } from 'react-native';
13
13
  import { ChevronRight, Trash2 } from 'lucide-react-native';
14
- import { useTheme } from '../../theme/hook/useTheme';
14
+ import { useInternalTheme } from '../../theme/hook/useInternalTheme';
15
15
  import { moderateScale, scale, verticalScale } from 'react-native-size-matters';
16
16
  import AppHeader from '../Headers/AppHeader';
17
17
  import SkeletonPlaceholder from 'react-native-skeleton-placeholder';
@@ -19,7 +19,7 @@ import UserSection from '../User/components/UserSection';
19
19
  import TextButton from '../Button/TextButton';
20
20
  import { Text } from '../Text';
21
21
  import { useSafeAreaInsets } from 'react-native-safe-area-context';
22
- import type { AppTheme, ITheme } from '../../theme/themes';
22
+ import type { ThemeOverride, ITheme } from '../../theme/themes';
23
23
  import { RFValue } from 'react-native-responsive-fontsize';
24
24
  import { cloneElement, isValidElement, memo, type ReactElement } from 'react';
25
25
 
@@ -62,7 +62,7 @@ export type AccountProps = {
62
62
  renderUserInfo?: (userInfo: UserInfo) => React.ReactNode;
63
63
  sections: AccountSection[];
64
64
  onBackPress?: () => void;
65
- theme?: AppTheme;
65
+ theme?: ThemeOverride;
66
66
  isLoading?: boolean;
67
67
  avatarComponent?: React.ReactNode;
68
68
  skeletonProps?: Partial<React.ComponentProps<typeof SkeletonPlaceholder>>;
@@ -118,7 +118,7 @@ export const Account: React.FC<AccountProps> = ({
118
118
  onHelpPress,
119
119
  onDeleteAccountPress,
120
120
  }) => {
121
- const { theme: appliedTheme } = useTheme(theme);
121
+ const { theme: appliedTheme } = useInternalTheme(theme);
122
122
  const insets = useSafeAreaInsets();
123
123
 
124
124
  return (
@@ -128,7 +128,7 @@ export const Account: React.FC<AccountProps> = ({
128
128
  { backgroundColor: appliedTheme.colors.background },
129
129
  ]}
130
130
  >
131
- <AppHeader onBackPress={onBackPress} title={title} theme={appliedTheme} />
131
+ <AppHeader onBackPress={onBackPress} title={title} theme={theme} />
132
132
 
133
133
  <ScrollView
134
134
  contentContainerStyle={[
@@ -139,7 +139,7 @@ export const Account: React.FC<AccountProps> = ({
139
139
  keyboardShouldPersistTaps="handled"
140
140
  >
141
141
  <UserSection
142
- theme={appliedTheme}
142
+ theme={theme}
143
143
  userInfo={userInfo}
144
144
  avatarComponent={avatarComponent}
145
145
  isLoading={isLoading}
@@ -0,0 +1,247 @@
1
+ /**
2
+ * @author Naresh Dhamu
3
+ * @lastModified Sat 18 Oct 2025 at 06:45 PM
4
+ */
5
+ import React, { useEffect, useRef } from 'react';
6
+ import {
7
+ View,
8
+ TouchableOpacity,
9
+ StyleSheet,
10
+ Dimensions,
11
+ Modal,
12
+ Animated,
13
+ TouchableWithoutFeedback,
14
+ } from 'react-native';
15
+ import { Text } from '../Text';
16
+ import { X } from 'lucide-react-native';
17
+ import LottieView from 'lottie-react-native';
18
+ import { useInternalTheme } from '../../theme/hook/useInternalTheme';
19
+ import type { ThemeOverride } from '../../theme/themes';
20
+ import { scale, verticalScale, moderateScale } from 'react-native-size-matters';
21
+ import { RFValue } from 'react-native-responsive-fontsize';
22
+ import { Button } from '../Button';
23
+
24
+ const { width } = Dimensions.get('window');
25
+
26
+ export interface AlertDialogProps {
27
+ visible: boolean;
28
+ type: 'success' | 'pending' | 'failed';
29
+ title: string;
30
+ buttonText?: string;
31
+ onPressButton?: () => void;
32
+ onClose?: () => void;
33
+ theme?: ThemeOverride;
34
+ }
35
+
36
+ export const AlertDialog: React.FC<AlertDialogProps> = ({
37
+ visible,
38
+ type = 'success',
39
+ title,
40
+ buttonText,
41
+ onPressButton,
42
+ onClose,
43
+ theme,
44
+ }) => {
45
+ const { theme: appliedTheme } = useInternalTheme(theme);
46
+
47
+ const fadeAnim = useRef(new Animated.Value(0)).current;
48
+ const scaleAnim = useRef(new Animated.Value(0.85)).current;
49
+
50
+ useEffect(() => {
51
+ if (visible) {
52
+ Animated.parallel([
53
+ Animated.timing(fadeAnim, {
54
+ toValue: 1,
55
+ duration: 220,
56
+ useNativeDriver: true,
57
+ }),
58
+ Animated.spring(scaleAnim, {
59
+ toValue: 1,
60
+ friction: 7,
61
+ tension: 90,
62
+ useNativeDriver: true,
63
+ }),
64
+ ]).start();
65
+ } else {
66
+ Animated.parallel([
67
+ Animated.timing(fadeAnim, {
68
+ toValue: 0,
69
+ duration: 180,
70
+ useNativeDriver: true,
71
+ }),
72
+ Animated.timing(scaleAnim, {
73
+ toValue: 0.85,
74
+ duration: 180,
75
+ useNativeDriver: true,
76
+ }),
77
+ ]).start();
78
+ }
79
+ }, [fadeAnim, scaleAnim, visible]);
80
+
81
+ const animationMap = {
82
+ success: require('../../assets/animations/Successful.json'),
83
+ pending: require('../../assets/animations/Pending.json'),
84
+ failed: require('../../assets/animations/Failed.json'),
85
+ };
86
+
87
+ const defaultTitles = {
88
+ success: 'Account successfully created!',
89
+ pending: 'Please wait... Processing',
90
+ failed: 'Something went wrong!',
91
+ };
92
+
93
+ const defaultButtonText = {
94
+ success: 'Go to Home',
95
+ pending: 'Please Wait...',
96
+ failed: 'Try Again',
97
+ };
98
+
99
+ return (
100
+ <Modal
101
+ transparent
102
+ visible={visible}
103
+ animationType="none"
104
+ onRequestClose={onClose}
105
+ >
106
+ <Animated.View
107
+ style={[
108
+ styles.backdrop,
109
+ { backgroundColor: appliedTheme.colors.shadow },
110
+ ]}
111
+ >
112
+ <TouchableWithoutFeedback onPress={onClose}>
113
+ <View style={StyleSheet.absoluteFillObject} />
114
+ </TouchableWithoutFeedback>
115
+
116
+ <Animated.View
117
+ style={[
118
+ styles.centerContainer,
119
+ { opacity: fadeAnim, transform: [{ scale: scaleAnim }] },
120
+ ]}
121
+ >
122
+ <View
123
+ style={[
124
+ styles.dialogBox,
125
+ {
126
+ backgroundColor: appliedTheme.colors.surface,
127
+ shadowColor: appliedTheme.colors.shadow,
128
+ },
129
+ ]}
130
+ >
131
+ {/* Close Button */}
132
+ <TouchableOpacity
133
+ style={[
134
+ styles.closeButton,
135
+ { backgroundColor: appliedTheme.colors.background },
136
+ ]}
137
+ onPress={onClose}
138
+ activeOpacity={0.7}
139
+ >
140
+ <X
141
+ color={appliedTheme.colors.textPrimary}
142
+ size={scale(18)}
143
+ strokeWidth={2}
144
+ />
145
+ </TouchableOpacity>
146
+
147
+ {/* Content Wrapper */}
148
+ <View style={styles.contentWrapper}>
149
+ {/* Animation */}
150
+ <View style={styles.lottieStyle}>
151
+ <LottieView
152
+ source={animationMap[type]}
153
+ autoPlay
154
+ loop={type === 'pending'}
155
+ style={{ width: 500, height: 500, padding: 0 }}
156
+ />
157
+ </View>
158
+
159
+ {/* Title */}
160
+ <Text
161
+ style={[
162
+ styles.titleText,
163
+ { color: appliedTheme.colors.textPrimary },
164
+ ]}
165
+ >
166
+ {title || defaultTitles[type]}
167
+ </Text>
168
+ </View>
169
+
170
+ {/* Button fixed at bottom */}
171
+ <Button.Primary
172
+ title={buttonText || defaultButtonText[type]}
173
+ onPress={onPressButton}
174
+ disabled={type === 'pending'}
175
+ containerStyle={styles.bottomButton}
176
+ />
177
+ </View>
178
+ </Animated.View>
179
+ </Animated.View>
180
+ </Modal>
181
+ );
182
+ };
183
+
184
+ export default AlertDialog;
185
+ const styles = StyleSheet.create({
186
+ backdrop: {
187
+ flex: 1,
188
+ zIndex: 10,
189
+ backgroundColor: 'rgba(0,0,0,0.5)',
190
+ justifyContent: 'center',
191
+ alignItems: 'center',
192
+ overflow: 'hidden',
193
+ paddingHorizontal: scale(15),
194
+ },
195
+ centerContainer: {
196
+ justifyContent: 'center',
197
+ alignItems: 'center',
198
+ },
199
+ dialogBox: {
200
+ width: width * 0.85,
201
+ borderRadius: moderateScale(16),
202
+ paddingTop: verticalScale(20),
203
+ paddingBottom: verticalScale(15),
204
+ paddingHorizontal: scale(20),
205
+ shadowOpacity: 0.25,
206
+ shadowRadius: moderateScale(8),
207
+ shadowOffset: { width: 0, height: 3 },
208
+ elevation: 8,
209
+ minHeight: verticalScale(250),
210
+ justifyContent: 'flex-start',
211
+ },
212
+ closeButton: {
213
+ position: 'absolute',
214
+ top: verticalScale(8),
215
+ right: scale(8),
216
+ width: scale(28),
217
+ height: scale(28),
218
+ borderRadius: scale(14),
219
+ justifyContent: 'center',
220
+ alignItems: 'center',
221
+ zIndex: 10,
222
+ elevation: 6,
223
+ },
224
+ contentWrapper: {
225
+ alignItems: 'center',
226
+ marginBottom: verticalScale(50),
227
+ },
228
+ lottieStyle: {
229
+ width: scale(150),
230
+ height: scale(150),
231
+ justifyContent: 'center',
232
+ alignItems: 'center',
233
+ marginBottom: verticalScale(10),
234
+ },
235
+ titleText: {
236
+ fontSize: RFValue(15),
237
+ fontWeight: '600',
238
+ textAlign: 'center',
239
+ lineHeight: RFValue(20),
240
+ },
241
+ bottomButton: {
242
+ position: 'absolute',
243
+ bottom: verticalScale(15),
244
+ left: scale(15),
245
+ right: scale(15),
246
+ },
247
+ });
@@ -1,10 +1,11 @@
1
1
  import React from 'react';
2
2
  import { Modal, Text, View, TouchableOpacity, StyleSheet } from 'react-native';
3
3
  import { scale } from 'react-native-size-matters';
4
- import type { AppTheme } from '../../theme';
4
+ import type { ThemeOverride } from '../../theme/themes';
5
+ import { useInternalTheme } from '../../theme/hook';
5
6
 
6
7
  interface IProps {
7
- theme: AppTheme;
8
+ theme?: ThemeOverride;
8
9
  visible: boolean;
9
10
  title?: string;
10
11
  message?: string;
@@ -16,7 +17,7 @@ interface IProps {
16
17
  }
17
18
 
18
19
  export const UAAlert: React.FC<IProps> = ({
19
- theme,
20
+ theme: themeOverride,
20
21
  visible,
21
22
  title = 'Maturity Rating: 18+',
22
23
  message = 'May contain non-explicit sexual behavior, nudity, violence, strong language, substances.',
@@ -26,6 +27,7 @@ export const UAAlert: React.FC<IProps> = ({
26
27
  onPress,
27
28
  onRequestClose,
28
29
  }): React.ReactElement => {
30
+ const { theme } = useInternalTheme(themeOverride);
29
31
  return (
30
32
  <Modal
31
33
  animationType="fade"
@@ -1 +1,2 @@
1
1
  export * from './UAAlert';
2
+ export * from './AlertDialog';
@@ -0,0 +1,294 @@
1
+ /**
2
+ * @author Naresh Dhamu
3
+ * @lastModified Tue 22 Oct 2025
4
+ */
5
+ import React, { useEffect, useRef, useState } from 'react';
6
+ import {
7
+ View,
8
+ StyleSheet,
9
+ SafeAreaView,
10
+ TouchableOpacity,
11
+ Animated,
12
+ Platform,
13
+ } from 'react-native';
14
+ import { moderateScale, scale, verticalScale } from 'react-native-size-matters';
15
+ import { useInternalTheme } from '../../../theme/hook/useInternalTheme';
16
+ import { type ThemeOverride } from '../../../theme/themes';
17
+ import { Logo } from '../../Logo/Logo';
18
+ import { Text } from '../../Text';
19
+ import { BackgroundLayout } from '../../BackgroundLayout/BackgroundLayout';
20
+ import { Phone, Mail } from 'lucide-react-native';
21
+ import { Button } from '../../Button';
22
+
23
+ export interface AuthProviderProps {
24
+ logoUri: string;
25
+ title: string;
26
+ description?: string;
27
+ backgroundImage?: {
28
+ source: string | null;
29
+ gradientSplitBackground?: number;
30
+ resizeMode?: 'cover' | 'contain' | 'stretch' | 'repeat';
31
+ };
32
+ text?: {
33
+ loginWithPhone?: string;
34
+ loginWithEmail?: string;
35
+ };
36
+ variant?: 'one' | 'two';
37
+ theme?: ThemeOverride;
38
+ authProvider?: {
39
+ phone?: {
40
+ enabled?: boolean;
41
+ onPress?: () => void;
42
+ };
43
+ email?: {
44
+ enabled?: boolean;
45
+ onPress?: () => void;
46
+ };
47
+ };
48
+ }
49
+
50
+ const AuthProvider: React.FC<AuthProviderProps> = ({
51
+ title = 'Your Favourite OTT Platform',
52
+ description,
53
+ backgroundImage,
54
+ logoUri,
55
+ text,
56
+ variant = 'one',
57
+ theme: overrideTheme,
58
+ authProvider = {
59
+ phone: { enabled: true },
60
+ email: { enabled: true },
61
+ },
62
+ }) => {
63
+ const { theme: resolvedTheme } = useInternalTheme(overrideTheme);
64
+ const { colors } = resolvedTheme;
65
+
66
+ const phoneEnabled = !!authProvider.phone?.enabled;
67
+ const emailEnabled = !!authProvider.email?.enabled;
68
+
69
+ const [activeTab, setActiveTab] = useState<'phone' | 'email'>(
70
+ phoneEnabled ? 'phone' : 'email'
71
+ );
72
+
73
+ const slideAnim = useRef(new Animated.Value(80)).current;
74
+ const opacityAnim = useRef(new Animated.Value(0)).current;
75
+
76
+ useEffect(() => {
77
+ setActiveTab(phoneEnabled ? 'phone' : 'email');
78
+
79
+ Animated.parallel([
80
+ Animated.timing(slideAnim, {
81
+ toValue: 0,
82
+ duration: 600,
83
+ useNativeDriver: true,
84
+ }),
85
+ Animated.timing(opacityAnim, {
86
+ toValue: 1,
87
+ duration: 600,
88
+ useNativeDriver: true,
89
+ }),
90
+ ]).start();
91
+ }, [phoneEnabled, emailEnabled, slideAnim, opacityAnim]);
92
+
93
+ const triggerEvent = (type: 'phone' | 'email') => {
94
+ if (type === 'phone') authProvider.phone?.onPress?.();
95
+ else authProvider.email?.onPress?.();
96
+ };
97
+
98
+ const handlePress = (type: 'phone' | 'email') => {
99
+ if (activeTab !== type) setActiveTab(type);
100
+ setTimeout(() => triggerEvent(type), 100);
101
+ };
102
+
103
+ const authMethods: {
104
+ key: 'phone' | 'email';
105
+ label: string;
106
+ icon: React.ReactNode;
107
+ enabled: boolean;
108
+ }[] = [
109
+ {
110
+ key: 'phone',
111
+ label: text?.loginWithPhone || 'Phone',
112
+ icon: <Phone size={moderateScale(16)} />,
113
+ enabled: phoneEnabled,
114
+ },
115
+ {
116
+ key: 'email',
117
+ label: text?.loginWithEmail || 'Email',
118
+ icon: <Mail size={moderateScale(16)} />,
119
+ enabled: emailEnabled,
120
+ },
121
+ ];
122
+
123
+ const renderButtons = () => (
124
+ <View style={styles.buttonContainer}>
125
+ {authMethods
126
+ .filter((item) => item.enabled)
127
+ .map((item) => (
128
+ <Button.Secondary
129
+ key={item.key}
130
+ containerStyle={{
131
+ backgroundColor:
132
+ activeTab === item.key ? colors.button : 'transparent',
133
+ borderWidth: 1.2,
134
+ borderColor: colors.button,
135
+ }}
136
+ titleStyle={{
137
+ color:
138
+ activeTab === item.key ? colors.buttonText : colors.textPrimary,
139
+ }}
140
+ title={`Continue with ${item.label}`}
141
+ onPress={() => handlePress(item.key)}
142
+ leftIcon={React.cloneElement(item.icon as any, {
143
+ color:
144
+ activeTab === item.key ? colors.buttonText : colors.textPrimary,
145
+ size: moderateScale(18),
146
+ })}
147
+ />
148
+ ))}
149
+ </View>
150
+ );
151
+
152
+ // Toggle render without absolute
153
+ const renderToggle = () => {
154
+ const enabledMethods = authMethods.filter((m) => m.enabled);
155
+ return (
156
+ <View
157
+ style={[
158
+ styles.toggleWrapper,
159
+ {
160
+ backgroundColor: colors.surfaceVariant,
161
+ borderColor: colors.border,
162
+ },
163
+ ]}
164
+ >
165
+ {enabledMethods.map((item) => {
166
+ const isActive = activeTab === item.key;
167
+ return (
168
+ <TouchableOpacity
169
+ key={item.key}
170
+ style={[
171
+ styles.toggleHalf,
172
+ { backgroundColor: isActive ? colors.primary : 'transparent' },
173
+ ]}
174
+ onPress={() => handlePress(item.key)}
175
+ activeOpacity={0.8}
176
+ >
177
+ <View style={styles.iconTextRow}>
178
+ {React.cloneElement(item.icon as any, {
179
+ color: isActive ? colors.buttonText : colors.textPrimary,
180
+ })}
181
+ <Text
182
+ style={[
183
+ styles.toggleText,
184
+ {
185
+ color: isActive ? colors.buttonText : colors.textPrimary,
186
+ },
187
+ ]}
188
+ >
189
+ {item.label}
190
+ </Text>
191
+ </View>
192
+ </TouchableOpacity>
193
+ );
194
+ })}
195
+ </View>
196
+ );
197
+ };
198
+
199
+ return (
200
+ <BackgroundLayout
201
+ backgroundImage={backgroundImage?.source}
202
+ theme={overrideTheme}
203
+ gradientSplitBackground={backgroundImage?.gradientSplitBackground ?? 0.35}
204
+ resizeMode={backgroundImage?.resizeMode ?? 'cover'}
205
+ >
206
+ <SafeAreaView style={styles.safeArea}>
207
+ <View style={styles.container}>
208
+ <View style={styles.logoWrapper}>
209
+ <Logo logoUri={logoUri} />
210
+ </View>
211
+
212
+ <View style={styles.bottomSection}>
213
+ <Text style={[styles.title, { color: colors.textPrimary }]}>
214
+ {title}
215
+ </Text>
216
+ <Text
217
+ style={[styles.description, { color: colors.textSecondary }]}
218
+ numberOfLines={2}
219
+ adjustsFontSizeToFit
220
+ >
221
+ {description}
222
+ </Text>
223
+
224
+ <Animated.View
225
+ style={{
226
+ transform: [{ translateY: slideAnim }],
227
+ opacity: opacityAnim,
228
+ width: '100%',
229
+ }}
230
+ >
231
+ {variant === 'one' ? renderButtons() : renderToggle()}
232
+ </Animated.View>
233
+ </View>
234
+ </View>
235
+ </SafeAreaView>
236
+ </BackgroundLayout>
237
+ );
238
+ };
239
+
240
+ export default AuthProvider;
241
+
242
+ const styles = StyleSheet.create({
243
+ safeArea: { flex: 1, width: '100%' },
244
+ container: {
245
+ flex: 1,
246
+ justifyContent: 'space-between',
247
+ alignItems: 'center',
248
+ width: '100%',
249
+ paddingHorizontal: scale(18),
250
+ paddingVertical: verticalScale(20),
251
+ },
252
+ logoWrapper: {
253
+ flex: 1,
254
+ justifyContent: 'center',
255
+ alignItems: 'center',
256
+ },
257
+ bottomSection: {
258
+ width: '100%',
259
+ alignItems: 'center',
260
+ paddingBottom: verticalScale(Platform.OS === 'ios' ? 40 : 30),
261
+ },
262
+ title: {
263
+ fontSize: moderateScale(18),
264
+ fontWeight: '700',
265
+ textAlign: 'center',
266
+ marginBottom: verticalScale(12),
267
+ },
268
+ description: {
269
+ fontSize: moderateScale(14),
270
+ textAlign: 'center',
271
+ width: '90%',
272
+ marginBottom: verticalScale(30),
273
+ },
274
+ buttonContainer: { width: '100%', gap: verticalScale(10) },
275
+ toggleWrapper: {
276
+ flexDirection: 'row',
277
+ height: verticalScale(48),
278
+ borderRadius: 50,
279
+ borderWidth: scale(0.5),
280
+ padding: scale(4),
281
+ overflow: 'hidden',
282
+ alignItems: 'center',
283
+ width: '100%',
284
+ },
285
+ toggleHalf: {
286
+ flex: 1,
287
+ borderRadius: scale(50),
288
+ height: '100%',
289
+ justifyContent: 'center',
290
+ alignItems: 'center',
291
+ },
292
+ toggleText: { fontSize: moderateScale(14), fontWeight: '600' },
293
+ iconTextRow: { flexDirection: 'row', alignItems: 'center', gap: scale(6) },
294
+ });
@@ -17,13 +17,12 @@ import { Input } from '../../Input/Input';
17
17
  import { Button } from '../../Button';
18
18
  import { BackgroundLayout } from '../../BackgroundLayout/BackgroundLayout';
19
19
  import { Logo } from '../../Logo/Logo';
20
- import { useTheme } from '../../../theme/hook/useTheme';
21
20
  import { useKeyboard } from '../../../hooks/useKeyboard';
22
21
  import HideKeyboard from '../../Keyboard/HideKeyboard';
23
22
  import BackBtn from '../../Button/BackBtn';
24
23
  import { Text } from '../../Text';
25
- import type { AppTheme } from '../../../theme/themes';
26
24
  import { RFValue } from 'react-native-responsive-fontsize';
25
+ import type { ThemeOverride } from '../../../theme/themes';
27
26
 
28
27
  type FormValues = {
29
28
  email: string;
@@ -54,7 +53,7 @@ type ForgetPasswordProps = {
54
53
  resizeMode?: 'cover' | 'contain' | 'stretch' | 'repeat';
55
54
  };
56
55
  logoUri?: string;
57
- theme?: AppTheme;
56
+ theme?: ThemeOverride;
58
57
  loadingSubmitBtn?: boolean;
59
58
  text?: TextConfig;
60
59
  renderLogo?: () => React.ReactNode;
@@ -103,7 +102,6 @@ const ForgetPassword: React.FC<ForgetPasswordProps> = ({
103
102
  mode: 'onChange',
104
103
  });
105
104
 
106
- const { theme: resolvedTheme } = useTheme(overrideTheme);
107
105
  const { isKeyboardOpen } = useKeyboard();
108
106
  const [isLoading, setIsLoading] = useState(false);
109
107
 
@@ -134,7 +132,7 @@ const ForgetPassword: React.FC<ForgetPasswordProps> = ({
134
132
  return (
135
133
  <BackgroundLayout
136
134
  backgroundImage={backgroundImage?.source}
137
- theme={resolvedTheme}
135
+ theme={overrideTheme}
138
136
  gradientSplitBackground={
139
137
  isKeyboardOpen ? (Platform.OS === 'ios' ? 0.19 : 0.14) : 0.3
140
138
  }
@@ -149,7 +147,7 @@ const ForgetPassword: React.FC<ForgetPasswordProps> = ({
149
147
  })
150
148
  ) : (
151
149
  <BackBtn
152
- theme={resolvedTheme}
150
+ theme={overrideTheme}
153
151
  style={topBackBtnStyle}
154
152
  onPress={onTopBackBtnPress}
155
153
  />
@@ -205,7 +203,7 @@ const ForgetPassword: React.FC<ForgetPasswordProps> = ({
205
203
  errorMessage={errors.email?.message}
206
204
  inputStyle={inputStyle}
207
205
  containerStyle={inputContainerStyle}
208
- theme={resolvedTheme}
206
+ theme={overrideTheme}
209
207
  textContentType="emailAddress"
210
208
  autoCapitalize="none"
211
209
  keyboardType="email-address"
@@ -225,7 +223,7 @@ const ForgetPassword: React.FC<ForgetPasswordProps> = ({
225
223
  <Button.Primary
226
224
  title={text.forgetPasswordButton || 'Continue'}
227
225
  disabled={isSubmitDisabled || !isValid}
228
- theme={resolvedTheme}
226
+ theme={overrideTheme}
229
227
  loading={loadingSubmitBtn || isLoading}
230
228
  loadingText={text.loadingSubmitBtnText || 'Please wait...'}
231
229
  onPress={handleSubmit(handleFormSubmit)}