@zezosoft/zezo-ott-react-native-ui-kit 1.1.1 → 1.1.3

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 (437) hide show
  1. package/lib/module/Styles/globalStyles.js +0 -5
  2. package/lib/module/Styles/globalStyles.js.map +1 -1
  3. package/lib/module/components/Auth/AuthProvider/AuthProvider.js +64 -40
  4. package/lib/module/components/Auth/AuthProvider/AuthProvider.js.map +1 -1
  5. package/lib/module/components/Auth/ForgotPassword/ForgotPassword.js +5 -2
  6. package/lib/module/components/Auth/ForgotPassword/ForgotPassword.js.map +1 -1
  7. package/lib/module/components/Auth/Login/LoginWithEmail.js +17 -11
  8. package/lib/module/components/Auth/Login/LoginWithEmail.js.map +1 -1
  9. package/lib/module/components/Auth/Login/LoginWithPhone.js +12 -6
  10. package/lib/module/components/Auth/Login/LoginWithPhone.js.map +1 -1
  11. package/lib/module/components/Auth/OTP/OTP.js +7 -4
  12. package/lib/module/components/Auth/OTP/OTP.js.map +1 -1
  13. package/lib/module/components/Auth/QrLogin/QrLogin.js +357 -144
  14. package/lib/module/components/Auth/QrLogin/QrLogin.js.map +1 -1
  15. package/lib/module/components/Auth/QrLogin/components/QrViewArea.js +227 -110
  16. package/lib/module/components/Auth/QrLogin/components/QrViewArea.js.map +1 -1
  17. package/lib/module/components/Auth/SignUp/SignUp.js +19 -13
  18. package/lib/module/components/Auth/SignUp/SignUp.js.map +1 -1
  19. package/lib/module/components/Auth/SplashScreen/SplashScreen.js +54 -36
  20. package/lib/module/components/Auth/SplashScreen/SplashScreen.js.map +1 -1
  21. package/lib/module/components/Auth/SplashScreen/components/SplashImage/SplashImage.js +29 -11
  22. package/lib/module/components/Auth/SplashScreen/components/SplashImage/SplashImage.js.map +1 -1
  23. package/lib/module/components/Auth/SplashScreen/components/SplashLottie/SplashLottie.js +13 -7
  24. package/lib/module/components/Auth/SplashScreen/components/SplashLottie/SplashLottie.js.map +1 -1
  25. package/lib/module/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.js +33 -21
  26. package/lib/module/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.js.map +1 -1
  27. package/lib/module/components/BackgroundLayout/BackgroundLayout.js +26 -20
  28. package/lib/module/components/BackgroundLayout/BackgroundLayout.js.map +1 -1
  29. package/lib/module/components/BlogView/BlogView.js +36 -20
  30. package/lib/module/components/BlogView/BlogView.js.map +1 -1
  31. package/lib/module/components/Button/BackBtn.js +24 -20
  32. package/lib/module/components/Button/BackBtn.js.map +1 -1
  33. package/lib/module/components/Button/PrimaryBtn.js +19 -13
  34. package/lib/module/components/Button/PrimaryBtn.js.map +1 -1
  35. package/lib/module/components/Button/SecondaryBtn.js +19 -13
  36. package/lib/module/components/Button/SecondaryBtn.js.map +1 -1
  37. package/lib/module/components/Button/TextButton.js +19 -13
  38. package/lib/module/components/Button/TextButton.js.map +1 -1
  39. package/lib/module/components/Content/Card/Category/Category.js +151 -46
  40. package/lib/module/components/Content/Card/Category/Category.js.map +1 -1
  41. package/lib/module/components/Content/Card/NowWatching/NowWatching.js +237 -108
  42. package/lib/module/components/Content/Card/NowWatching/NowWatching.js.map +1 -1
  43. package/lib/module/components/Content/Card/Sliders/Styles/One.js +200 -133
  44. package/lib/module/components/Content/Card/Sliders/Styles/One.js.map +1 -1
  45. package/lib/module/components/Content/Card/Sliders/Styles/Two.js +192 -84
  46. package/lib/module/components/Content/Card/Sliders/Styles/Two.js.map +1 -1
  47. package/lib/module/components/Content/Card/Styles/Five.js +131 -48
  48. package/lib/module/components/Content/Card/Styles/Five.js.map +1 -1
  49. package/lib/module/components/Content/Card/Styles/Four.js +126 -59
  50. package/lib/module/components/Content/Card/Styles/Four.js.map +1 -1
  51. package/lib/module/components/Content/Card/Styles/One.js +125 -50
  52. package/lib/module/components/Content/Card/Styles/One.js.map +1 -1
  53. package/lib/module/components/Content/Card/Styles/RotateInOut.js +143 -65
  54. package/lib/module/components/Content/Card/Styles/RotateInOut.js.map +1 -1
  55. package/lib/module/components/Content/Card/Styles/Six.js +207 -115
  56. package/lib/module/components/Content/Card/Styles/Six.js.map +1 -1
  57. package/lib/module/components/Content/Card/Styles/Three.js +134 -79
  58. package/lib/module/components/Content/Card/Styles/Three.js.map +1 -1
  59. package/lib/module/components/Content/Card/Styles/TopTen.js +186 -171
  60. package/lib/module/components/Content/Card/Styles/TopTen.js.map +1 -1
  61. package/lib/module/components/Content/Card/Styles/Two.js +144 -64
  62. package/lib/module/components/Content/Card/Styles/Two.js.map +1 -1
  63. package/lib/module/components/Content/Card/components/AdsPoster.js +162 -0
  64. package/lib/module/components/Content/Card/components/AdsPoster.js.map +1 -0
  65. package/lib/module/components/Content/Card/components/CardPoster.js +139 -93
  66. package/lib/module/components/Content/Card/components/CardPoster.js.map +1 -1
  67. package/lib/module/components/Content/Card/components/RentOrBuyIcon.js +18 -17
  68. package/lib/module/components/Content/Card/components/RentOrBuyIcon.js.map +1 -1
  69. package/lib/module/components/Content/Card/components/ThumbnailCard.js +78 -28
  70. package/lib/module/components/Content/Card/components/ThumbnailCard.js.map +1 -1
  71. package/lib/module/components/Content/Card/components/index.js +4 -0
  72. package/lib/module/components/Content/Card/components/index.js.map +1 -0
  73. package/lib/module/components/Content/Content.js +99 -40
  74. package/lib/module/components/Content/Content.js.map +1 -1
  75. package/lib/module/components/Content/Sections.js +63 -34
  76. package/lib/module/components/Content/Sections.js.map +1 -1
  77. package/lib/module/components/ContentView/ContentView.js +70 -41
  78. package/lib/module/components/ContentView/ContentView.js.map +1 -1
  79. package/lib/module/components/ContentView/MoreContentList.js +74 -40
  80. package/lib/module/components/ContentView/MoreContentList.js.map +1 -1
  81. package/lib/module/components/ContentView/components/AboutSection.js +40 -19
  82. package/lib/module/components/ContentView/components/AboutSection.js.map +1 -1
  83. package/lib/module/components/ContentView/components/CastCard.js +6 -7
  84. package/lib/module/components/ContentView/components/CastCard.js.map +1 -1
  85. package/lib/module/components/ContentView/components/EpisodeCard.js +2 -2
  86. package/lib/module/components/ContentView/components/EpisodeCard.js.map +1 -1
  87. package/lib/module/components/ContentView/components/GenreTags.js +25 -13
  88. package/lib/module/components/ContentView/components/GenreTags.js.map +1 -1
  89. package/lib/module/components/ContentView/components/HeroBanner.js +39 -11
  90. package/lib/module/components/ContentView/components/HeroBanner.js.map +1 -1
  91. package/lib/module/components/ContentView/components/MiniInfo.js +84 -77
  92. package/lib/module/components/ContentView/components/MiniInfo.js.map +1 -1
  93. package/lib/module/components/ContentView/components/PlayButton.js +11 -7
  94. package/lib/module/components/ContentView/components/PlayButton.js.map +1 -1
  95. package/lib/module/components/ContentView/components/Title.js +12 -12
  96. package/lib/module/components/ContentView/components/Title.js.map +1 -1
  97. package/lib/module/components/ContentView/components/TrailerButton.js +12 -7
  98. package/lib/module/components/ContentView/components/TrailerButton.js.map +1 -1
  99. package/lib/module/components/Fallbacks/NoContentFallback.js +27 -22
  100. package/lib/module/components/Fallbacks/NoContentFallback.js.map +1 -1
  101. package/lib/module/components/Fallbacks/NotFoundFallback.js +6 -4
  102. package/lib/module/components/Fallbacks/NotFoundFallback.js.map +1 -1
  103. package/lib/module/components/Headers/AppHeader.js +22 -13
  104. package/lib/module/components/Headers/AppHeader.js.map +1 -1
  105. package/lib/module/components/Headers/Three.js +6 -5
  106. package/lib/module/components/Headers/Three.js.map +1 -1
  107. package/lib/module/components/Headers/Two.js +19 -14
  108. package/lib/module/components/Headers/Two.js.map +1 -1
  109. package/lib/module/components/Input/InputOne.js +46 -31
  110. package/lib/module/components/Input/InputOne.js.map +1 -1
  111. package/lib/module/components/Loader/Loader.js +2 -2
  112. package/lib/module/components/Loader/Loader.js.map +1 -1
  113. package/lib/module/components/Logo/Logo.js +17 -14
  114. package/lib/module/components/Logo/Logo.js.map +1 -1
  115. package/lib/module/components/Search/One.js +2 -1
  116. package/lib/module/components/Search/One.js.map +1 -1
  117. package/lib/module/components/Search/components/SearchCard.js +15 -19
  118. package/lib/module/components/Search/components/SearchCard.js.map +1 -1
  119. package/lib/module/components/Settings/AppSettings.js +97 -62
  120. package/lib/module/components/Settings/AppSettings.js.map +1 -1
  121. package/lib/module/components/Subscription/SubOne.js +313 -254
  122. package/lib/module/components/Subscription/SubOne.js.map +1 -1
  123. package/lib/module/components/Text/Text.js +15 -12
  124. package/lib/module/components/Text/Text.js.map +1 -1
  125. package/lib/module/components/User/DeviceSessions/DeviceSessions.js +25 -23
  126. package/lib/module/components/User/DeviceSessions/DeviceSessions.js.map +1 -1
  127. package/lib/module/components/User/ProfileUpdate/ProfileUpdate.js +23 -18
  128. package/lib/module/components/User/ProfileUpdate/ProfileUpdate.js.map +1 -1
  129. package/lib/module/components/User/PurchaseHistory/PurchaseHistory.js +38 -24
  130. package/lib/module/components/User/PurchaseHistory/PurchaseHistory.js.map +1 -1
  131. package/lib/module/components/User/WatchHistory/WatchHistory.js +21 -14
  132. package/lib/module/components/User/WatchHistory/WatchHistory.js.map +1 -1
  133. package/lib/module/components/User/WatchLater/WatchLater.js +30 -21
  134. package/lib/module/components/User/WatchLater/WatchLater.js.map +1 -1
  135. package/lib/module/components/User/components/UserAvatar.js +38 -19
  136. package/lib/module/components/User/components/UserAvatar.js.map +1 -1
  137. package/lib/module/components/User/components/UserSection.js +37 -17
  138. package/lib/module/components/User/components/UserSection.js.map +1 -1
  139. package/lib/module/components/View/View.js +7 -4
  140. package/lib/module/components/View/View.js.map +1 -1
  141. package/lib/module/components/index.js +0 -1
  142. package/lib/module/components/index.js.map +1 -1
  143. package/lib/module/constants/dummySections.js +44 -4
  144. package/lib/module/constants/dummySections.js.map +1 -1
  145. package/lib/module/hooks/Images/index.js +5 -0
  146. package/lib/module/hooks/Images/index.js.map +1 -0
  147. package/lib/module/hooks/Images/useImageLoader.js +168 -0
  148. package/lib/module/hooks/Images/useImageLoader.js.map +1 -0
  149. package/lib/module/hooks/Images/useImageValidation.js +36 -0
  150. package/lib/module/hooks/Images/useImageValidation.js.map +1 -0
  151. package/lib/module/hooks/index.js +20 -0
  152. package/lib/module/hooks/index.js.map +1 -0
  153. package/lib/module/hooks/useAdTracking.js +270 -0
  154. package/lib/module/hooks/useAdTracking.js.map +1 -0
  155. package/lib/module/hooks/useCards.js +164 -0
  156. package/lib/module/hooks/useCards.js.map +1 -0
  157. package/lib/module/hooks/useDebounce.js +25 -6
  158. package/lib/module/hooks/useDebounce.js.map +1 -1
  159. package/lib/module/hooks/useKeyboard.js +7 -4
  160. package/lib/module/hooks/useKeyboard.js.map +1 -1
  161. package/lib/module/hooks/useNavigationMode.js +10 -4
  162. package/lib/module/hooks/useNavigationMode.js.map +1 -1
  163. package/lib/module/hooks/usePaginatedSection.js +12 -7
  164. package/lib/module/hooks/usePaginatedSection.js.map +1 -1
  165. package/lib/module/hooks/usePrevious.js +30 -0
  166. package/lib/module/hooks/usePrevious.js.map +1 -0
  167. package/lib/module/hooks/useSafeCallback.js +33 -0
  168. package/lib/module/hooks/useSafeCallback.js.map +1 -0
  169. package/lib/module/hooks/useSkeletonItems.js +33 -0
  170. package/lib/module/hooks/useSkeletonItems.js.map +1 -0
  171. package/lib/module/hooks/useSplashCache.js +2 -1
  172. package/lib/module/hooks/useSplashCache.js.map +1 -1
  173. package/lib/module/hooks/useThemeColors.js +33 -0
  174. package/lib/module/hooks/useThemeColors.js.map +1 -0
  175. package/lib/module/theme/ThemeProvider.js +17 -11
  176. package/lib/module/theme/ThemeProvider.js.map +1 -1
  177. package/lib/module/theme/hook/useInternalTheme.js +18 -11
  178. package/lib/module/theme/hook/useInternalTheme.js.map +1 -1
  179. package/lib/module/theme/hook/useThemeStatusBar.js +10 -4
  180. package/lib/module/theme/hook/useThemeStatusBar.js.map +1 -1
  181. package/lib/typescript/src/Styles/globalStyles.d.ts +0 -5
  182. package/lib/typescript/src/Styles/globalStyles.d.ts.map +1 -1
  183. package/lib/typescript/src/components/Auth/AuthProvider/AuthProvider.d.ts.map +1 -1
  184. package/lib/typescript/src/components/Auth/ForgotPassword/ForgotPassword.d.ts.map +1 -1
  185. package/lib/typescript/src/components/Auth/Login/LoginWithEmail.d.ts.map +1 -1
  186. package/lib/typescript/src/components/Auth/Login/LoginWithPhone.d.ts.map +1 -1
  187. package/lib/typescript/src/components/Auth/OTP/OTP.d.ts.map +1 -1
  188. package/lib/typescript/src/components/Auth/QrLogin/QrLogin.d.ts +2 -15
  189. package/lib/typescript/src/components/Auth/QrLogin/QrLogin.d.ts.map +1 -1
  190. package/lib/typescript/src/components/Auth/QrLogin/components/QrViewArea.d.ts +0 -1
  191. package/lib/typescript/src/components/Auth/QrLogin/components/QrViewArea.d.ts.map +1 -1
  192. package/lib/typescript/src/components/Auth/SignUp/SignUp.d.ts.map +1 -1
  193. package/lib/typescript/src/components/Auth/SplashScreen/SplashScreen.d.ts.map +1 -1
  194. package/lib/typescript/src/components/Auth/SplashScreen/components/SplashImage/SplashImage.d.ts.map +1 -1
  195. package/lib/typescript/src/components/Auth/SplashScreen/components/SplashLottie/SplashLottie.d.ts.map +1 -1
  196. package/lib/typescript/src/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.d.ts.map +1 -1
  197. package/lib/typescript/src/components/Auth/index.d.ts.map +1 -1
  198. package/lib/typescript/src/components/BackgroundLayout/BackgroundLayout.d.ts +1 -1
  199. package/lib/typescript/src/components/BackgroundLayout/BackgroundLayout.d.ts.map +1 -1
  200. package/lib/typescript/src/components/BlogView/BlogView.d.ts +2 -1
  201. package/lib/typescript/src/components/BlogView/BlogView.d.ts.map +1 -1
  202. package/lib/typescript/src/components/Button/BackBtn.d.ts +2 -2
  203. package/lib/typescript/src/components/Button/BackBtn.d.ts.map +1 -1
  204. package/lib/typescript/src/components/Button/PrimaryBtn.d.ts +2 -1
  205. package/lib/typescript/src/components/Button/PrimaryBtn.d.ts.map +1 -1
  206. package/lib/typescript/src/components/Button/SecondaryBtn.d.ts +2 -1
  207. package/lib/typescript/src/components/Button/SecondaryBtn.d.ts.map +1 -1
  208. package/lib/typescript/src/components/Button/TextButton.d.ts +2 -2
  209. package/lib/typescript/src/components/Button/TextButton.d.ts.map +1 -1
  210. package/lib/typescript/src/components/Button/index.d.ts +2 -2
  211. package/lib/typescript/src/components/Content/Card/Category/Category.d.ts.map +1 -1
  212. package/lib/typescript/src/components/Content/Card/NowWatching/NowWatching.d.ts.map +1 -1
  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.map +1 -1
  215. package/lib/typescript/src/components/Content/Card/Styles/Five.d.ts +13 -1
  216. package/lib/typescript/src/components/Content/Card/Styles/Five.d.ts.map +1 -1
  217. package/lib/typescript/src/components/Content/Card/Styles/Four.d.ts +13 -1
  218. package/lib/typescript/src/components/Content/Card/Styles/Four.d.ts.map +1 -1
  219. package/lib/typescript/src/components/Content/Card/Styles/One.d.ts +15 -3
  220. package/lib/typescript/src/components/Content/Card/Styles/One.d.ts.map +1 -1
  221. package/lib/typescript/src/components/Content/Card/Styles/RotateInOut.d.ts +13 -1
  222. package/lib/typescript/src/components/Content/Card/Styles/RotateInOut.d.ts.map +1 -1
  223. package/lib/typescript/src/components/Content/Card/Styles/Six.d.ts +1 -0
  224. package/lib/typescript/src/components/Content/Card/Styles/Six.d.ts.map +1 -1
  225. package/lib/typescript/src/components/Content/Card/Styles/Three.d.ts +13 -5
  226. package/lib/typescript/src/components/Content/Card/Styles/Three.d.ts.map +1 -1
  227. package/lib/typescript/src/components/Content/Card/Styles/TopTen.d.ts +1 -0
  228. package/lib/typescript/src/components/Content/Card/Styles/TopTen.d.ts.map +1 -1
  229. package/lib/typescript/src/components/Content/Card/Styles/Two.d.ts +13 -1
  230. package/lib/typescript/src/components/Content/Card/Styles/Two.d.ts.map +1 -1
  231. package/lib/typescript/src/components/Content/Card/components/AdsPoster.d.ts +26 -0
  232. package/lib/typescript/src/components/Content/Card/components/AdsPoster.d.ts.map +1 -0
  233. package/lib/typescript/src/components/Content/Card/components/CardPoster.d.ts +3 -1
  234. package/lib/typescript/src/components/Content/Card/components/CardPoster.d.ts.map +1 -1
  235. package/lib/typescript/src/components/Content/Card/components/RentOrBuyIcon.d.ts +2 -2
  236. package/lib/typescript/src/components/Content/Card/components/RentOrBuyIcon.d.ts.map +1 -1
  237. package/lib/typescript/src/components/Content/Card/components/ThumbnailCard.d.ts +2 -0
  238. package/lib/typescript/src/components/Content/Card/components/ThumbnailCard.d.ts.map +1 -1
  239. package/lib/typescript/src/components/Content/Card/components/index.d.ts +2 -0
  240. package/lib/typescript/src/components/Content/Card/components/index.d.ts.map +1 -0
  241. package/lib/typescript/src/components/Content/Card/index.d.ts +76 -6
  242. package/lib/typescript/src/components/Content/Card/index.d.ts.map +1 -1
  243. package/lib/typescript/src/components/Content/Content.d.ts +6 -3
  244. package/lib/typescript/src/components/Content/Content.d.ts.map +1 -1
  245. package/lib/typescript/src/components/Content/Sections.d.ts +22 -8
  246. package/lib/typescript/src/components/Content/Sections.d.ts.map +1 -1
  247. package/lib/typescript/src/components/ContentView/ContentView.d.ts +6 -1
  248. package/lib/typescript/src/components/ContentView/ContentView.d.ts.map +1 -1
  249. package/lib/typescript/src/components/ContentView/MoreContentList.d.ts.map +1 -1
  250. package/lib/typescript/src/components/ContentView/components/AboutSection.d.ts +2 -1
  251. package/lib/typescript/src/components/ContentView/components/AboutSection.d.ts.map +1 -1
  252. package/lib/typescript/src/components/ContentView/components/CastCard.d.ts +6 -1
  253. package/lib/typescript/src/components/ContentView/components/CastCard.d.ts.map +1 -1
  254. package/lib/typescript/src/components/ContentView/components/EpisodeCard.d.ts +2 -1
  255. package/lib/typescript/src/components/ContentView/components/EpisodeCard.d.ts.map +1 -1
  256. package/lib/typescript/src/components/ContentView/components/GenreTags.d.ts +1 -1
  257. package/lib/typescript/src/components/ContentView/components/GenreTags.d.ts.map +1 -1
  258. package/lib/typescript/src/components/ContentView/components/HeroBanner.d.ts +2 -1
  259. package/lib/typescript/src/components/ContentView/components/HeroBanner.d.ts.map +1 -1
  260. package/lib/typescript/src/components/ContentView/components/MiniInfo.d.ts +1 -1
  261. package/lib/typescript/src/components/ContentView/components/MiniInfo.d.ts.map +1 -1
  262. package/lib/typescript/src/components/ContentView/components/PlayButton.d.ts +2 -1
  263. package/lib/typescript/src/components/ContentView/components/PlayButton.d.ts.map +1 -1
  264. package/lib/typescript/src/components/ContentView/components/Title.d.ts +1 -1
  265. package/lib/typescript/src/components/ContentView/components/Title.d.ts.map +1 -1
  266. package/lib/typescript/src/components/ContentView/components/TrailerButton.d.ts +2 -1
  267. package/lib/typescript/src/components/ContentView/components/TrailerButton.d.ts.map +1 -1
  268. package/lib/typescript/src/components/Fallbacks/NoContentFallback.d.ts +2 -1
  269. package/lib/typescript/src/components/Fallbacks/NoContentFallback.d.ts.map +1 -1
  270. package/lib/typescript/src/components/Fallbacks/NotFoundFallback.d.ts +1 -1
  271. package/lib/typescript/src/components/Fallbacks/NotFoundFallback.d.ts.map +1 -1
  272. package/lib/typescript/src/components/Headers/AppHeader.d.ts +2 -2
  273. package/lib/typescript/src/components/Headers/AppHeader.d.ts.map +1 -1
  274. package/lib/typescript/src/components/Headers/Three.d.ts +2 -2
  275. package/lib/typescript/src/components/Headers/Three.d.ts.map +1 -1
  276. package/lib/typescript/src/components/Headers/Two.d.ts +2 -2
  277. package/lib/typescript/src/components/Headers/Two.d.ts.map +1 -1
  278. package/lib/typescript/src/components/Headers/index.d.ts +2 -2
  279. package/lib/typescript/src/components/Input/Input.d.ts +1 -1
  280. package/lib/typescript/src/components/Input/InputOne.d.ts +2 -2
  281. package/lib/typescript/src/components/Input/InputOne.d.ts.map +1 -1
  282. package/lib/typescript/src/components/Loader/Loader.d.ts.map +1 -1
  283. package/lib/typescript/src/components/Logo/Logo.d.ts +2 -1
  284. package/lib/typescript/src/components/Logo/Logo.d.ts.map +1 -1
  285. package/lib/typescript/src/components/Search/One.d.ts.map +1 -1
  286. package/lib/typescript/src/components/Search/components/SearchCard.d.ts +2 -5
  287. package/lib/typescript/src/components/Search/components/SearchCard.d.ts.map +1 -1
  288. package/lib/typescript/src/components/Search/index.d.ts +1 -1
  289. package/lib/typescript/src/components/Settings/AppSettings.d.ts +2 -2
  290. package/lib/typescript/src/components/Settings/AppSettings.d.ts.map +1 -1
  291. package/lib/typescript/src/components/Subscription/SubOne.d.ts.map +1 -1
  292. package/lib/typescript/src/components/Subscription/index.d.ts.map +1 -1
  293. package/lib/typescript/src/components/Text/Text.d.ts +2 -2
  294. package/lib/typescript/src/components/Text/Text.d.ts.map +1 -1
  295. package/lib/typescript/src/components/User/DeviceSessions/DeviceSessions.d.ts +1 -1
  296. package/lib/typescript/src/components/User/DeviceSessions/DeviceSessions.d.ts.map +1 -1
  297. package/lib/typescript/src/components/User/ProfileUpdate/ProfileUpdate.d.ts +1 -1
  298. package/lib/typescript/src/components/User/ProfileUpdate/ProfileUpdate.d.ts.map +1 -1
  299. package/lib/typescript/src/components/User/PurchaseHistory/PurchaseHistory.d.ts +1 -1
  300. package/lib/typescript/src/components/User/PurchaseHistory/PurchaseHistory.d.ts.map +1 -1
  301. package/lib/typescript/src/components/User/WatchHistory/WatchHistory.d.ts +1 -1
  302. package/lib/typescript/src/components/User/WatchHistory/WatchHistory.d.ts.map +1 -1
  303. package/lib/typescript/src/components/User/WatchLater/WatchLater.d.ts +1 -1
  304. package/lib/typescript/src/components/User/WatchLater/WatchLater.d.ts.map +1 -1
  305. package/lib/typescript/src/components/User/components/UserAvatar.d.ts +1 -1
  306. package/lib/typescript/src/components/User/components/UserAvatar.d.ts.map +1 -1
  307. package/lib/typescript/src/components/User/components/UserSection.d.ts +1 -1
  308. package/lib/typescript/src/components/User/components/UserSection.d.ts.map +1 -1
  309. package/lib/typescript/src/components/View/View.d.ts +2 -0
  310. package/lib/typescript/src/components/View/View.d.ts.map +1 -1
  311. package/lib/typescript/src/components/index.d.ts +0 -1
  312. package/lib/typescript/src/components/index.d.ts.map +1 -1
  313. package/lib/typescript/src/constants/dummySections.d.ts +5 -0
  314. package/lib/typescript/src/constants/dummySections.d.ts.map +1 -1
  315. package/lib/typescript/src/hooks/Images/index.d.ts +3 -0
  316. package/lib/typescript/src/hooks/Images/index.d.ts.map +1 -0
  317. package/lib/typescript/src/hooks/Images/useImageLoader.d.ts +36 -0
  318. package/lib/typescript/src/hooks/Images/useImageLoader.d.ts.map +1 -0
  319. package/lib/typescript/src/hooks/Images/useImageValidation.d.ts +17 -0
  320. package/lib/typescript/src/hooks/Images/useImageValidation.d.ts.map +1 -0
  321. package/lib/typescript/src/hooks/index.d.ts +17 -0
  322. package/lib/typescript/src/hooks/index.d.ts.map +1 -0
  323. package/lib/typescript/src/hooks/useAdTracking.d.ts +39 -0
  324. package/lib/typescript/src/hooks/useAdTracking.d.ts.map +1 -0
  325. package/lib/typescript/src/hooks/useCards.d.ts +36 -0
  326. package/lib/typescript/src/hooks/useCards.d.ts.map +1 -0
  327. package/lib/typescript/src/hooks/useDebounce.d.ts.map +1 -1
  328. package/lib/typescript/src/hooks/useKeyboard.d.ts.map +1 -1
  329. package/lib/typescript/src/hooks/useNavigationMode.d.ts.map +1 -1
  330. package/lib/typescript/src/hooks/usePaginatedSection.d.ts +12 -2
  331. package/lib/typescript/src/hooks/usePaginatedSection.d.ts.map +1 -1
  332. package/lib/typescript/src/hooks/usePrevious.d.ts +12 -0
  333. package/lib/typescript/src/hooks/usePrevious.d.ts.map +1 -0
  334. package/lib/typescript/src/hooks/useSafeCallback.d.ts +15 -0
  335. package/lib/typescript/src/hooks/useSafeCallback.d.ts.map +1 -0
  336. package/lib/typescript/src/hooks/useSkeletonItems.d.ts +11 -0
  337. package/lib/typescript/src/hooks/useSkeletonItems.d.ts.map +1 -0
  338. package/lib/typescript/src/hooks/useSplashCache.d.ts.map +1 -1
  339. package/lib/typescript/src/hooks/useThemeColors.d.ts +27 -0
  340. package/lib/typescript/src/hooks/useThemeColors.d.ts.map +1 -0
  341. package/lib/typescript/src/theme/ThemeProvider.d.ts.map +1 -1
  342. package/lib/typescript/src/theme/hook/useInternalTheme.d.ts.map +1 -1
  343. package/lib/typescript/src/theme/hook/useThemeStatusBar.d.ts.map +1 -1
  344. package/lib/typescript/src/types/sections/index.d.ts +7 -4
  345. package/lib/typescript/src/types/sections/index.d.ts.map +1 -1
  346. package/package.json +6 -3
  347. package/src/Styles/globalStyles.ts +0 -5
  348. package/src/components/Auth/AuthProvider/AuthProvider.tsx +288 -212
  349. package/src/components/Auth/ForgotPassword/ForgotPassword.tsx +11 -4
  350. package/src/components/Auth/Login/LoginWithEmail.tsx +266 -238
  351. package/src/components/Auth/Login/LoginWithPhone.tsx +18 -6
  352. package/src/components/Auth/OTP/OTP.tsx +21 -5
  353. package/src/components/Auth/QrLogin/QrLogin.tsx +477 -177
  354. package/src/components/Auth/QrLogin/components/QrViewArea.tsx +349 -139
  355. package/src/components/Auth/SignUp/SignUp.tsx +312 -293
  356. package/src/components/Auth/SplashScreen/SplashScreen.tsx +186 -131
  357. package/src/components/Auth/SplashScreen/components/SplashImage/SplashImage.tsx +32 -15
  358. package/src/components/Auth/SplashScreen/components/SplashLottie/SplashLottie.tsx +11 -5
  359. package/src/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.tsx +34 -18
  360. package/src/components/BackgroundLayout/BackgroundLayout.tsx +43 -37
  361. package/src/components/BlogView/BlogView.tsx +66 -30
  362. package/src/components/Button/BackBtn.tsx +64 -34
  363. package/src/components/Button/PrimaryBtn.tsx +42 -25
  364. package/src/components/Button/SecondaryBtn.tsx +41 -25
  365. package/src/components/Button/TextButton.tsx +54 -32
  366. package/src/components/Content/Card/Category/Category.tsx +189 -64
  367. package/src/components/Content/Card/NowWatching/NowWatching.tsx +281 -136
  368. package/src/components/Content/Card/Sliders/Styles/One.tsx +270 -158
  369. package/src/components/Content/Card/Sliders/Styles/Two.tsx +239 -90
  370. package/src/components/Content/Card/Styles/Five.tsx +161 -62
  371. package/src/components/Content/Card/Styles/Four.tsx +164 -85
  372. package/src/components/Content/Card/Styles/One.tsx +161 -71
  373. package/src/components/Content/Card/Styles/RotateInOut.tsx +162 -67
  374. package/src/components/Content/Card/Styles/Six.tsx +242 -142
  375. package/src/components/Content/Card/Styles/Three.tsx +166 -133
  376. package/src/components/Content/Card/Styles/TopTen.tsx +230 -191
  377. package/src/components/Content/Card/Styles/Two.tsx +182 -79
  378. package/src/components/Content/Card/components/AdsPoster.tsx +202 -0
  379. package/src/components/Content/Card/components/CardPoster.tsx +166 -105
  380. package/src/components/Content/Card/components/RentOrBuyIcon.tsx +58 -38
  381. package/src/components/Content/Card/components/ThumbnailCard.tsx +122 -47
  382. package/src/components/Content/Card/components/index.ts +1 -0
  383. package/src/components/Content/Content.tsx +211 -106
  384. package/src/components/Content/Sections.tsx +148 -51
  385. package/src/components/ContentView/ContentView.tsx +194 -128
  386. package/src/components/ContentView/MoreContentList.tsx +215 -151
  387. package/src/components/ContentView/components/AboutSection.tsx +132 -93
  388. package/src/components/ContentView/components/CastCard.tsx +148 -138
  389. package/src/components/ContentView/components/EpisodeCard.tsx +160 -155
  390. package/src/components/ContentView/components/GenreTags.tsx +68 -53
  391. package/src/components/ContentView/components/HeroBanner.tsx +326 -284
  392. package/src/components/ContentView/components/MiniInfo.tsx +181 -159
  393. package/src/components/ContentView/components/PlayButton.tsx +27 -16
  394. package/src/components/ContentView/components/Title.tsx +89 -72
  395. package/src/components/ContentView/components/TrailerButton.tsx +35 -22
  396. package/src/components/Fallbacks/NoContentFallback.tsx +107 -103
  397. package/src/components/Fallbacks/NotFoundFallback.tsx +12 -4
  398. package/src/components/Headers/AppHeader.tsx +42 -26
  399. package/src/components/Headers/Three.tsx +12 -8
  400. package/src/components/Headers/Two.tsx +31 -10
  401. package/src/components/Input/InputOne.tsx +136 -108
  402. package/src/components/Loader/Loader.tsx +2 -2
  403. package/src/components/Logo/Logo.tsx +43 -27
  404. package/src/components/Search/One.tsx +2 -4
  405. package/src/components/Search/components/SearchCard.tsx +19 -13
  406. package/src/components/Settings/AppSettings.tsx +217 -128
  407. package/src/components/Subscription/SubOne.tsx +394 -317
  408. package/src/components/Text/Text.tsx +33 -22
  409. package/src/components/User/DeviceSessions/DeviceSessions.tsx +129 -102
  410. package/src/components/User/ProfileUpdate/ProfileUpdate.tsx +36 -17
  411. package/src/components/User/PurchaseHistory/PurchaseHistory.tsx +194 -140
  412. package/src/components/User/WatchHistory/WatchHistory.tsx +63 -36
  413. package/src/components/User/WatchLater/WatchLater.tsx +119 -81
  414. package/src/components/User/components/UserAvatar.tsx +49 -15
  415. package/src/components/User/components/UserSection.tsx +71 -37
  416. package/src/components/View/View.tsx +10 -2
  417. package/src/components/index.ts +0 -1
  418. package/src/constants/dummySections.ts +48 -1
  419. package/src/hooks/Images/index.ts +2 -0
  420. package/src/hooks/Images/useImageLoader.ts +206 -0
  421. package/src/hooks/Images/useImageValidation.ts +36 -0
  422. package/src/hooks/index.ts +17 -0
  423. package/src/hooks/useAdTracking.ts +349 -0
  424. package/src/hooks/useCards.ts +228 -0
  425. package/src/hooks/useDebounce.ts +25 -6
  426. package/src/hooks/useKeyboard.ts +12 -5
  427. package/src/hooks/useNavigationMode.ts +16 -5
  428. package/src/hooks/usePaginatedSection.ts +27 -8
  429. package/src/hooks/usePrevious.ts +28 -0
  430. package/src/hooks/useSafeCallback.ts +43 -0
  431. package/src/hooks/useSkeletonItems.ts +30 -0
  432. package/src/hooks/useSplashCache.ts +2 -1
  433. package/src/hooks/useThemeColors.ts +51 -0
  434. package/src/theme/ThemeProvider.tsx +25 -9
  435. package/src/theme/hook/useInternalTheme.ts +19 -13
  436. package/src/theme/hook/useThemeStatusBar.ts +14 -5
  437. package/src/types/sections/index.ts +7 -4
@@ -2,7 +2,7 @@
2
2
  * @author Ashok Desai
3
3
  * @lastModified oct 02 Oct 2025 at 10:30 AM
4
4
  */
5
- import React, { useEffect, useRef } from 'react';
5
+ import React, { useEffect, useRef, useMemo, useCallback } from 'react';
6
6
  import {
7
7
  View,
8
8
  StyleSheet,
@@ -11,203 +11,413 @@ import {
11
11
  Dimensions,
12
12
  Platform,
13
13
  } from 'react-native';
14
+ import type { ViewStyle } from 'react-native';
14
15
  import { scale } from 'react-native-size-matters';
15
- import Svg, { Rect } from 'react-native-svg';
16
16
  import type { ThemeOverride } from '../../../../theme/themes';
17
17
  import { useInternalTheme } from '../../../../theme/hook/useInternalTheme';
18
18
 
19
19
  const { width: SCREEN_W, height: SCREEN_H } = Dimensions.get('window');
20
20
 
21
+ // ==================== Constants ====================
22
+ const ANIMATION_DURATION = 2000;
23
+ const CORNER_SIZE = 18;
24
+ const CORNER_BORDER_WIDTH = 3;
25
+ const SCAN_LINE_HEIGHT = 3;
26
+ const SCAN_LINE_MARGIN = 12;
27
+ const BOX_WIDTH_RATIO = 0.7;
28
+ const BOX_SIZE_RATIO = 0.9;
29
+ const MAX_BOX_WIDTH = 320;
30
+ const VERTICAL_OFFSET = 40;
31
+ const DEFAULT_OVERLAY_COLOR = 'rgba(0, 0, 0, 0.6)';
32
+ const DEFAULT_SHADOW_COLOR = '#000';
33
+
34
+ // ==================== Types ====================
21
35
  type QrViewAreaProps = {
22
36
  scanBoxWidth?: number;
23
- layout?: 'one' | 'two';
24
37
  headerHeight?: number;
25
38
  theme?: ThemeOverride;
26
39
  };
27
40
 
28
- const QrViewArea: React.FC<QrViewAreaProps> = ({
29
- scanBoxWidth,
30
- layout = 'one',
31
- headerHeight = 60,
32
- theme,
33
- }) => {
34
- const { theme: appliedTheme } = useInternalTheme(theme);
35
- const { colors } = appliedTheme;
41
+ type BoxDimensions = {
42
+ boxW: number;
43
+ boxH: number;
44
+ boxTop: number;
45
+ topOverlayHeight: number;
46
+ bottomOverlayHeight: number;
47
+ sideOverlayWidth: number;
48
+ rightOverlayWidth: number;
49
+ };
36
50
 
37
- const anim = useRef(new Animated.Value(0)).current;
51
+ type CornerPosition = 'tl' | 'tr' | 'bl' | 'br';
38
52
 
39
- const defaultBoxW = scanBoxWidth || Math.min(SCREEN_W * 0.7, 320);
40
- const boxW = defaultBoxW * 0.9;
53
+ // ==================== Helper Functions ====================
54
+ /**
55
+ * Calculates the scan box dimensions and overlay positions
56
+ */
57
+ const calculateBoxDimensions = (
58
+ scanBoxWidth: number | undefined,
59
+ headerHeight: number
60
+ ): BoxDimensions => {
61
+ const defaultBoxW =
62
+ scanBoxWidth || Math.min(SCREEN_W * BOX_WIDTH_RATIO, MAX_BOX_WIDTH);
63
+ const boxW = defaultBoxW * BOX_SIZE_RATIO;
41
64
  const boxH = boxW;
42
-
43
65
  const availableHeight = SCREEN_H - headerHeight;
44
- const boxTop = Math.floor(
45
- headerHeight + (availableHeight - boxH) / 2 - scale(40)
66
+ const boxTop = Math.max(
67
+ headerHeight,
68
+ Math.floor(
69
+ headerHeight + (availableHeight - boxH) / 2 - scale(VERTICAL_OFFSET)
70
+ )
46
71
  );
47
72
 
48
- const topOverlayHeight = Math.floor(boxTop - headerHeight);
49
- const bottomOverlayHeight = Math.floor(SCREEN_H - (boxTop + boxH));
50
- const sideOverlayWidth = Math.floor((SCREEN_W - boxW) / 2);
73
+ const topOverlayHeight = Math.max(0, Math.floor(boxTop - headerHeight));
74
+ const bottomOverlayHeight = Math.max(
75
+ 0,
76
+ Math.floor(SCREEN_H - (boxTop + boxH))
77
+ );
78
+ const leftOverlayWidth = Math.floor((SCREEN_W - boxW) / 2);
79
+ const scanBoxRight = leftOverlayWidth + boxW;
80
+ const rightOverlayWidth = Math.max(0, SCREEN_W - scanBoxRight);
51
81
 
52
- const margin = scale(12);
53
- const lineTravel = boxH - margin * 2 - scale(3);
82
+ return {
83
+ boxW,
84
+ boxH,
85
+ boxTop,
86
+ topOverlayHeight,
87
+ bottomOverlayHeight,
88
+ sideOverlayWidth: leftOverlayWidth,
89
+ rightOverlayWidth,
90
+ };
91
+ };
54
92
 
55
- const translateY = anim.interpolate({
56
- inputRange: [0, 1],
57
- outputRange: [0, lineTravel],
58
- });
93
+ /**
94
+ * Creates overlay style for a specific position
95
+ */
96
+ const createOverlayStyle = (
97
+ position: 'top' | 'bottom' | 'left' | 'right',
98
+ dimensions: BoxDimensions,
99
+ headerHeight: number,
100
+ overlayColor: string
101
+ ): ViewStyle[] => {
102
+ const baseStyleKey =
103
+ `overlay${position.charAt(0).toUpperCase() + position.slice(1)}` as keyof typeof styles;
104
+ const baseStyle = styles[baseStyleKey] || styles.overlaySide;
105
+
106
+ switch (position) {
107
+ case 'top':
108
+ return [
109
+ baseStyle,
110
+ {
111
+ top: headerHeight,
112
+ height: Math.max(0, dimensions.topOverlayHeight),
113
+ backgroundColor: overlayColor,
114
+ },
115
+ ];
116
+ case 'bottom':
117
+ return [
118
+ baseStyle,
119
+ {
120
+ top: dimensions.boxTop + dimensions.boxH,
121
+ height: Math.max(0, dimensions.bottomOverlayHeight),
122
+ backgroundColor: overlayColor,
123
+ },
124
+ ];
125
+ case 'left':
126
+ return [
127
+ baseStyle,
128
+ {
129
+ left: 0,
130
+ top: dimensions.boxTop,
131
+ height: dimensions.boxH,
132
+ width: Math.max(0, dimensions.sideOverlayWidth),
133
+ backgroundColor: overlayColor,
134
+ },
135
+ ];
136
+ case 'right':
137
+ return [
138
+ baseStyle,
139
+ {
140
+ right: 0,
141
+ top: dimensions.boxTop,
142
+ height: dimensions.boxH,
143
+ width: Math.max(0, dimensions.rightOverlayWidth),
144
+ backgroundColor: overlayColor,
145
+ },
146
+ ];
147
+ default:
148
+ return [baseStyle];
149
+ }
150
+ };
151
+
152
+ /**
153
+ * Creates corner style based on position
154
+ */
155
+ const createCornerStyle = (
156
+ position: CornerPosition,
157
+ borderColor: string,
158
+ cornerSize: number,
159
+ cornerBorderWidth: number
160
+ ): ViewStyle[] => {
161
+ const baseStyle = [
162
+ styles.corner,
163
+ styles[`corner_${position}` as keyof typeof styles],
164
+ ];
165
+
166
+ const dynamicStyle: ViewStyle = {
167
+ borderColor,
168
+ width: cornerSize,
169
+ height: cornerSize,
170
+ borderTopWidth: position.startsWith('t') ? cornerBorderWidth : 0,
171
+ borderBottomWidth: position.startsWith('b') ? cornerBorderWidth : 0,
172
+ borderLeftWidth: position.endsWith('l') ? cornerBorderWidth : 0,
173
+ borderRightWidth: position.endsWith('r') ? cornerBorderWidth : 0,
174
+ };
175
+
176
+ return [...baseStyle, dynamicStyle];
177
+ };
178
+
179
+ /**
180
+ * Creates animated scan line style
181
+ */
182
+ const createScanLineStyle = (
183
+ margin: number,
184
+ scanLineHeight: number,
185
+ borderColor: string,
186
+ shadowColor: string,
187
+ translateY: Animated.AnimatedInterpolation<number>
188
+ ): ViewStyle => ({
189
+ position: 'absolute',
190
+ top: margin,
191
+ left: margin,
192
+ right: margin,
193
+ height: scanLineHeight,
194
+ borderRadius: scanLineHeight / 2,
195
+ backgroundColor: borderColor,
196
+ transform: [{ translateY }],
197
+ shadowColor,
198
+ shadowOffset: { width: 0, height: 2 },
199
+ shadowOpacity: 0.4,
200
+ shadowRadius: 4,
201
+ elevation: Platform.OS === 'android' ? 5 : 0,
202
+ });
203
+
204
+ // ==================== Custom Hooks ====================
205
+ /**
206
+ * Hook to manage scan line animation
207
+ */
208
+ const useScanLineAnimation = (lineTravel: number) => {
209
+ const anim = useRef(new Animated.Value(0)).current;
59
210
 
60
211
  useEffect(() => {
61
212
  const animation = Animated.loop(
62
213
  Animated.sequence([
63
214
  Animated.timing(anim, {
64
215
  toValue: 1,
65
- duration: 2000,
216
+ duration: ANIMATION_DURATION,
66
217
  easing: Easing.linear,
67
218
  useNativeDriver: true,
68
219
  }),
69
220
  Animated.timing(anim, {
70
221
  toValue: 0,
71
- duration: 2000,
222
+ duration: ANIMATION_DURATION,
72
223
  easing: Easing.linear,
73
224
  useNativeDriver: true,
74
225
  }),
75
226
  ])
76
227
  );
228
+
77
229
  animation.start();
78
230
  return () => animation.stop();
79
231
  }, [anim]);
80
232
 
81
- return (
82
- <>
83
- <View
84
- style={[
85
- styles.overlayTB,
86
- {
87
- top: headerHeight,
88
- height: topOverlayHeight,
89
- backgroundColor: colors.overlay,
90
- },
91
- ]}
92
- />
93
- <View
94
- style={[
95
- styles.overlayTB,
96
- {
97
- top: boxTop + boxH,
98
- height: bottomOverlayHeight,
99
- backgroundColor: colors.overlay,
100
- },
101
- ]}
102
- />
103
- <View
104
- style={[
105
- styles.overlayLR,
106
- {
107
- top: boxTop,
108
- height: boxH,
109
- width: sideOverlayWidth,
110
- backgroundColor: colors.overlay,
111
- },
112
- ]}
113
- />
114
- <View
115
- style={[
116
- styles.overlayLR,
117
- {
118
- top: boxTop,
119
- right: 0,
120
- height: boxH,
121
- width: sideOverlayWidth,
122
- backgroundColor: colors.overlay,
123
- },
124
- ]}
125
- />
126
-
127
- <View
128
- style={[
129
- styles.scanBox,
130
- { top: boxTop, width: boxW, height: boxH, left: sideOverlayWidth },
131
- ]}
132
- >
133
- {layout === 'two' ? (
134
- <Svg width={boxW} height={boxH}>
135
- <Rect
136
- width={boxW}
137
- height={boxH}
138
- ry={scale(8)}
139
- stroke={colors.button}
140
- strokeWidth={scale(5)}
141
- strokeDasharray={[scale(12), scale(6)]}
142
- fill="none"
143
- />
144
- </Svg>
145
- ) : (
146
- ['tl', 'tr', 'bl', 'br'].map((c) => (
147
- <View
148
- key={c}
149
- style={[
150
- styles.corner,
151
- styles[`corner_${c}` as keyof typeof styles],
152
- {
153
- borderColor: colors.button,
154
- width: scale(18),
155
- height: scale(18),
156
- borderTopWidth: c.startsWith('t') ? scale(3) : 0,
157
- borderBottomWidth: c.startsWith('b') ? scale(3) : 0,
158
- borderLeftWidth: c.endsWith('l') ? scale(3) : 0,
159
- borderRightWidth: c.endsWith('r') ? scale(3) : 0,
160
- },
161
- ]}
162
- />
163
- ))
164
- )}
165
-
166
- <Animated.View
167
- style={{
168
- position: 'absolute',
169
- top: margin,
170
- left: margin,
171
- right: margin,
172
- height: scale(3),
173
- borderRadius: scale(1.5),
174
- backgroundColor: colors.button,
175
- transform: [{ translateY }],
176
- shadowColor: colors.shadow,
177
- shadowOffset: { width: 0, height: 4 },
178
- shadowOpacity: 0.3,
179
- shadowRadius: 5,
180
- elevation: Platform.OS === 'android' ? 4 : 0,
181
- }}
182
- />
183
- </View>
184
- </>
233
+ const translateY = useMemo(
234
+ () =>
235
+ anim.interpolate({
236
+ inputRange: [0, 1],
237
+ outputRange: [0, lineTravel],
238
+ }),
239
+ [anim, lineTravel]
185
240
  );
241
+
242
+ return translateY;
186
243
  };
187
244
 
245
+ // ==================== Component ====================
246
+ const QrViewArea: React.FC<QrViewAreaProps> = React.memo(
247
+ ({ scanBoxWidth, headerHeight = 0, theme }) => {
248
+ const { theme: appliedTheme } = useInternalTheme(theme);
249
+ const { colors } = appliedTheme;
250
+
251
+ // Calculate dimensions
252
+ const boxDimensions = useMemo(
253
+ () => calculateBoxDimensions(scanBoxWidth, headerHeight),
254
+ [scanBoxWidth, headerHeight]
255
+ );
256
+
257
+ // Calculate scan line properties
258
+ const margin = useMemo(() => scale(SCAN_LINE_MARGIN), []);
259
+ const lineTravel = useMemo(
260
+ () =>
261
+ Math.max(0, boxDimensions.boxH - margin * 2 - scale(SCAN_LINE_HEIGHT)),
262
+ [boxDimensions.boxH, margin]
263
+ );
264
+
265
+ // Animation
266
+ const translateY = useScanLineAnimation(lineTravel);
267
+
268
+ // Theme colors
269
+ const overlayColor = colors.overlay || DEFAULT_OVERLAY_COLOR;
270
+ const shadowColor = colors.shadow || DEFAULT_SHADOW_COLOR;
271
+
272
+ // Corner properties
273
+ const cornerSize = useMemo(() => scale(CORNER_SIZE), []);
274
+ const cornerBorderWidth = useMemo(() => scale(CORNER_BORDER_WIDTH), []);
275
+
276
+ // Create overlay styles
277
+ const overlayStyles = useMemo(
278
+ () => ({
279
+ top: createOverlayStyle(
280
+ 'top',
281
+ boxDimensions,
282
+ headerHeight,
283
+ overlayColor
284
+ ),
285
+ bottom: createOverlayStyle(
286
+ 'bottom',
287
+ boxDimensions,
288
+ headerHeight,
289
+ overlayColor
290
+ ),
291
+ left: createOverlayStyle(
292
+ 'left',
293
+ boxDimensions,
294
+ headerHeight,
295
+ overlayColor
296
+ ),
297
+ right: createOverlayStyle(
298
+ 'right',
299
+ boxDimensions,
300
+ headerHeight,
301
+ overlayColor
302
+ ),
303
+ }),
304
+ [boxDimensions, headerHeight, overlayColor]
305
+ );
306
+
307
+ // Scan box style
308
+ const scanBoxStyle = useMemo(
309
+ () => [
310
+ styles.scanBox,
311
+ {
312
+ top: boxDimensions.boxTop,
313
+ left: boxDimensions.sideOverlayWidth,
314
+ width: boxDimensions.boxW,
315
+ height: boxDimensions.boxH,
316
+ },
317
+ ],
318
+ [boxDimensions]
319
+ );
320
+
321
+ // Corner style generator
322
+ const getCornerStyle = useCallback(
323
+ (position: CornerPosition) =>
324
+ createCornerStyle(
325
+ position,
326
+ colors.button,
327
+ cornerSize,
328
+ cornerBorderWidth
329
+ ),
330
+ [colors.button, cornerSize, cornerBorderWidth]
331
+ );
332
+
333
+ // Scan line style
334
+ const scanLineHeight = useMemo(() => scale(SCAN_LINE_HEIGHT), []);
335
+ const scanLineStyle = useMemo(
336
+ () =>
337
+ createScanLineStyle(
338
+ margin,
339
+ scanLineHeight,
340
+ colors.button,
341
+ shadowColor,
342
+ translateY
343
+ ),
344
+ [margin, scanLineHeight, colors.button, shadowColor, translateY]
345
+ );
346
+
347
+ // Corner positions
348
+ const cornerPositions: CornerPosition[] = ['tl', 'tr', 'bl', 'br'];
349
+
350
+ return (
351
+ <View style={styles.container} pointerEvents="box-none">
352
+ {/* Overlay sections */}
353
+ <View style={overlayStyles.top} />
354
+ <View style={overlayStyles.bottom} />
355
+ <View style={overlayStyles.left} />
356
+ <View style={overlayStyles.right} />
357
+
358
+ {/* Scan box */}
359
+ <View style={scanBoxStyle} pointerEvents="none">
360
+ {/* Corner markers */}
361
+ {cornerPositions.map((position) => (
362
+ <View key={position} style={getCornerStyle(position)} />
363
+ ))}
364
+
365
+ {/* Animated scan line */}
366
+ <Animated.View style={scanLineStyle} />
367
+ </View>
368
+ </View>
369
+ );
370
+ }
371
+ );
372
+
188
373
  const styles = StyleSheet.create({
189
- overlayTB: {
374
+ container: {
375
+ ...StyleSheet.absoluteFillObject,
376
+ zIndex: 10,
377
+ },
378
+ overlayTop: {
379
+ position: 'absolute',
380
+ left: 0,
381
+ right: 0,
382
+ zIndex: 1,
383
+ },
384
+ overlayBottom: {
190
385
  position: 'absolute',
191
386
  left: 0,
192
387
  right: 0,
388
+ zIndex: 1,
193
389
  },
194
- overlayLR: {
390
+ overlaySide: {
195
391
  position: 'absolute',
392
+ zIndex: 1,
196
393
  },
197
394
  scanBox: {
198
395
  position: 'absolute',
199
396
  justifyContent: 'center',
200
397
  alignItems: 'center',
201
398
  overflow: 'hidden',
202
- zIndex: 10,
399
+ zIndex: 2,
203
400
  },
204
401
  corner: {
205
402
  position: 'absolute',
403
+ zIndex: 3,
404
+ },
405
+ corner_tl: {
406
+ top: 0,
407
+ left: 0,
408
+ },
409
+ corner_tr: {
410
+ top: 0,
411
+ right: 0,
412
+ },
413
+ corner_bl: {
414
+ bottom: 0,
415
+ left: 0,
416
+ },
417
+ corner_br: {
418
+ bottom: 0,
419
+ right: 0,
206
420
  },
207
- corner_tl: { top: 0, left: 0 },
208
- corner_tr: { top: 0, right: 0 },
209
- corner_bl: { bottom: 0, left: 0 },
210
- corner_br: { bottom: 0, right: 0 },
211
421
  });
212
422
 
213
423
  export default QrViewArea;