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

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 (533) hide show
  1. package/LICENSE +0 -0
  2. package/README.md +6 -0
  3. package/lib/module/assets/animations/135037-payment-processing-error.json +1347 -1
  4. package/lib/module/assets/animations/7227-vui-animation.json +3377 -1
  5. package/lib/module/assets/animations/heart.json +788 -0
  6. package/lib/module/assets/animations/succesfull-payment.json +2379 -1
  7. package/lib/module/assets/animations/voice-icon.json +542 -1
  8. package/lib/module/components/Account/Account.js +6 -6
  9. package/lib/module/components/Account/Account.js.map +1 -1
  10. package/lib/module/components/Account/index.js +1 -1
  11. package/lib/module/components/Account/index.js.map +1 -1
  12. package/lib/module/components/Alert/UAAlert.js +138 -0
  13. package/lib/module/components/Alert/UAAlert.js.map +1 -0
  14. package/lib/module/components/Alert/index.js +4 -0
  15. package/lib/module/components/Alert/index.js.map +1 -0
  16. package/lib/module/components/Auth/ForgotPassword/ForgotPassword.js +9 -9
  17. package/lib/module/components/Auth/ForgotPassword/ForgotPassword.js.map +1 -1
  18. package/lib/module/components/Auth/Login/LoginWithEmail.js +10 -10
  19. package/lib/module/components/Auth/Login/LoginWithEmail.js.map +1 -1
  20. package/lib/module/components/Auth/Login/LoginWithPhone.js +10 -10
  21. package/lib/module/components/Auth/Login/LoginWithPhone.js.map +1 -1
  22. package/lib/module/components/Auth/OTP/OTP.js +9 -9
  23. package/lib/module/components/Auth/OTP/OTP.js.map +1 -1
  24. package/lib/module/components/Auth/QrLogin/QrLogin.js +267 -0
  25. package/lib/module/components/Auth/QrLogin/QrLogin.js.map +1 -0
  26. package/lib/module/components/Auth/QrLogin/components/QrViewArea.js +178 -0
  27. package/lib/module/components/Auth/QrLogin/components/QrViewArea.js.map +1 -0
  28. package/lib/module/components/Auth/SignUp/SignUp.js +10 -10
  29. package/lib/module/components/Auth/SignUp/SignUp.js.map +1 -1
  30. package/lib/module/components/Auth/SplashScreen/SplashScreen.js +6 -6
  31. package/lib/module/components/Auth/SplashScreen/SplashScreen.js.map +1 -1
  32. package/lib/module/components/Auth/SplashScreen/components/SplashImage/SplashImage.js +1 -6
  33. package/lib/module/components/Auth/SplashScreen/components/SplashImage/SplashImage.js.map +1 -1
  34. package/lib/module/components/Auth/SplashScreen/components/SplashLottie/SplashLottie.js +1 -1
  35. package/lib/module/components/Auth/SplashScreen/components/SplashLottie/SplashLottie.js.map +1 -1
  36. package/lib/module/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.js +1 -1
  37. package/lib/module/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.js.map +1 -1
  38. package/lib/module/components/Auth/index.js +9 -7
  39. package/lib/module/components/Auth/index.js.map +1 -1
  40. package/lib/module/components/BackgroundLayout/BackgroundLayout.js +1 -1
  41. package/lib/module/components/BackgroundLayout/BackgroundLayout.js.map +1 -1
  42. package/lib/module/components/BlogView/BlogView.js +4 -10
  43. package/lib/module/components/BlogView/BlogView.js.map +1 -1
  44. package/lib/module/components/BlogView/index.js +1 -1
  45. package/lib/module/components/BlogView/index.js.map +1 -1
  46. package/lib/module/components/Button/BackBtn.js +1 -1
  47. package/lib/module/components/Button/BackBtn.js.map +1 -1
  48. package/lib/module/components/Button/MenuBtn.js +1 -1
  49. package/lib/module/components/Button/MenuBtn.js.map +1 -1
  50. package/lib/module/components/Button/PrimaryBtn.js +2 -2
  51. package/lib/module/components/Button/PrimaryBtn.js.map +1 -1
  52. package/lib/module/components/Button/TextButton.js +2 -2
  53. package/lib/module/components/Button/TextButton.js.map +1 -1
  54. package/lib/module/components/Button/index.js +3 -3
  55. package/lib/module/components/Button/index.js.map +1 -1
  56. package/lib/module/components/Content/Card/Category/Category.js +2 -2
  57. package/lib/module/components/Content/Card/Category/Category.js.map +1 -1
  58. package/lib/module/components/Content/Card/NowWatching/NowWatching.js +6 -6
  59. package/lib/module/components/Content/Card/NowWatching/NowWatching.js.map +1 -1
  60. package/lib/module/components/Content/Card/Sliders/Styles/One.js +3 -3
  61. package/lib/module/components/Content/Card/Sliders/Styles/One.js.map +1 -1
  62. package/lib/module/components/Content/Card/Sliders/Styles/Two.js +4 -4
  63. package/lib/module/components/Content/Card/Sliders/Styles/Two.js.map +1 -1
  64. package/lib/module/components/Content/Card/Sliders/index.js +2 -2
  65. package/lib/module/components/Content/Card/Sliders/index.js.map +1 -1
  66. package/lib/module/components/Content/Card/Styles/Five.js +4 -4
  67. package/lib/module/components/Content/Card/Styles/Five.js.map +1 -1
  68. package/lib/module/components/Content/Card/Styles/Four.js +4 -4
  69. package/lib/module/components/Content/Card/Styles/Four.js.map +1 -1
  70. package/lib/module/components/Content/Card/Styles/One.js +4 -4
  71. package/lib/module/components/Content/Card/Styles/One.js.map +1 -1
  72. package/lib/module/components/Content/Card/Styles/RotateInOut.js +4 -4
  73. package/lib/module/components/Content/Card/Styles/RotateInOut.js.map +1 -1
  74. package/lib/module/components/Content/Card/Styles/Six.js +5 -5
  75. package/lib/module/components/Content/Card/Styles/Six.js.map +1 -1
  76. package/lib/module/components/Content/Card/Styles/Three.js +4 -4
  77. package/lib/module/components/Content/Card/Styles/Three.js.map +1 -1
  78. package/lib/module/components/Content/Card/Styles/TopTen.js +5 -5
  79. package/lib/module/components/Content/Card/Styles/TopTen.js.map +1 -1
  80. package/lib/module/components/Content/Card/Styles/Two.js +4 -4
  81. package/lib/module/components/Content/Card/Styles/Two.js.map +1 -1
  82. package/lib/module/components/Content/Card/components/CardPoster.js +1 -10
  83. package/lib/module/components/Content/Card/components/CardPoster.js.map +1 -1
  84. package/lib/module/components/Content/Card/components/NavigateToMore.js +2 -2
  85. package/lib/module/components/Content/Card/components/NavigateToMore.js.map +1 -1
  86. package/lib/module/components/Content/Card/components/NoContentFallback.js +3 -3
  87. package/lib/module/components/Content/Card/components/NoContentFallback.js.map +1 -1
  88. package/lib/module/components/Content/Card/components/ShowAllButton.js +1 -1
  89. package/lib/module/components/Content/Card/components/ShowAllButton.js.map +1 -1
  90. package/lib/module/components/Content/Card/components/ThumbnailCard.js +1 -1
  91. package/lib/module/components/Content/Card/components/ThumbnailCard.js.map +1 -1
  92. package/lib/module/components/Content/Card/index.js +10 -10
  93. package/lib/module/components/Content/Card/index.js.map +1 -1
  94. package/lib/module/components/Content/Content.js +4 -4
  95. package/lib/module/components/Content/Content.js.map +1 -1
  96. package/lib/module/components/Content/Sections.js +2 -2
  97. package/lib/module/components/Content/Sections.js.map +1 -1
  98. package/lib/module/components/ContentView/ContentView.js +8 -9
  99. package/lib/module/components/ContentView/ContentView.js.map +1 -1
  100. package/lib/module/components/ContentView/MoreContentList.js +6 -6
  101. package/lib/module/components/ContentView/MoreContentList.js.map +1 -1
  102. package/lib/module/components/ContentView/components/AboutSection.js +2 -2
  103. package/lib/module/components/ContentView/components/AboutSection.js.map +1 -1
  104. package/lib/module/components/ContentView/components/CastCard.js +2 -2
  105. package/lib/module/components/ContentView/components/CastCard.js.map +1 -1
  106. package/lib/module/components/ContentView/components/EpisodeCard.js +3 -3
  107. package/lib/module/components/ContentView/components/EpisodeCard.js.map +1 -1
  108. package/lib/module/components/ContentView/components/GenreTags.js +1 -1
  109. package/lib/module/components/ContentView/components/GenreTags.js.map +1 -1
  110. package/lib/module/components/ContentView/components/HeroBanner.js +5 -5
  111. package/lib/module/components/ContentView/components/HeroBanner.js.map +1 -1
  112. package/lib/module/components/ContentView/components/PlayButton.js +0 -1
  113. package/lib/module/components/ContentView/components/PlayButton.js.map +1 -1
  114. package/lib/module/components/ContentView/components/Title.js +1 -1
  115. package/lib/module/components/ContentView/components/Title.js.map +1 -1
  116. package/lib/module/components/ContentView/components/TrailerButton.js +1 -2
  117. package/lib/module/components/ContentView/components/TrailerButton.js.map +1 -1
  118. package/lib/module/components/ContentView/index.js +2 -2
  119. package/lib/module/components/ContentView/index.js.map +1 -1
  120. package/lib/module/components/Headers/AppHeader.js +3 -3
  121. package/lib/module/components/Headers/AppHeader.js.map +1 -1
  122. package/lib/module/components/Headers/One.js +3 -3
  123. package/lib/module/components/Headers/One.js.map +1 -1
  124. package/lib/module/components/Headers/Three.js +2 -2
  125. package/lib/module/components/Headers/Three.js.map +1 -1
  126. package/lib/module/components/Headers/Two.js +6 -7
  127. package/lib/module/components/Headers/Two.js.map +1 -1
  128. package/lib/module/components/Headers/index.js +3 -3
  129. package/lib/module/components/Headers/index.js.map +1 -1
  130. package/lib/module/components/Input/Input.js +3 -3
  131. package/lib/module/components/Input/Input.js.map +1 -1
  132. package/lib/module/components/Input/InputOne.js +1 -1
  133. package/lib/module/components/Input/InputOne.js.map +1 -1
  134. package/lib/module/components/Input/InputTwo.js +1 -1
  135. package/lib/module/components/Input/InputTwo.js.map +1 -1
  136. package/lib/module/components/Input/PhoneNumberInput.js +1 -1
  137. package/lib/module/components/Input/PhoneNumberInput.js.map +1 -1
  138. package/lib/module/components/Keyboard/HideKeyboard.js.map +1 -1
  139. package/lib/module/components/Loader/Loader.js +1 -6
  140. package/lib/module/components/Loader/Loader.js.map +1 -1
  141. package/lib/module/components/Logo/Logo.js +2 -2
  142. package/lib/module/components/Logo/Logo.js.map +1 -1
  143. package/lib/module/components/Reels/ReelsSeries/Model/Episodes.js +110 -0
  144. package/lib/module/components/Reels/ReelsSeries/Model/Episodes.js.map +1 -0
  145. package/lib/module/components/Reels/ReelsSeries/Model/Synopsis.js +216 -0
  146. package/lib/module/components/Reels/ReelsSeries/Model/Synopsis.js.map +1 -0
  147. package/lib/module/components/Reels/ReelsSeries/ReelSeriesDetailsModal.js +182 -0
  148. package/lib/module/components/Reels/ReelsSeries/ReelSeriesDetailsModal.js.map +1 -0
  149. package/lib/module/components/Reels/ReelsSeries/ReelSeriesOverlay.js +203 -0
  150. package/lib/module/components/Reels/ReelsSeries/ReelSeriesOverlay.js.map +1 -0
  151. package/lib/module/components/Reels/ReelsSeries/ReelsSeries.js +121 -0
  152. package/lib/module/components/Reels/ReelsSeries/ReelsSeries.js.map +1 -0
  153. package/lib/module/components/Reels/ReelsSeries/ReelsSeriesItem.js +290 -0
  154. package/lib/module/components/Reels/ReelsSeries/ReelsSeriesItem.js.map +1 -0
  155. package/lib/module/components/Reels/ReelsSeries/types.js +2 -0
  156. package/lib/module/components/Reels/ReelsSeries/types.js.map +1 -0
  157. package/lib/module/components/Reels/index.js +11 -0
  158. package/lib/module/components/Reels/index.js.map +1 -0
  159. package/lib/module/components/Search/One.js +9 -9
  160. package/lib/module/components/Search/One.js.map +1 -1
  161. package/lib/module/components/Search/components/RecentSearchesSection.js +1 -1
  162. package/lib/module/components/Search/components/RecentSearchesSection.js.map +1 -1
  163. package/lib/module/components/Search/components/SearchCard.js +3 -3
  164. package/lib/module/components/Search/components/SearchCard.js.map +1 -1
  165. package/lib/module/components/Search/index.js +2 -2
  166. package/lib/module/components/Search/index.js.map +1 -1
  167. package/lib/module/components/Settings/AppSettings.js +4 -4
  168. package/lib/module/components/Settings/AppSettings.js.map +1 -1
  169. package/lib/module/components/Settings/index.js +1 -1
  170. package/lib/module/components/Settings/index.js.map +1 -1
  171. package/lib/module/components/Subscription/SubOne.js +4 -4
  172. package/lib/module/components/Subscription/SubOne.js.map +1 -1
  173. package/lib/module/components/Subscription/index.js +1 -1
  174. package/lib/module/components/Subscription/index.js.map +1 -1
  175. package/lib/module/components/TabBar/One.js +2 -2
  176. package/lib/module/components/TabBar/One.js.map +1 -1
  177. package/lib/module/components/TabBar/Three.js +1 -1
  178. package/lib/module/components/TabBar/Three.js.map +1 -1
  179. package/lib/module/components/TabBar/Two.js +2 -2
  180. package/lib/module/components/TabBar/Two.js.map +1 -1
  181. package/lib/module/components/TabBar/index.js +3 -3
  182. package/lib/module/components/TabBar/index.js.map +1 -1
  183. package/lib/module/components/Text/Text.js +1 -1
  184. package/lib/module/components/Text/Text.js.map +1 -1
  185. package/lib/module/components/Text/index.js +1 -1
  186. package/lib/module/components/Text/index.js.map +1 -1
  187. package/lib/module/components/User/DeviceSessions/DeviceSessions.js +11 -3
  188. package/lib/module/components/User/DeviceSessions/DeviceSessions.js.map +1 -1
  189. package/lib/module/components/User/ProfileUpdate/ProfileUpdate.js +258 -0
  190. package/lib/module/components/User/ProfileUpdate/ProfileUpdate.js.map +1 -0
  191. package/lib/module/components/User/WatchHistory/WatchHistory.js +4 -4
  192. package/lib/module/components/User/WatchHistory/WatchHistory.js.map +1 -1
  193. package/lib/module/components/User/WatchLater/WatchLater.js +5 -5
  194. package/lib/module/components/User/WatchLater/WatchLater.js.map +1 -1
  195. package/lib/module/components/User/components/UserAvatar.js +1 -1
  196. package/lib/module/components/User/components/UserAvatar.js.map +1 -1
  197. package/lib/module/components/User/components/UserSection.js +11 -16
  198. package/lib/module/components/User/components/UserSection.js.map +1 -1
  199. package/lib/module/components/User/index.js +5 -4
  200. package/lib/module/components/User/index.js.map +1 -1
  201. package/lib/module/components/View/View.js.map +1 -1
  202. package/lib/module/components/View/index.js +1 -1
  203. package/lib/module/components/View/index.js.map +1 -1
  204. package/lib/module/components/index.js +20 -18
  205. package/lib/module/components/index.js.map +1 -1
  206. package/lib/module/components/layout/SafeAreaWrapper.js +1 -1
  207. package/lib/module/components/layout/SafeAreaWrapper.js.map +1 -1
  208. package/lib/module/components/layout/index.js +1 -1
  209. package/lib/module/components/layout/index.js.map +1 -1
  210. package/lib/module/constants/dummySections.js.map +1 -1
  211. package/lib/module/hooks/useDebounce.js.map +1 -1
  212. package/lib/module/hooks/useInitSplashCacheSync.js +7 -7
  213. package/lib/module/hooks/useInitSplashCacheSync.js.map +1 -1
  214. package/lib/module/hooks/useKeyboard.js.map +1 -1
  215. package/lib/module/hooks/usePaginatedSection.js.map +1 -1
  216. package/lib/module/index.js +3 -3
  217. package/lib/module/index.js.map +1 -1
  218. package/lib/module/package.json +1 -0
  219. package/lib/module/store/RecentSearchesStore.js.map +1 -1
  220. package/lib/module/store/splashStore.js.map +1 -1
  221. package/lib/module/theme/ThemeProvider.js +24 -18
  222. package/lib/module/theme/ThemeProvider.js.map +1 -1
  223. package/lib/module/theme/hook/useTheme.js +2 -2
  224. package/lib/module/theme/hook/useTheme.js.map +1 -1
  225. package/lib/module/theme/index.js +3 -2
  226. package/lib/module/theme/index.js.map +1 -1
  227. package/lib/module/theme/themes.js +2 -13
  228. package/lib/module/theme/themes.js.map +1 -1
  229. package/lib/module/utils/Formater.js +17 -0
  230. package/lib/module/utils/Formater.js.map +1 -0
  231. package/lib/typescript/package.json +1 -0
  232. package/lib/typescript/src/components/Account/Account.d.ts +0 -1
  233. package/lib/typescript/src/components/Account/Account.d.ts.map +1 -1
  234. package/lib/typescript/src/components/Alert/UAAlert.d.ts +16 -0
  235. package/lib/typescript/src/components/Alert/UAAlert.d.ts.map +1 -0
  236. package/lib/typescript/src/components/Alert/index.d.ts +2 -0
  237. package/lib/typescript/src/components/Alert/index.d.ts.map +1 -0
  238. package/lib/typescript/src/components/Auth/ForgotPassword/ForgotPassword.d.ts.map +1 -1
  239. package/lib/typescript/src/components/Auth/Login/LoginWithEmail.d.ts.map +1 -1
  240. package/lib/typescript/src/components/Auth/Login/LoginWithPhone.d.ts.map +1 -1
  241. package/lib/typescript/src/components/Auth/OTP/OTP.d.ts.map +1 -1
  242. package/lib/typescript/src/components/Auth/QrLogin/QrLogin.d.ts +32 -0
  243. package/lib/typescript/src/components/Auth/QrLogin/QrLogin.d.ts.map +1 -0
  244. package/lib/typescript/src/components/Auth/QrLogin/components/QrViewArea.d.ts +15 -0
  245. package/lib/typescript/src/components/Auth/QrLogin/components/QrViewArea.d.ts.map +1 -0
  246. package/lib/typescript/src/components/Auth/SignUp/SignUp.d.ts.map +1 -1
  247. package/lib/typescript/src/components/Auth/SplashScreen/SplashScreen.d.ts.map +1 -1
  248. package/lib/typescript/src/components/Auth/SplashScreen/components/SplashImage/SplashImage.d.ts +0 -4
  249. package/lib/typescript/src/components/Auth/SplashScreen/components/SplashImage/SplashImage.d.ts.map +1 -1
  250. package/lib/typescript/src/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.d.ts.map +1 -1
  251. package/lib/typescript/src/components/Auth/index.d.ts +2 -1
  252. package/lib/typescript/src/components/Auth/index.d.ts.map +1 -1
  253. package/lib/typescript/src/components/BackgroundLayout/BackgroundLayout.d.ts.map +1 -1
  254. package/lib/typescript/src/components/BlogView/BlogView.d.ts +0 -4
  255. package/lib/typescript/src/components/BlogView/BlogView.d.ts.map +1 -1
  256. package/lib/typescript/src/components/Button/BackBtn.d.ts.map +1 -1
  257. package/lib/typescript/src/components/Button/MenuBtn.d.ts.map +1 -1
  258. package/lib/typescript/src/components/Button/PrimaryBtn.d.ts.map +1 -1
  259. package/lib/typescript/src/components/Button/TextButton.d.ts.map +1 -1
  260. package/lib/typescript/src/components/Content/Card/Category/Category.d.ts +1 -1
  261. package/lib/typescript/src/components/Content/Card/Category/Category.d.ts.map +1 -1
  262. package/lib/typescript/src/components/Content/Card/NowWatching/NowWatching.d.ts.map +1 -1
  263. package/lib/typescript/src/components/Content/Card/Sliders/Styles/One.d.ts.map +1 -1
  264. package/lib/typescript/src/components/Content/Card/Sliders/Styles/Two.d.ts.map +1 -1
  265. package/lib/typescript/src/components/Content/Card/Styles/Five.d.ts.map +1 -1
  266. package/lib/typescript/src/components/Content/Card/Styles/Four.d.ts.map +1 -1
  267. package/lib/typescript/src/components/Content/Card/Styles/One.d.ts.map +1 -1
  268. package/lib/typescript/src/components/Content/Card/Styles/RotateInOut.d.ts.map +1 -1
  269. package/lib/typescript/src/components/Content/Card/Styles/Six.d.ts.map +1 -1
  270. package/lib/typescript/src/components/Content/Card/Styles/Three.d.ts.map +1 -1
  271. package/lib/typescript/src/components/Content/Card/Styles/TopTen.d.ts.map +1 -1
  272. package/lib/typescript/src/components/Content/Card/Styles/Two.d.ts.map +1 -1
  273. package/lib/typescript/src/components/Content/Card/components/CardPoster.d.ts +0 -8
  274. package/lib/typescript/src/components/Content/Card/components/CardPoster.d.ts.map +1 -1
  275. package/lib/typescript/src/components/Content/Card/components/NavigateToMore.d.ts.map +1 -1
  276. package/lib/typescript/src/components/Content/Card/components/NoContentFallback.d.ts +1 -2
  277. package/lib/typescript/src/components/Content/Card/components/NoContentFallback.d.ts.map +1 -1
  278. package/lib/typescript/src/components/Content/Card/components/ShowAllButton.d.ts.map +1 -1
  279. package/lib/typescript/src/components/Content/Card/components/ThumbnailCard.d.ts.map +1 -1
  280. package/lib/typescript/src/components/Content/Card/index.d.ts +2 -2
  281. package/lib/typescript/src/components/Content/Content.d.ts.map +1 -1
  282. package/lib/typescript/src/components/Content/Sections.d.ts.map +1 -1
  283. package/lib/typescript/src/components/ContentView/ContentView.d.ts +1 -2
  284. package/lib/typescript/src/components/ContentView/ContentView.d.ts.map +1 -1
  285. package/lib/typescript/src/components/ContentView/MoreContentList.d.ts.map +1 -1
  286. package/lib/typescript/src/components/ContentView/components/AboutSection.d.ts +1 -2
  287. package/lib/typescript/src/components/ContentView/components/AboutSection.d.ts.map +1 -1
  288. package/lib/typescript/src/components/ContentView/components/CastCard.d.ts +1 -6
  289. package/lib/typescript/src/components/ContentView/components/CastCard.d.ts.map +1 -1
  290. package/lib/typescript/src/components/ContentView/components/EpisodeCard.d.ts +1 -2
  291. package/lib/typescript/src/components/ContentView/components/EpisodeCard.d.ts.map +1 -1
  292. package/lib/typescript/src/components/ContentView/components/GenreTags.d.ts +1 -1
  293. package/lib/typescript/src/components/ContentView/components/GenreTags.d.ts.map +1 -1
  294. package/lib/typescript/src/components/ContentView/components/HeroBanner.d.ts +1 -2
  295. package/lib/typescript/src/components/ContentView/components/HeroBanner.d.ts.map +1 -1
  296. package/lib/typescript/src/components/ContentView/components/PlayButton.d.ts +1 -2
  297. package/lib/typescript/src/components/ContentView/components/PlayButton.d.ts.map +1 -1
  298. package/lib/typescript/src/components/ContentView/components/Title.d.ts +1 -1
  299. package/lib/typescript/src/components/ContentView/components/Title.d.ts.map +1 -1
  300. package/lib/typescript/src/components/ContentView/components/TrailerButton.d.ts +1 -2
  301. package/lib/typescript/src/components/ContentView/components/TrailerButton.d.ts.map +1 -1
  302. package/lib/typescript/src/components/Headers/AppHeader.d.ts.map +1 -1
  303. package/lib/typescript/src/components/Headers/One.d.ts.map +1 -1
  304. package/lib/typescript/src/components/Headers/Three.d.ts.map +1 -1
  305. package/lib/typescript/src/components/Headers/Two.d.ts.map +1 -1
  306. package/lib/typescript/src/components/Input/InputOne.d.ts.map +1 -1
  307. package/lib/typescript/src/components/Input/InputTwo.d.ts.map +1 -1
  308. package/lib/typescript/src/components/Input/PhoneNumberInput.d.ts.map +1 -1
  309. package/lib/typescript/src/components/Keyboard/HideKeyboard.d.ts.map +1 -1
  310. package/lib/typescript/src/components/Loader/Loader.d.ts +0 -4
  311. package/lib/typescript/src/components/Loader/Loader.d.ts.map +1 -1
  312. package/lib/typescript/src/components/Logo/Logo.d.ts.map +1 -1
  313. package/lib/typescript/src/components/Reels/ReelsSeries/Model/Episodes.d.ts +12 -0
  314. package/lib/typescript/src/components/Reels/ReelsSeries/Model/Episodes.d.ts.map +1 -0
  315. package/lib/typescript/src/components/Reels/ReelsSeries/Model/Synopsis.d.ts +9 -0
  316. package/lib/typescript/src/components/Reels/ReelsSeries/Model/Synopsis.d.ts.map +1 -0
  317. package/lib/typescript/src/components/Reels/ReelsSeries/ReelSeriesDetailsModal.d.ts +13 -0
  318. package/lib/typescript/src/components/Reels/ReelsSeries/ReelSeriesDetailsModal.d.ts.map +1 -0
  319. package/lib/typescript/src/components/Reels/ReelsSeries/ReelSeriesOverlay.d.ts +18 -0
  320. package/lib/typescript/src/components/Reels/ReelsSeries/ReelSeriesOverlay.d.ts.map +1 -0
  321. package/lib/typescript/src/components/Reels/ReelsSeries/ReelsSeries.d.ts +15 -0
  322. package/lib/typescript/src/components/Reels/ReelsSeries/ReelsSeries.d.ts.map +1 -0
  323. package/lib/typescript/src/components/Reels/ReelsSeries/ReelsSeriesItem.d.ts +18 -0
  324. package/lib/typescript/src/components/Reels/ReelsSeries/ReelsSeriesItem.d.ts.map +1 -0
  325. package/lib/typescript/src/components/Reels/ReelsSeries/types.d.ts +24 -0
  326. package/lib/typescript/src/components/Reels/ReelsSeries/types.d.ts.map +1 -0
  327. package/lib/typescript/src/components/Reels/index.d.ts +8 -0
  328. package/lib/typescript/src/components/Reels/index.d.ts.map +1 -0
  329. package/lib/typescript/src/components/Search/One.d.ts.map +1 -1
  330. package/lib/typescript/src/components/Search/components/RecentSearchesSection.d.ts.map +1 -1
  331. package/lib/typescript/src/components/Search/components/SearchCard.d.ts.map +1 -1
  332. package/lib/typescript/src/components/Settings/AppSettings.d.ts.map +1 -1
  333. package/lib/typescript/src/components/Subscription/SubOne.d.ts +1 -1
  334. package/lib/typescript/src/components/Subscription/SubOne.d.ts.map +1 -1
  335. package/lib/typescript/src/components/Subscription/index.d.ts +2 -2
  336. package/lib/typescript/src/components/Subscription/index.d.ts.map +1 -1
  337. package/lib/typescript/src/components/TabBar/One.d.ts +2 -2
  338. package/lib/typescript/src/components/TabBar/One.d.ts.map +1 -1
  339. package/lib/typescript/src/components/TabBar/Three.d.ts.map +1 -1
  340. package/lib/typescript/src/components/TabBar/Two.d.ts +1 -1
  341. package/lib/typescript/src/components/TabBar/Two.d.ts.map +1 -1
  342. package/lib/typescript/src/components/TabBar/index.d.ts +2 -2
  343. package/lib/typescript/src/components/Text/Text.d.ts.map +1 -1
  344. package/lib/typescript/src/components/User/DeviceSessions/DeviceSessions.d.ts +2 -1
  345. package/lib/typescript/src/components/User/DeviceSessions/DeviceSessions.d.ts.map +1 -1
  346. package/lib/typescript/src/components/User/ProfileUpdate/ProfileUpdate.d.ts +27 -0
  347. package/lib/typescript/src/components/User/ProfileUpdate/ProfileUpdate.d.ts.map +1 -0
  348. package/lib/typescript/src/components/User/WatchHistory/WatchHistory.d.ts.map +1 -1
  349. package/lib/typescript/src/components/User/WatchLater/WatchLater.d.ts.map +1 -1
  350. package/lib/typescript/src/components/User/components/UserAvatar.d.ts.map +1 -1
  351. package/lib/typescript/src/components/User/components/UserSection.d.ts.map +1 -1
  352. package/lib/typescript/src/components/User/index.d.ts +2 -1
  353. package/lib/typescript/src/components/User/index.d.ts.map +1 -1
  354. package/lib/typescript/src/components/View/View.d.ts.map +1 -1
  355. package/lib/typescript/src/components/index.d.ts +2 -0
  356. package/lib/typescript/src/components/index.d.ts.map +1 -1
  357. package/lib/typescript/src/components/layout/SafeAreaWrapper.d.ts.map +1 -1
  358. package/lib/typescript/src/constants/dummySections.d.ts.map +1 -1
  359. package/lib/typescript/src/hooks/useDebounce.d.ts.map +1 -1
  360. package/lib/typescript/src/hooks/useInitSplashCacheSync.d.ts +1 -1
  361. package/lib/typescript/src/hooks/useInitSplashCacheSync.d.ts.map +1 -1
  362. package/lib/typescript/src/hooks/useKeyboard.d.ts.map +1 -1
  363. package/lib/typescript/src/hooks/usePaginatedSection.d.ts.map +1 -1
  364. package/lib/typescript/src/index.d.ts.map +1 -1
  365. package/lib/typescript/src/store/RecentSearchesStore.d.ts +5 -3
  366. package/lib/typescript/src/store/RecentSearchesStore.d.ts.map +1 -1
  367. package/lib/typescript/src/store/splashStore.d.ts +5 -3
  368. package/lib/typescript/src/store/splashStore.d.ts.map +1 -1
  369. package/lib/typescript/src/theme/ThemeProvider.d.ts.map +1 -1
  370. package/lib/typescript/src/theme/hook/useTheme.d.ts.map +1 -1
  371. package/lib/typescript/src/theme/index.d.ts +5 -0
  372. package/lib/typescript/src/theme/index.d.ts.map +1 -1
  373. package/lib/typescript/src/theme/themes.d.ts +12 -4
  374. package/lib/typescript/src/theme/themes.d.ts.map +1 -1
  375. package/lib/typescript/src/types/content/content-view.types.d.ts.map +1 -1
  376. package/lib/typescript/src/types/hook/usePaginatedSetion.d.ts +1 -1
  377. package/lib/typescript/src/types/hook/usePaginatedSetion.d.ts.map +1 -1
  378. package/lib/typescript/src/utils/Formater.d.ts +2 -0
  379. package/lib/typescript/src/utils/Formater.d.ts.map +1 -0
  380. package/package.json +175 -70
  381. package/src/Styles/globalStyles.ts +18 -18
  382. package/src/assets/animations/135037-payment-processing-error.json +1347 -1
  383. package/src/assets/animations/7227-vui-animation.json +3377 -1
  384. package/src/assets/animations/heart.json +788 -0
  385. package/src/assets/animations/succesfull-payment.json +2379 -1
  386. package/src/assets/animations/voice-icon.json +542 -1
  387. package/src/components/Account/Account.tsx +139 -61
  388. package/src/components/Alert/UAAlert.tsx +168 -0
  389. package/src/components/Alert/index.ts +1 -0
  390. package/src/components/Auth/ForgotPassword/ForgotPassword.tsx +53 -23
  391. package/src/components/Auth/Login/LoginWithEmail.tsx +62 -32
  392. package/src/components/Auth/Login/LoginWithPhone.tsx +55 -24
  393. package/src/components/Auth/OTP/OTP.tsx +77 -32
  394. package/src/components/Auth/QrLogin/QrLogin.tsx +306 -0
  395. package/src/components/Auth/QrLogin/components/QrViewArea.tsx +213 -0
  396. package/src/components/Auth/SignUp/SignUp.tsx +67 -32
  397. package/src/components/Auth/SplashScreen/SplashScreen.tsx +44 -16
  398. package/src/components/Auth/SplashScreen/components/SplashImage/SplashImage.tsx +21 -12
  399. package/src/components/Auth/SplashScreen/components/SplashLottie/SplashLottie.tsx +5 -5
  400. package/src/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.tsx +15 -5
  401. package/src/components/Auth/index.ts +3 -1
  402. package/src/components/BackgroundLayout/BackgroundLayout.tsx +45 -17
  403. package/src/components/BlogView/BlogView.tsx +51 -31
  404. package/src/components/Button/BackBtn.tsx +31 -9
  405. package/src/components/Button/MenuBtn.tsx +61 -22
  406. package/src/components/Button/PrimaryBtn.tsx +30 -10
  407. package/src/components/Button/TextButton.tsx +30 -15
  408. package/src/components/Button/index.ts +1 -1
  409. package/src/components/Content/Card/Category/Category.tsx +73 -32
  410. package/src/components/Content/Card/NowWatching/NowWatching.tsx +102 -44
  411. package/src/components/Content/Card/Sliders/Styles/One.tsx +89 -38
  412. package/src/components/Content/Card/Sliders/Styles/Two.tsx +47 -21
  413. package/src/components/Content/Card/Sliders/index.ts +2 -2
  414. package/src/components/Content/Card/Styles/Five.tsx +65 -22
  415. package/src/components/Content/Card/Styles/Four.tsx +73 -23
  416. package/src/components/Content/Card/Styles/One.tsx +68 -21
  417. package/src/components/Content/Card/Styles/RotateInOut.tsx +59 -23
  418. package/src/components/Content/Card/Styles/Six.tsx +57 -19
  419. package/src/components/Content/Card/Styles/Three.tsx +59 -23
  420. package/src/components/Content/Card/Styles/TopTen.tsx +59 -26
  421. package/src/components/Content/Card/Styles/Two.tsx +39 -18
  422. package/src/components/Content/Card/components/CardPoster.tsx +34 -32
  423. package/src/components/Content/Card/components/NavigateToMore.tsx +17 -7
  424. package/src/components/Content/Card/components/NoContentFallback.tsx +36 -19
  425. package/src/components/Content/Card/components/ShowAllButton.tsx +12 -8
  426. package/src/components/Content/Card/components/ThumbnailCard.tsx +26 -17
  427. package/src/components/Content/Card/index.ts +2 -2
  428. package/src/components/Content/Content.tsx +41 -17
  429. package/src/components/Content/Sections.tsx +14 -8
  430. package/src/components/ContentView/ContentView.tsx +34 -27
  431. package/src/components/ContentView/MoreContentList.tsx +40 -18
  432. package/src/components/ContentView/components/AboutSection.tsx +30 -12
  433. package/src/components/ContentView/components/CastCard.tsx +65 -24
  434. package/src/components/ContentView/components/EpisodeCard.tsx +109 -44
  435. package/src/components/ContentView/components/GenreTags.tsx +35 -11
  436. package/src/components/ContentView/components/HeroBanner.tsx +52 -21
  437. package/src/components/ContentView/components/PlayButton.tsx +13 -5
  438. package/src/components/ContentView/components/Title.tsx +30 -10
  439. package/src/components/ContentView/components/TrailerButton.tsx +16 -7
  440. package/src/components/Headers/AppHeader.tsx +41 -15
  441. package/src/components/Headers/One.tsx +19 -10
  442. package/src/components/Headers/Three.tsx +22 -7
  443. package/src/components/Headers/Two.tsx +25 -14
  444. package/src/components/Headers/index.ts +1 -1
  445. package/src/components/Input/Input.ts +1 -1
  446. package/src/components/Input/InputOne.tsx +69 -23
  447. package/src/components/Input/InputTwo.tsx +41 -18
  448. package/src/components/Input/PhoneNumberInput.tsx +94 -48
  449. package/src/components/Keyboard/HideKeyboard.tsx +16 -10
  450. package/src/components/Loader/Loader.tsx +3 -8
  451. package/src/components/Logo/Logo.tsx +17 -9
  452. package/src/components/Reels/ReelsSeries/Model/Episodes.tsx +133 -0
  453. package/src/components/Reels/ReelsSeries/Model/Synopsis.tsx +249 -0
  454. package/src/components/Reels/ReelsSeries/ReelSeriesDetailsModal.tsx +209 -0
  455. package/src/components/Reels/ReelsSeries/ReelSeriesOverlay.tsx +185 -0
  456. package/src/components/Reels/ReelsSeries/ReelsSeries.tsx +163 -0
  457. package/src/components/Reels/ReelsSeries/ReelsSeriesItem.tsx +333 -0
  458. package/src/components/Reels/ReelsSeries/types.ts +27 -0
  459. package/src/components/Reels/index.ts +8 -0
  460. package/src/components/Search/One.tsx +46 -17
  461. package/src/components/Search/components/RecentSearchesSection.tsx +48 -21
  462. package/src/components/Search/components/SearchCard.tsx +34 -16
  463. package/src/components/Search/index.ts +1 -1
  464. package/src/components/Settings/AppSettings.tsx +80 -29
  465. package/src/components/Subscription/SubOne.tsx +84 -39
  466. package/src/components/Subscription/index.ts +1 -1
  467. package/src/components/TabBar/One.tsx +22 -18
  468. package/src/components/TabBar/Three.tsx +55 -19
  469. package/src/components/TabBar/Two.tsx +16 -12
  470. package/src/components/TabBar/index.ts +1 -1
  471. package/src/components/Text/Text.tsx +7 -3
  472. package/src/components/User/DeviceSessions/DeviceSessions.tsx +104 -38
  473. package/src/components/User/ProfileUpdate/ProfileUpdate.tsx +265 -0
  474. package/src/components/User/WatchHistory/WatchHistory.tsx +37 -12
  475. package/src/components/User/WatchLater/WatchLater.tsx +94 -31
  476. package/src/components/User/components/UserAvatar.tsx +8 -4
  477. package/src/components/User/components/UserSection.tsx +39 -27
  478. package/src/components/User/index.ts +3 -1
  479. package/src/components/View/View.tsx +11 -2
  480. package/src/components/index.ts +2 -0
  481. package/src/components/layout/SafeAreaWrapper.tsx +10 -4
  482. package/src/constants/dummySections.ts +9 -7
  483. package/src/hooks/useDebounce.ts +4 -1
  484. package/src/hooks/useInitSplashCacheSync.ts +46 -18
  485. package/src/hooks/useKeyboard.ts +5 -3
  486. package/src/hooks/usePaginatedSection.ts +11 -7
  487. package/src/store/RecentSearchesStore.ts +12 -7
  488. package/src/store/splashStore.ts +16 -16
  489. package/src/theme/ThemeProvider.tsx +57 -24
  490. package/src/theme/hook/useTheme.ts +7 -3
  491. package/src/theme/index.ts +6 -0
  492. package/src/theme/themes.ts +45 -31
  493. package/src/types/content/content-view.types.ts +4 -1
  494. package/src/types/hook/usePaginatedSetion.ts +1 -1
  495. package/src/utils/Formater.ts +14 -0
  496. package/lib/module/components/Icons/AlertIcon.js +0 -33
  497. package/lib/module/components/Icons/AlertIcon.js.map +0 -1
  498. package/lib/module/components/Icons/DeviceIcon.js +0 -25
  499. package/lib/module/components/Icons/DeviceIcon.js.map +0 -1
  500. package/lib/module/components/Icons/DoneIcon/DoneIcon.js +0 -23
  501. package/lib/module/components/Icons/DoneIcon/DoneIcon.js.map +0 -1
  502. package/lib/module/components/Icons/ForgotPasswordMessageIcon.js +0 -65
  503. package/lib/module/components/Icons/ForgotPasswordMessageIcon.js.map +0 -1
  504. package/lib/module/components/Icons/ForgotPasswordMessageIconTwo.js +0 -56
  505. package/lib/module/components/Icons/ForgotPasswordMessageIconTwo.js.map +0 -1
  506. package/lib/module/components/Icons/NewIndex.js +0 -36
  507. package/lib/module/components/Icons/NewIndex.js.map +0 -1
  508. package/lib/module/components/Icons/ResendOTP.js +0 -21
  509. package/lib/module/components/Icons/ResendOTP.js.map +0 -1
  510. package/lib/typescript/src/components/Icons/AlertIcon.d.ts +0 -7
  511. package/lib/typescript/src/components/Icons/AlertIcon.d.ts.map +0 -1
  512. package/lib/typescript/src/components/Icons/DeviceIcon.d.ts +0 -7
  513. package/lib/typescript/src/components/Icons/DeviceIcon.d.ts.map +0 -1
  514. package/lib/typescript/src/components/Icons/DoneIcon/DoneIcon.d.ts +0 -6
  515. package/lib/typescript/src/components/Icons/DoneIcon/DoneIcon.d.ts.map +0 -1
  516. package/lib/typescript/src/components/Icons/ForgotPasswordMessageIcon.d.ts +0 -3
  517. package/lib/typescript/src/components/Icons/ForgotPasswordMessageIcon.d.ts.map +0 -1
  518. package/lib/typescript/src/components/Icons/ForgotPasswordMessageIconTwo.d.ts +0 -3
  519. package/lib/typescript/src/components/Icons/ForgotPasswordMessageIconTwo.d.ts.map +0 -1
  520. package/lib/typescript/src/components/Icons/NewIndex.d.ts +0 -19
  521. package/lib/typescript/src/components/Icons/NewIndex.d.ts.map +0 -1
  522. package/lib/typescript/src/components/Icons/ResendOTP.d.ts +0 -7
  523. package/lib/typescript/src/components/Icons/ResendOTP.d.ts.map +0 -1
  524. package/src/components/Icons/AlertIcon.tsx +0 -18
  525. package/src/components/Icons/DeviceIcon.tsx +0 -18
  526. package/src/components/Icons/DoneIcon/DoneIcon.tsx +0 -17
  527. package/src/components/Icons/ForgotPasswordMessageIcon.tsx +0 -34
  528. package/src/components/Icons/ForgotPasswordMessageIconTwo.tsx +0 -32
  529. package/src/components/Icons/NewIndex.ts +0 -35
  530. package/src/components/Icons/ResendOTP.tsx +0 -13
  531. /package/lib/module/assets/{img → svg}/h.svg +0 -0
  532. /package/src/assets/{img → svg}/h.svg +0 -0
  533. /package/src/{index.ts → index.tsx} +0 -0
@@ -1,6 +1,18 @@
1
1
  import React, { memo, useMemo, useState, useCallback, useEffect } from 'react';
2
- import { View, type ViewStyle, type TextStyle, type KeyboardTypeOptions, StyleSheet, Platform } from 'react-native';
3
- import { CodeField, Cursor, useBlurOnFulfill, useClearByFocusCell } from 'react-native-confirmation-code-field';
2
+ import {
3
+ View,
4
+ type ViewStyle,
5
+ type TextStyle,
6
+ type KeyboardTypeOptions,
7
+ StyleSheet,
8
+ Platform,
9
+ } from 'react-native';
10
+ import {
11
+ CodeField,
12
+ Cursor,
13
+ useBlurOnFulfill,
14
+ useClearByFocusCell,
15
+ } from 'react-native-confirmation-code-field';
4
16
  import { scale, verticalScale } from 'react-native-size-matters';
5
17
 
6
18
  import { BackgroundLayout } from '../../BackgroundLayout/BackgroundLayout';
@@ -46,12 +58,19 @@ type OTPProps = {
46
58
  };
47
59
  // Resend
48
60
  onResendOtp?: () => void;
49
- renderResendButton?: (props: { onPress: () => void; disabled: boolean }) => React.ReactNode;
61
+ renderResendButton?: (props: {
62
+ onPress: () => void;
63
+ disabled: boolean;
64
+ }) => React.ReactNode;
50
65
  resendDisabledTime?: number;
51
66
 
52
67
  // Render Props
53
68
  renderLogo?: () => React.ReactNode;
54
- renderSubmitButton?: (props: { onPress: () => void; disabled: boolean; loading: boolean }) => React.ReactNode;
69
+ renderSubmitButton?: (props: {
70
+ onPress: () => void;
71
+ disabled: boolean;
72
+ loading: boolean;
73
+ }) => React.ReactNode;
55
74
  renderBackButton?: (props: { onPress: () => void }) => React.ReactNode;
56
75
  renderOtpHeader?: () => React.ReactNode;
57
76
  renderOtpInput?: (props: {
@@ -73,7 +92,7 @@ const DEFAULT_TEXT = {
73
92
  loadingSubmitBtnText: 'Verifying...',
74
93
  otpSentText: 'A One-Time OTP has been sent to',
75
94
  resendOtpText: 'Resend OTP',
76
- resendOtpCountdownText: 'Resend OTP in'
95
+ resendOtpCountdownText: 'Resend OTP in',
77
96
  };
78
97
 
79
98
  const OTP: React.FC<OTPProps> = ({
@@ -102,7 +121,7 @@ const OTP: React.FC<OTPProps> = ({
102
121
  renderOtpInput,
103
122
  renderPhoneText,
104
123
  cellStyle,
105
- focusCellStyle
124
+ focusCellStyle,
106
125
  }) => {
107
126
  const { theme: resolvedTheme } = useTheme(overrideTheme);
108
127
  const { isKeyboardOpen } = useKeyboard();
@@ -113,7 +132,7 @@ const OTP: React.FC<OTPProps> = ({
113
132
  const ref = useBlurOnFulfill({ value: otp, cellCount: otpDigitCount });
114
133
  const [codeFieldProps, getCellOnLayoutHandler] = useClearByFocusCell({
115
134
  value: otp,
116
- setValue: setOtp
135
+ setValue: setOtp,
117
136
  });
118
137
 
119
138
  const styles = useMemo(
@@ -124,13 +143,13 @@ const OTP: React.FC<OTPProps> = ({
124
143
  width: '100%',
125
144
  paddingHorizontal: scale(16),
126
145
  justifyContent: 'center',
127
- alignItems: 'center'
146
+ alignItems: 'center',
128
147
  },
129
148
  topBackBtnWrapper: {
130
149
  position: 'absolute',
131
150
  top: verticalScale(6),
132
151
  left: 0,
133
- zIndex: 10
152
+ zIndex: 10,
134
153
  },
135
154
 
136
155
  centerContent: {
@@ -139,35 +158,35 @@ const OTP: React.FC<OTPProps> = ({
139
158
  maxWidth: scale(400),
140
159
  alignItems: 'center',
141
160
  justifyContent: 'center',
142
- gap: verticalScale(4)
161
+ gap: verticalScale(4),
143
162
  },
144
163
  title: {
145
164
  fontSize: RFValue(21),
146
165
  fontWeight: '700',
147
166
  marginTop: verticalScale(8),
148
167
  color: resolvedTheme.colors.textPrimary,
149
- textAlign: 'center'
168
+ textAlign: 'center',
150
169
  },
151
170
  sentText: {
152
171
  fontSize: RFValue(12),
153
172
  color: resolvedTheme.colors.onSurfaceVariant,
154
173
  textAlign: 'center',
155
- lineHeight: scale(18)
174
+ lineHeight: scale(18),
156
175
  },
157
176
  sentNumberContainer: {
158
177
  marginTop: verticalScale(8),
159
- alignItems: 'center'
178
+ alignItems: 'center',
160
179
  },
161
180
  form: {
162
181
  width: '100%',
163
182
  gap: verticalScale(20),
164
183
  alignItems: 'center',
165
184
  marginTop: verticalScale(24),
166
- marginBottom: isKeyboardOpen ? verticalScale(20) : 0
185
+ marginBottom: isKeyboardOpen ? verticalScale(20) : 0,
167
186
  },
168
187
  codeFieldRoot: {
169
188
  width: Display.setWidth(80),
170
- marginTop: scale(10)
189
+ marginTop: scale(10),
171
190
  },
172
191
  cell: {
173
192
  width: scale(55),
@@ -183,12 +202,12 @@ const OTP: React.FC<OTPProps> = ({
183
202
  alignSelf: 'center',
184
203
  overflow: 'hidden',
185
204
  color: resolvedTheme.colors.textPrimary,
186
- borderColor: resolvedTheme.colors.outline
205
+ borderColor: resolvedTheme.colors.outline,
187
206
  },
188
207
  focusCell: {
189
208
  borderColor: resolvedTheme.colors.primary,
190
- backgroundColor: resolvedTheme.colors.surfaceVariant
191
- }
209
+ backgroundColor: resolvedTheme.colors.surfaceVariant,
210
+ },
192
211
  }),
193
212
  [
194
213
  isKeyboardOpen,
@@ -196,7 +215,7 @@ const OTP: React.FC<OTPProps> = ({
196
215
  resolvedTheme.colors.outline,
197
216
  resolvedTheme.colors.primary,
198
217
  resolvedTheme.colors.surfaceVariant,
199
- resolvedTheme.colors.textPrimary
218
+ resolvedTheme.colors.textPrimary,
200
219
  ]
201
220
  );
202
221
 
@@ -229,7 +248,8 @@ const OTP: React.FC<OTPProps> = ({
229
248
 
230
249
  const isLoading = loading || isSubmitting;
231
250
  const isSubmitDisabled = otp.length !== otpDigitCount || isLoading;
232
- const shouldRender = (condition?: boolean | unknown): boolean => typeof condition === 'function' || !!condition;
251
+ const shouldRender = (condition?: boolean | unknown): boolean =>
252
+ typeof condition === 'function' || !!condition;
233
253
  return (
234
254
  <BackgroundLayout
235
255
  theme={resolvedTheme}
@@ -242,18 +262,30 @@ const OTP: React.FC<OTPProps> = ({
242
262
  <View style={styles.topBackBtnWrapper}>
243
263
  {renderBackButton ? (
244
264
  renderBackButton({
245
- onPress: onTopBackBtnPress ?? (() => {})
265
+ onPress: onTopBackBtnPress ?? (() => {}),
246
266
  })
247
267
  ) : (
248
- <BackBtn theme={resolvedTheme} style={backBtnStyle} onPress={onTopBackBtnPress} />
268
+ <BackBtn
269
+ theme={resolvedTheme}
270
+ style={backBtnStyle}
271
+ onPress={onTopBackBtnPress}
272
+ />
249
273
  )}
250
274
  </View>
251
275
  )}
252
276
  <HideKeyboard>
253
277
  <View style={styles.centerContent}>
254
- {renderLogo ? renderLogo() : logoUri ? <Logo logoUri={logoUri} /> : null}
278
+ {renderLogo ? (
279
+ renderLogo()
280
+ ) : logoUri ? (
281
+ <Logo logoUri={logoUri} />
282
+ ) : null}
255
283
 
256
- {renderOtpHeader ? renderOtpHeader() : <Text style={[styles.title, titleStyle]}>{title}</Text>}
284
+ {renderOtpHeader ? (
285
+ renderOtpHeader()
286
+ ) : (
287
+ <Text style={[styles.title, titleStyle]}>{title}</Text>
288
+ )}
257
289
 
258
290
  {phoneNumber &&
259
291
  (renderPhoneText ? (
@@ -266,7 +298,7 @@ const OTP: React.FC<OTPProps> = ({
266
298
  fontWeight: '700',
267
299
  fontSize: RFValue(13),
268
300
  marginTop: verticalScale(4),
269
- color: resolvedTheme.colors.primary
301
+ color: resolvedTheme.colors.primary,
270
302
  }}
271
303
  >
272
304
  {phoneNumber}
@@ -279,7 +311,10 @@ const OTP: React.FC<OTPProps> = ({
279
311
  renderOtpInput({
280
312
  value: otp,
281
313
  onChange: (val) => setOtp(val.replace(/\D/g, '')),
282
- isFocused: Array.from({ length: otpDigitCount }, (_, i) => otp.length === i)
314
+ isFocused: Array.from(
315
+ { length: otpDigitCount },
316
+ (_, i) => otp.length === i
317
+ ),
283
318
  })
284
319
  ) : (
285
320
  <CodeField
@@ -294,7 +329,12 @@ const OTP: React.FC<OTPProps> = ({
294
329
  renderCell={({ index, symbol, isFocused }) => (
295
330
  <Text
296
331
  key={index}
297
- style={[styles.cell, cellStyle, isFocused && styles.focusCell, isFocused && focusCellStyle]}
332
+ style={[
333
+ styles.cell,
334
+ cellStyle,
335
+ isFocused && styles.focusCell,
336
+ isFocused && focusCellStyle,
337
+ ]}
298
338
  onLayout={getCellOnLayoutHandler(index)}
299
339
  >
300
340
  {symbol || (isFocused ? <Cursor /> : null)}
@@ -307,7 +347,7 @@ const OTP: React.FC<OTPProps> = ({
307
347
  renderSubmitButton({
308
348
  onPress: handleSubmit,
309
349
  disabled: isSubmitDisabled,
310
- loading: isLoading
350
+ loading: isLoading,
311
351
  })
312
352
  ) : (
313
353
  <Button.Primary
@@ -324,19 +364,24 @@ const OTP: React.FC<OTPProps> = ({
324
364
  {/* Resend OTP Section */}
325
365
 
326
366
  {!isKeyboardOpen && (
327
- <View style={{ alignItems: 'center', marginTop: verticalScale(10) }}>
367
+ <View
368
+ style={{ alignItems: 'center', marginTop: verticalScale(10) }}
369
+ >
328
370
  {renderResendButton ? (
329
371
  renderResendButton({
330
372
  onPress: handleResendOtp,
331
- disabled: resendTimer > 0
373
+ disabled: resendTimer > 0,
332
374
  })
333
375
  ) : (
334
376
  <Text
335
377
  onPress={resendTimer <= 0 ? handleResendOtp : undefined}
336
378
  style={{
337
379
  fontSize: RFValue(12),
338
- color: resendTimer > 0 ? resolvedTheme.colors.onSurfaceVariant : resolvedTheme.colors.primary,
339
- textAlign: 'center'
380
+ color:
381
+ resendTimer > 0
382
+ ? resolvedTheme.colors.onSurfaceVariant
383
+ : resolvedTheme.colors.primary,
384
+ textAlign: 'center',
340
385
  }}
341
386
  >
342
387
  {resendTimer > 0
@@ -0,0 +1,306 @@
1
+ /**
2
+ * @author Ashok Desai
3
+ * @lastModified oct 02 Oct 2025 at 10:30 AM
4
+ */
5
+ import React, { useState, useRef } from 'react';
6
+ import {
7
+ View,
8
+ StyleSheet,
9
+ Dimensions,
10
+ TouchableOpacity,
11
+ ActivityIndicator,
12
+ StatusBar,
13
+ } from 'react-native';
14
+ import { scale } from 'react-native-size-matters';
15
+ import { RFValue } from 'react-native-responsive-fontsize';
16
+ import { Text } from '../../Text';
17
+ import AppHeader from '../../Headers/AppHeader';
18
+ import { useTheme } from '../../../theme/hook/useTheme';
19
+ import type { AppTheme } from '../../../theme/themes';
20
+ import { Camera as CameraIcon, QrCode } from 'lucide-react-native';
21
+ import {
22
+ Camera,
23
+ useCameraDevice,
24
+ useCameraPermission,
25
+ useCodeScanner,
26
+ type Code as BaseCode,
27
+ } from 'react-native-vision-camera';
28
+ import QrViewArea from './components/QrViewArea';
29
+
30
+ const { width: SCREEN_W, height: SCREEN_H } = Dimensions.get('window');
31
+ const HEADER_HEIGHT = 25;
32
+
33
+ export interface Code extends BaseCode {
34
+ bounds?: {
35
+ origin: { x: number; y: number };
36
+ size: { width: number; height: number };
37
+ };
38
+ }
39
+
40
+ export type QrLoginProps = {
41
+ title?: string;
42
+ description?: string;
43
+ scanButtonText?: string;
44
+ onBackPress?: () => void;
45
+ onScanSuccess?: (value: string) => void;
46
+ theme?: AppTheme;
47
+ cameraType?: 'back' | 'front';
48
+ layout?: 'one' | 'two';
49
+ };
50
+
51
+ const DEFAULTS = {
52
+ title: 'QR Login',
53
+ description: 'Please move your camera over the QR Code',
54
+ scanButtonText: 'Scan QR Code',
55
+ cameraType: 'back' as const,
56
+ };
57
+
58
+ export const QrLogin: React.FC<QrLoginProps> = ({
59
+ title = DEFAULTS.title,
60
+ description = DEFAULTS.description,
61
+ scanButtonText = DEFAULTS.scanButtonText,
62
+ onBackPress,
63
+ onScanSuccess,
64
+ theme,
65
+ cameraType = DEFAULTS.cameraType,
66
+ layout = 'one',
67
+ }) => {
68
+ const { theme: appliedTheme } = useTheme(theme);
69
+ const { colors } = appliedTheme;
70
+
71
+ const [scanActive, setScanActive] = useState(false);
72
+ const [requesting, setRequesting] = useState(false);
73
+
74
+ const device = useCameraDevice(cameraType);
75
+ const { hasPermission, requestPermission } = useCameraPermission();
76
+
77
+ const scanTimer = useRef<NodeJS.Timeout | null>(null);
78
+ const lastValueRef = useRef<string | null>(null);
79
+ const isScanning = useRef(false);
80
+
81
+ // ---- Check if QR inside scan box ----
82
+ const isCodeInsideBox = (code: Code): boolean => {
83
+ if (!code.bounds) return true;
84
+ const { origin, size } = code.bounds;
85
+ if (!origin || !size) return true;
86
+
87
+ const defaultBoxW = Math.min(SCREEN_W * 0.7, 320);
88
+ const boxW = defaultBoxW * 0.9;
89
+ const boxH = boxW;
90
+ const availableHeight = SCREEN_H - HEADER_HEIGHT;
91
+ const boxTop = Math.floor(
92
+ HEADER_HEIGHT + (availableHeight - boxH) / 2 - scale(40)
93
+ );
94
+ const sideOverlayWidth = Math.floor((SCREEN_W - boxW) / 2);
95
+
96
+ return (
97
+ origin.x >= sideOverlayWidth &&
98
+ origin.y >= boxTop &&
99
+ origin.x + size.width <= sideOverlayWidth + boxW &&
100
+ origin.y + size.height <= boxTop + boxH
101
+ );
102
+ };
103
+
104
+ // ---- Code Scanner ----
105
+ const codeScanner = useCodeScanner({
106
+ codeTypes: ['qr'],
107
+ onCodeScanned: (codes) => {
108
+ if (isScanning.current) return;
109
+ for (const c of codes) {
110
+ const code = c as Code;
111
+ const value = code?.value;
112
+ if (!value || !isCodeInsideBox(code)) continue;
113
+
114
+ if (lastValueRef.current === value) return;
115
+ lastValueRef.current = value;
116
+
117
+ if (scanTimer.current) clearTimeout(scanTimer.current);
118
+
119
+ scanTimer.current = setTimeout(() => {
120
+ isScanning.current = true;
121
+ setScanActive(false);
122
+ onScanSuccess?.(value);
123
+
124
+ setTimeout(() => {
125
+ isScanning.current = false;
126
+ lastValueRef.current = null;
127
+ }, 1000);
128
+ }, 1000);
129
+
130
+ break;
131
+ }
132
+ },
133
+ });
134
+
135
+ const startScan = async () => {
136
+ if (!hasPermission) {
137
+ setRequesting(true);
138
+ const granted = await requestPermission();
139
+ setRequesting(false);
140
+ if (!granted) return;
141
+ }
142
+ setScanActive(true);
143
+ };
144
+
145
+ return (
146
+ <View style={[styles.container, { backgroundColor: colors.background }]}>
147
+ <StatusBar
148
+ translucent
149
+ backgroundColor="transparent"
150
+ barStyle={appliedTheme.dark ? 'light-content' : 'dark-content'}
151
+ />
152
+
153
+ <View style={[styles.headerWrapper, { height: HEADER_HEIGHT }]}>
154
+ <AppHeader
155
+ title={title}
156
+ onBackPress={onBackPress}
157
+ theme={appliedTheme}
158
+ titleAlign="left"
159
+ />
160
+ </View>
161
+
162
+ <View style={styles.cameraWrapper}>
163
+ {scanActive ? (
164
+ device ? (
165
+ <>
166
+ <Camera
167
+ style={StyleSheet.absoluteFill}
168
+ device={device}
169
+ isActive={true}
170
+ codeScanner={codeScanner}
171
+ />
172
+ <QrViewArea
173
+ theme={appliedTheme}
174
+ layout={layout}
175
+ headerHeight={HEADER_HEIGHT}
176
+ />
177
+ </>
178
+ ) : (
179
+ <View
180
+ style={[styles.center, { backgroundColor: colors.background }]}
181
+ >
182
+ <Text
183
+ style={{ color: colors.textPrimary, fontSize: RFValue(16) }}
184
+ >
185
+ No camera available
186
+ </Text>
187
+ </View>
188
+ )
189
+ ) : (
190
+ <View style={styles.content}>
191
+ <View style={styles.card}>
192
+ <CameraIcon
193
+ size={scale(50)}
194
+ color={colors.button}
195
+ strokeWidth={1.6}
196
+ style={{ marginBottom: scale(12) }}
197
+ />
198
+
199
+ <Text style={[styles.descText, { color: colors.textPrimary }]}>
200
+ {description}
201
+ </Text>
202
+
203
+ <View
204
+ style={[
205
+ styles.qrBox,
206
+ {
207
+ borderColor: colors.primary,
208
+ backgroundColor: colors.skeletonBaseColor,
209
+ },
210
+ ]}
211
+ >
212
+ <QrCode
213
+ size={scale(180)}
214
+ color={colors.button}
215
+ strokeWidth={1.6}
216
+ />
217
+ </View>
218
+
219
+ <TouchableOpacity
220
+ style={[styles.scanBtn, { borderColor: colors.button }]}
221
+ onPress={startScan}
222
+ activeOpacity={0.85}
223
+ >
224
+ <CameraIcon
225
+ size={scale(22)}
226
+ color={colors.button}
227
+ strokeWidth={2}
228
+ style={{ marginRight: 10 }}
229
+ />
230
+ <Text style={[styles.scanText, { color: colors.button }]}>
231
+ {scanButtonText}
232
+ </Text>
233
+ </TouchableOpacity>
234
+
235
+ {requesting && (
236
+ <ActivityIndicator
237
+ style={{ marginTop: scale(12) }}
238
+ color={colors.primary}
239
+ />
240
+ )}
241
+ </View>
242
+ </View>
243
+ )}
244
+ </View>
245
+ </View>
246
+ );
247
+ };
248
+
249
+ const styles = StyleSheet.create({
250
+ container: { flex: 1 },
251
+ headerWrapper: {
252
+ position: 'absolute',
253
+ top: 0,
254
+ left: 0,
255
+ right: 0,
256
+ zIndex: 20,
257
+ elevation: 20,
258
+ },
259
+ cameraWrapper: {
260
+ flex: 1,
261
+ top: HEADER_HEIGHT,
262
+ },
263
+ center: {
264
+ flex: 1,
265
+ alignItems: 'center',
266
+ justifyContent: 'center',
267
+ },
268
+ content: {
269
+ flex: 1,
270
+ justifyContent: 'center',
271
+ alignItems: 'center',
272
+ padding: scale(14),
273
+ marginBottom: scale(50),
274
+ },
275
+ card: {
276
+ width: SCREEN_W - scale(40),
277
+ minHeight: SCREEN_H / 2.5,
278
+ alignItems: 'center',
279
+ padding: scale(20),
280
+ },
281
+ descText: {
282
+ fontSize: RFValue(15),
283
+ textAlign: 'center',
284
+ marginVertical: scale(12),
285
+ },
286
+ qrBox: {
287
+ marginVertical: scale(20),
288
+ padding: scale(20),
289
+ borderWidth: 2,
290
+ borderRadius: scale(12),
291
+ justifyContent: 'center',
292
+ alignItems: 'center',
293
+ },
294
+ scanBtn: {
295
+ flexDirection: 'row',
296
+ alignItems: 'center',
297
+ borderWidth: scale(2),
298
+ borderRadius: scale(12),
299
+ paddingVertical: scale(10),
300
+ paddingHorizontal: scale(25),
301
+ marginTop: scale(20),
302
+ },
303
+ scanText: { fontWeight: '600', fontSize: RFValue(14) },
304
+ });
305
+
306
+ export default QrLogin;