@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
@@ -4,7 +4,15 @@
4
4
  */
5
5
 
6
6
  import React from 'react';
7
- import { View, StyleSheet, FlatList, TouchableOpacity, type StyleProp, type ViewStyle, Alert } from 'react-native';
7
+ import {
8
+ View,
9
+ StyleSheet,
10
+ FlatList,
11
+ TouchableOpacity,
12
+ type StyleProp,
13
+ type ViewStyle,
14
+ Alert,
15
+ } from 'react-native';
8
16
  import { scale, verticalScale } from 'react-native-size-matters';
9
17
  import { Text } from '../../Text';
10
18
  import { useTheme } from '../../../theme/hook/useTheme';
@@ -12,6 +20,7 @@ import AppHeader from '../../Headers/AppHeader';
12
20
  import SkeletonPlaceholder from 'react-native-skeleton-placeholder';
13
21
  import type { AppTheme } from '../../../theme/themes';
14
22
  import { RFValue } from 'react-native-responsive-fontsize';
23
+ import { ScanLine } from 'lucide-react-native';
15
24
 
16
25
  type IUserLocation = {
17
26
  country: string | null;
@@ -49,10 +58,17 @@ type IDeviceSessionsProps = {
49
58
  error?: string;
50
59
  onLogout: ({ session }: { session: ISessions }) => void;
51
60
  onBackPress?: () => void;
61
+ onQrLoginPress?: () => void;
52
62
  style?: StyleProp<ViewStyle>;
53
63
  title?: string;
54
64
  renderLogoutButton?: ({ session }: { session: ISessions }) => React.ReactNode;
55
- renderContent?: ({ session, isActive }: { session: ISessions; isActive: boolean }) => React.ReactNode | null;
65
+ renderContent?: ({
66
+ session,
67
+ isActive,
68
+ }: {
69
+ session: ISessions;
70
+ isActive: boolean;
71
+ }) => React.ReactNode | null;
56
72
  textLabels?: TextLabels;
57
73
  headerStyle?: StyleProp<ViewStyle>;
58
74
  headerTitleAlign?: 'left' | 'center';
@@ -68,6 +84,7 @@ export const DeviceSessions: React.FC<IDeviceSessionsProps> = ({
68
84
  activeSessionId,
69
85
  onLogout,
70
86
  onBackPress = () => {},
87
+ onQrLoginPress,
71
88
  title = 'Manage Devices',
72
89
  style,
73
90
  error,
@@ -80,12 +97,14 @@ export const DeviceSessions: React.FC<IDeviceSessionsProps> = ({
80
97
  renderHeader,
81
98
  theme,
82
99
  isLoading,
83
- isLoadingLogout
100
+ isLoadingLogout,
84
101
  }) => {
85
102
  const { theme: appliedTheme } = useTheme(theme);
86
103
  const colors = appliedTheme.colors;
87
104
 
88
- const [logoutSessionId, setLogoutSessionId] = React.useState<string | null>(null);
105
+ const [logoutSessionId, setLogoutSessionId] = React.useState<string | null>(
106
+ null
107
+ );
89
108
 
90
109
  const {
91
110
  thisDevice = 'This Device',
@@ -94,17 +113,21 @@ export const DeviceSessions: React.FC<IDeviceSessionsProps> = ({
94
113
  noSessions = 'No active sessions found.',
95
114
  loadingLogoutText = 'Logging out...',
96
115
  cannotLogoutThisDeviceTitle = '⚠️ Cannot Logout',
97
- cannotLogoutThisDeviceMessage = 'You cannot log out of this device.'
116
+ cannotLogoutThisDeviceMessage = 'You cannot log out of this device.',
98
117
  } = textLabels || {};
99
118
 
100
- const renderItem = ({ item }: { item: ISessions }): React.ReactElement | null => {
119
+ const renderItem = ({
120
+ item,
121
+ }: {
122
+ item: ISessions;
123
+ }): React.ReactElement | null => {
101
124
  const isActive = item?.id === activeSessionId;
102
125
  const isLoggingOut = isLoadingLogout && logoutSessionId === item.id;
103
126
  if (renderContent) {
104
127
  return (
105
128
  (renderContent({
106
129
  session: item,
107
- isActive
130
+ isActive,
108
131
  }) as React.ReactElement) ?? null
109
132
  );
110
133
  }
@@ -113,9 +136,14 @@ export const DeviceSessions: React.FC<IDeviceSessionsProps> = ({
113
136
  const hasLocation = location?.city || location?.state || location?.country;
114
137
  const handleLogoutPress = () => {
115
138
  if (isActive) {
116
- Alert.alert(cannotLogoutThisDeviceTitle, cannotLogoutThisDeviceMessage, [{ text: 'Cancel', style: 'cancel' }], {
117
- cancelable: true
118
- });
139
+ Alert.alert(
140
+ cannotLogoutThisDeviceTitle,
141
+ cannotLogoutThisDeviceMessage,
142
+ [{ text: 'Cancel', style: 'cancel' }],
143
+ {
144
+ cancelable: true,
145
+ }
146
+ );
119
147
  return;
120
148
  }
121
149
  setLogoutSessionId(item.id);
@@ -128,21 +156,30 @@ export const DeviceSessions: React.FC<IDeviceSessionsProps> = ({
128
156
  {
129
157
  backgroundColor: colors.surfaceVariant,
130
158
  borderColor: colors.outlineVariant ?? colors.outline,
131
- shadowColor: colors.shadow ?? '#000'
132
- }
159
+ shadowColor: colors.shadow ?? '#000',
160
+ },
133
161
  ]}
134
162
  >
135
163
  <View style={styles.deviceInfo}>
136
164
  {(name || isActive) && (
137
165
  <View style={styles.deviceRowHeader}>
138
166
  {name && (
139
- <Text numberOfLines={1} ellipsizeMode="tail" style={[styles.deviceName, { color: colors.onSurface }]}>
167
+ <Text
168
+ numberOfLines={1}
169
+ ellipsizeMode="tail"
170
+ style={[styles.deviceName, { color: colors.onSurface }]}
171
+ >
140
172
  {name}
141
173
  </Text>
142
174
  )}
143
175
  {isActive && (
144
- <View style={[styles.badge, { backgroundColor: colors.button }]}>
145
- <Text numberOfLines={1} style={[styles.badgeText, { color: colors.black }]}>
176
+ <View
177
+ style={[styles.badge, { backgroundColor: colors.button }]}
178
+ >
179
+ <Text
180
+ numberOfLines={1}
181
+ style={[styles.badgeText, { color: colors.black }]}
182
+ >
146
183
  {thisDevice}
147
184
  </Text>
148
185
  </View>
@@ -158,7 +195,10 @@ export const DeviceSessions: React.FC<IDeviceSessionsProps> = ({
158
195
  >
159
196
  {browser}
160
197
  {browser && hasLocation ? ' · ' : ''}
161
- {hasLocation && [location?.city, location?.state, location?.country].filter(Boolean).join(', ')}
198
+ {hasLocation &&
199
+ [location?.city, location?.state, location?.country]
200
+ .filter(Boolean)
201
+ .join(', ')}
162
202
  </Text>
163
203
  )}
164
204
 
@@ -175,7 +215,7 @@ export const DeviceSessions: React.FC<IDeviceSessionsProps> = ({
175
215
 
176
216
  {renderLogoutButton ? (
177
217
  renderLogoutButton({
178
- session: item
218
+ session: item,
179
219
  })
180
220
  ) : (
181
221
  <TouchableOpacity
@@ -184,7 +224,11 @@ export const DeviceSessions: React.FC<IDeviceSessionsProps> = ({
184
224
  activeOpacity={0.7}
185
225
  onPress={handleLogoutPress}
186
226
  >
187
- <Text numberOfLines={1} ellipsizeMode="tail" style={[styles.logoutText, { color: colors.primary }]}>
227
+ <Text
228
+ numberOfLines={1}
229
+ ellipsizeMode="tail"
230
+ style={[styles.logoutText, { color: colors.primary }]}
231
+ >
188
232
  {isLoggingOut ? loadingLogoutText : logOut}
189
233
  </Text>
190
234
  </TouchableOpacity>
@@ -205,7 +249,7 @@ export const DeviceSessions: React.FC<IDeviceSessionsProps> = ({
205
249
  borderRadius: scale(10),
206
250
  padding: scale(12),
207
251
  marginBottom: verticalScale(12),
208
- backgroundColor: colors.surfaceVariant
252
+ backgroundColor: colors.surfaceVariant,
209
253
  }}
210
254
  >
211
255
  <SkeletonPlaceholder
@@ -213,7 +257,11 @@ export const DeviceSessions: React.FC<IDeviceSessionsProps> = ({
213
257
  highlightColor={colors.skeletonHighlightColor || '#F2F8FC'}
214
258
  borderRadius={scale(8)}
215
259
  >
216
- <SkeletonPlaceholder.Item flexDirection="row" alignItems="center" justifyContent="space-between">
260
+ <SkeletonPlaceholder.Item
261
+ flexDirection="row"
262
+ alignItems="center"
263
+ justifyContent="space-between"
264
+ >
217
265
  <SkeletonPlaceholder.Item flex={1} paddingRight={scale(12)}>
218
266
  <SkeletonPlaceholder.Item
219
267
  width="60%"
@@ -227,10 +275,18 @@ export const DeviceSessions: React.FC<IDeviceSessionsProps> = ({
227
275
  borderRadius={scale(4)}
228
276
  marginBottom={scale(4)}
229
277
  />
230
- <SkeletonPlaceholder.Item width="50%" height={scale(10)} borderRadius={scale(4)} />
278
+ <SkeletonPlaceholder.Item
279
+ width="50%"
280
+ height={scale(10)}
281
+ borderRadius={scale(4)}
282
+ />
231
283
  </SkeletonPlaceholder.Item>
232
284
 
233
- <SkeletonPlaceholder.Item width={scale(80)} height={verticalScale(30)} borderRadius={scale(6)} />
285
+ <SkeletonPlaceholder.Item
286
+ width={scale(80)}
287
+ height={verticalScale(30)}
288
+ borderRadius={scale(6)}
289
+ />
234
290
  </SkeletonPlaceholder.Item>
235
291
  </SkeletonPlaceholder>
236
292
  </View>
@@ -247,13 +303,23 @@ export const DeviceSessions: React.FC<IDeviceSessionsProps> = ({
247
303
  });
248
304
  }, [sessions, activeSessionId]);
249
305
  return (
250
- <View style={[styles.container, { backgroundColor: colors.background }, style]}>
306
+ <View
307
+ style={[styles.container, { backgroundColor: colors.background }, style]}
308
+ >
251
309
  {renderHeader ? (
252
310
  renderHeader()
253
311
  ) : (
254
312
  <AppHeader
255
313
  title={title}
256
314
  onBackPress={onBackPress}
315
+ onRightPress={onQrLoginPress}
316
+ rightIcon={
317
+ <ScanLine
318
+ size={22}
319
+ strokeWidth={2}
320
+ color={colors.onSurfaceVariant}
321
+ />
322
+ }
257
323
  titleAlign={headerTitleAlign}
258
324
  style={headerStyle}
259
325
  titleStyle={headerTitleStyle}
@@ -287,11 +353,11 @@ export const DeviceSessions: React.FC<IDeviceSessionsProps> = ({
287
353
 
288
354
  const styles = StyleSheet.create({
289
355
  container: {
290
- flex: 1
356
+ flex: 1,
291
357
  },
292
358
  listContent: {
293
359
  paddingHorizontal: scale(16),
294
- paddingVertical: verticalScale(12)
360
+ paddingVertical: verticalScale(12),
295
361
  },
296
362
  deviceRow: {
297
363
  flexDirection: 'row',
@@ -304,11 +370,11 @@ const styles = StyleSheet.create({
304
370
  elevation: 2,
305
371
  shadowOpacity: 0.1,
306
372
  shadowOffset: { width: 0, height: 1 },
307
- shadowRadius: 4
373
+ shadowRadius: 4,
308
374
  },
309
375
  deviceInfo: {
310
376
  flex: 1,
311
- paddingRight: scale(12)
377
+ paddingRight: scale(12),
312
378
  },
313
379
  deviceRowHeader: {
314
380
  flexDirection: 'row',
@@ -316,18 +382,18 @@ const styles = StyleSheet.create({
316
382
  columnGap: scale(8),
317
383
  rowGap: verticalScale(2),
318
384
  flexWrap: 'wrap',
319
- marginBottom: scale(4)
385
+ marginBottom: scale(4),
320
386
  },
321
387
  deviceName: {
322
388
  fontSize: RFValue(12),
323
389
  fontWeight: '600',
324
390
  flexShrink: 1,
325
- maxWidth: '80%'
391
+ maxWidth: '80%',
326
392
  },
327
393
  deviceMeta: {
328
394
  fontSize: RFValue(9),
329
395
  marginTop: scale(2),
330
- flexShrink: 1
396
+ flexShrink: 1,
331
397
  },
332
398
  logoutButton: {
333
399
  paddingHorizontal: scale(12),
@@ -335,36 +401,36 @@ const styles = StyleSheet.create({
335
401
  borderRadius: scale(6),
336
402
  minWidth: scale(80),
337
403
  borderWidth: scale(1.5),
338
- alignItems: 'center'
404
+ alignItems: 'center',
339
405
  },
340
406
  logoutText: {
341
407
  fontSize: RFValue(10),
342
- fontWeight: '600'
408
+ fontWeight: '600',
343
409
  },
344
410
  badge: {
345
411
  paddingHorizontal: scale(8),
346
412
  paddingVertical: verticalScale(2),
347
- borderRadius: scale(6)
413
+ borderRadius: scale(6),
348
414
  },
349
415
  badgeText: {
350
416
  fontSize: RFValue(9),
351
417
  fontWeight: '500',
352
418
  maxWidth: scale(100),
353
- flexShrink: 1
419
+ flexShrink: 1,
354
420
  },
355
421
  emptyWrapper: {
356
422
  paddingVertical: verticalScale(40),
357
423
  alignItems: 'center',
358
- justifyContent: 'center'
424
+ justifyContent: 'center',
359
425
  },
360
426
  emptyText: {
361
427
  fontSize: RFValue(11),
362
- textAlign: 'center'
428
+ textAlign: 'center',
363
429
  },
364
430
  skeletonLine: {
365
431
  borderRadius: scale(4),
366
- backgroundColor: '#ccc'
367
- }
432
+ backgroundColor: '#ccc',
433
+ },
368
434
  });
369
435
 
370
436
  export namespace DeviceSessions {
@@ -0,0 +1,265 @@
1
+ /**
2
+ * @author Naresh Dhamu
3
+ * @lastModified Fri 03 Oct 2025 at 01:09 PM
4
+ */
5
+ import { useCallback } from 'react';
6
+ import {
7
+ View,
8
+ StyleSheet,
9
+ KeyboardAvoidingView,
10
+ Platform,
11
+ TouchableWithoutFeedback,
12
+ Keyboard,
13
+ TouchableOpacity,
14
+ } from 'react-native';
15
+ import { moderateScale, scale, verticalScale } from 'react-native-size-matters';
16
+ import { RFValue } from 'react-native-responsive-fontsize';
17
+ import { Camera } from 'lucide-react-native';
18
+ import { useForm, Controller } from 'react-hook-form';
19
+ import { Text } from '../../Text';
20
+ import AppHeader from '../../Headers/AppHeader';
21
+ import { useTheme } from '../../../theme/hook/useTheme';
22
+ import type { AppTheme } from '../../../theme/themes';
23
+ import UserAvatar from '../components/UserAvatar';
24
+ import { Input } from '../../Input/Input';
25
+ import { Button } from '../../Button';
26
+ import ImageCropPicker, { type Image } from 'react-native-image-crop-picker';
27
+
28
+ export type ProfileUpdateFormValues = {
29
+ fullName: string;
30
+ avatarFile: Image; // new field to store actual file
31
+ };
32
+
33
+ export type ProfileUpdateProps = {
34
+ title?: string;
35
+ name?: string;
36
+ avatarUri?: string;
37
+ onBackPress?: () => void;
38
+ onSubmit?: (val: { fullName: string; avatarFile: Image }) => void;
39
+ theme?: AppTheme;
40
+ loading?: boolean;
41
+ onError?: (error: { message: string }) => void;
42
+ };
43
+
44
+ export const ProfileUpdate = ({
45
+ title = 'My Profile',
46
+ name = '',
47
+ avatarUri = '',
48
+ onBackPress,
49
+ onSubmit,
50
+ theme,
51
+ loading = false,
52
+ onError,
53
+ }: ProfileUpdateProps) => {
54
+ const { theme: appliedTheme } = useTheme(theme);
55
+ const { colors } = appliedTheme;
56
+
57
+ const {
58
+ control,
59
+ handleSubmit,
60
+ formState: { errors },
61
+ trigger,
62
+ setValue,
63
+ watch,
64
+ } = useForm<ProfileUpdateFormValues>({
65
+ defaultValues: {
66
+ fullName: name,
67
+ avatarFile: {
68
+ path: avatarUri,
69
+ },
70
+ },
71
+ mode: 'onChange',
72
+ reValidateMode: 'onBlur',
73
+ });
74
+
75
+ const avatar = watch('avatarFile');
76
+
77
+ const handlePickImage = async () => {
78
+ try {
79
+ const image = await ImageCropPicker.openPicker({
80
+ width: 400,
81
+ height: 400,
82
+ cropping: true,
83
+ showCropGuidelines: false,
84
+ cropperCircleOverlay: true,
85
+ showCropFrame: false,
86
+ compressImageQuality: 0.7,
87
+ mediaType: 'photo',
88
+ });
89
+
90
+ if (image?.path && image?.path !== '' && image.path !== avatarUri) {
91
+ setValue('avatarFile', image, {
92
+ shouldValidate: true,
93
+ shouldDirty: true,
94
+ });
95
+ } else {
96
+ onError?.({ message: 'No image selected' });
97
+ }
98
+ } catch (error) {
99
+ const message = (error as Error).message;
100
+ onError?.({ message });
101
+ }
102
+ };
103
+
104
+ const handleFormSubmit = useCallback(
105
+ (data: ProfileUpdateFormValues) => {
106
+ Keyboard.dismiss();
107
+ if (data.avatarFile.path !== avatarUri) {
108
+ onSubmit?.({
109
+ avatarFile: data.avatarFile,
110
+ fullName: data.fullName,
111
+ });
112
+ } else {
113
+ onError?.({ message: 'No image selected' });
114
+ }
115
+ },
116
+ [avatarUri, onError, onSubmit]
117
+ );
118
+
119
+ return (
120
+ <KeyboardAvoidingView
121
+ style={[styles.container, { backgroundColor: colors.background }]}
122
+ behavior={Platform.OS === 'ios' ? 'padding' : undefined}
123
+ >
124
+ <TouchableWithoutFeedback onPress={Keyboard.dismiss} accessible={false}>
125
+ <View style={{ flex: 1 }}>
126
+ <AppHeader
127
+ title={title}
128
+ onBackPress={onBackPress}
129
+ theme={appliedTheme}
130
+ titleAlign="left"
131
+ />
132
+
133
+ <View style={styles.content}>
134
+ <View style={styles.avatarBox}>
135
+ <UserAvatar
136
+ avatarUri={avatar.path}
137
+ theme={appliedTheme}
138
+ size={100}
139
+ />
140
+ <TouchableOpacity
141
+ style={[
142
+ styles.cameraBtn,
143
+ {
144
+ borderColor: colors.button,
145
+ backgroundColor: colors.surfaceVariant,
146
+ shadowColor: colors.shadow || colors.surface,
147
+ },
148
+ ]}
149
+ activeOpacity={0.8}
150
+ onPress={handlePickImage}
151
+ >
152
+ <Camera
153
+ size={moderateScale(13)}
154
+ color={colors.button}
155
+ strokeWidth={2}
156
+ />
157
+ </TouchableOpacity>
158
+ </View>
159
+
160
+ <Text style={[styles.label, { color: colors.textPrimary }]}>
161
+ Basic Detail
162
+ </Text>
163
+
164
+ <View style={styles.formContainer}>
165
+ <Controller
166
+ control={control}
167
+ name="fullName"
168
+ rules={{
169
+ required: 'Name is required',
170
+ minLength: { value: 3, message: 'At least 3 characters' },
171
+ }}
172
+ render={({ field: { onChange, value, onBlur } }) => (
173
+ <View style={{ width: '100%' }}>
174
+ <Input.One
175
+ label="Full Name"
176
+ value={value}
177
+ onChangeText={(text) => {
178
+ onChange(text);
179
+ trigger('fullName');
180
+ }}
181
+ onBlur={onBlur}
182
+ placeholder={'Enter your full name'}
183
+ placeholderTextColor={colors.textDisabled}
184
+ containerStyle={{ marginTop: verticalScale(20) }}
185
+ theme={appliedTheme}
186
+ returnKeyType="done"
187
+ onSubmitEditing={handleSubmit(handleFormSubmit)}
188
+ />
189
+ {errors.fullName && (
190
+ <Text style={[styles.errorText, { color: colors.error }]}>
191
+ {errors.fullName.message}
192
+ </Text>
193
+ )}
194
+ </View>
195
+ )}
196
+ />
197
+
198
+ <Button.Primary
199
+ title={'Update Profile'}
200
+ onPress={handleSubmit(handleFormSubmit)}
201
+ theme={appliedTheme}
202
+ titleStyle={{ fontSize: RFValue(14) }}
203
+ loading={loading}
204
+ containerStyle={{ marginTop: verticalScale(5) }}
205
+ />
206
+ </View>
207
+ </View>
208
+ </View>
209
+ </TouchableWithoutFeedback>
210
+ </KeyboardAvoidingView>
211
+ );
212
+ };
213
+
214
+ export default ProfileUpdate;
215
+
216
+ namespace ProfileUpdate {
217
+ export type Props = ProfileUpdateProps;
218
+ }
219
+
220
+ const styles = StyleSheet.create({
221
+ container: { flex: 1 },
222
+ content: {
223
+ flex: 1,
224
+ alignItems: 'center',
225
+ padding: moderateScale(16),
226
+ },
227
+ avatarBox: {
228
+ marginVertical: verticalScale(20),
229
+ alignItems: 'center',
230
+ justifyContent: 'center',
231
+ },
232
+ cameraBtn: {
233
+ position: 'absolute',
234
+ bottom: scale(3),
235
+ right: scale(3),
236
+ padding: scale(2),
237
+ width: scale(23),
238
+ height: scale(23),
239
+ borderRadius: scale(13.5),
240
+ alignItems: 'center',
241
+ justifyContent: 'center',
242
+ borderWidth: 1,
243
+ elevation: 3,
244
+ shadowOffset: { width: 0, height: 1 },
245
+ shadowOpacity: 0.2,
246
+ shadowRadius: 1.5,
247
+ },
248
+ label: {
249
+ fontSize: RFValue(12),
250
+ fontWeight: '500',
251
+ alignSelf: 'flex-start',
252
+ margin: scale(5),
253
+ marginTop: verticalScale(10),
254
+ },
255
+ formContainer: {
256
+ width: '100%',
257
+ alignItems: 'center',
258
+ },
259
+ errorText: {
260
+ fontSize: RFValue(11),
261
+ marginTop: verticalScale(5),
262
+ marginLeft: scale(5),
263
+ alignSelf: 'flex-start',
264
+ },
265
+ });
@@ -4,7 +4,14 @@
4
4
  */
5
5
 
6
6
  import React from 'react';
7
- import { StyleSheet, View, TouchableOpacity, type StyleProp, type ViewStyle, type ListRenderItem } from 'react-native';
7
+ import {
8
+ StyleSheet,
9
+ View,
10
+ TouchableOpacity,
11
+ type StyleProp,
12
+ type ViewStyle,
13
+ type ListRenderItem,
14
+ } from 'react-native';
8
15
  import { FlatGrid } from 'react-native-super-grid';
9
16
  import { scale } from 'react-native-size-matters';
10
17
  import { Search } from 'lucide-react-native';
@@ -88,13 +95,13 @@ export const WatchHistory: React.FC<WatchHistoryProps> = ({
88
95
  onPressItem,
89
96
 
90
97
  onEndReached,
91
- onEndReachedThreshold
98
+ onEndReachedThreshold,
92
99
  }) => {
93
100
  const { theme: appliedTheme } = useTheme(theme);
94
101
 
95
102
  const listData = isLoading
96
103
  ? Array.from({ length: skeletonCount }, (_, i) => ({
97
- _id: `skeleton-${i}`
104
+ _id: `skeleton-${i}`,
98
105
  }))
99
106
  : data;
100
107
 
@@ -103,8 +110,16 @@ export const WatchHistory: React.FC<WatchHistoryProps> = ({
103
110
  if (!isLoading && renderItem) return renderItem(item, index);
104
111
 
105
112
  return (
106
- <TouchableOpacity key={item._id || index} onPress={() => onPressItem?.(item)} activeOpacity={0.8}>
107
- <CardPoster theme={appliedTheme} isLoading={isLoading} posterUri={item?.content?.poster} />
113
+ <TouchableOpacity
114
+ key={item._id || index}
115
+ onPress={() => onPressItem?.(item)}
116
+ activeOpacity={0.8}
117
+ >
118
+ <CardPoster
119
+ theme={appliedTheme}
120
+ isLoading={isLoading}
121
+ posterUri={item?.content?.poster}
122
+ />
108
123
  </TouchableOpacity>
109
124
  );
110
125
  };
@@ -120,10 +135,17 @@ export const WatchHistory: React.FC<WatchHistoryProps> = ({
120
135
  titleAlign="left"
121
136
  theme={appliedTheme}
122
137
  titleStyle={{
123
- color: appliedTheme.colors.onBackground
138
+ color: appliedTheme.colors.onBackground,
124
139
  }}
125
140
  onRightPress={onSearchPress}
126
- rightIcon={showSearchIcon ? <Search size={scale(23)} color={appliedTheme.colors.onBackground} /> : undefined}
141
+ rightIcon={
142
+ showSearchIcon ? (
143
+ <Search
144
+ size={scale(23)}
145
+ color={appliedTheme.colors.onBackground}
146
+ />
147
+ ) : undefined
148
+ }
127
149
  />
128
150
  )}
129
151
 
@@ -134,7 +156,10 @@ export const WatchHistory: React.FC<WatchHistoryProps> = ({
134
156
  data={listData}
135
157
  keyExtractor={(item, index) => item._id || `item-${index}`}
136
158
  style={listStyle}
137
- contentContainerStyle={[contentContainerStyle, { paddingBottom: scale(50) }]}
159
+ contentContainerStyle={[
160
+ contentContainerStyle,
161
+ { paddingBottom: scale(50) },
162
+ ]}
138
163
  renderItem={renderGridItem}
139
164
  onEndReached={onEndReached}
140
165
  onEndReachedThreshold={onEndReachedThreshold ?? 0.5}
@@ -152,18 +177,18 @@ export const WatchHistory: React.FC<WatchHistoryProps> = ({
152
177
 
153
178
  const styles = StyleSheet.create({
154
179
  container: {
155
- flex: 1
180
+ flex: 1,
156
181
  },
157
182
 
158
183
  noData: {
159
184
  flex: 1,
160
185
  alignItems: 'center',
161
- justifyContent: 'center'
186
+ justifyContent: 'center',
162
187
  },
163
188
  noDataText: {
164
189
  fontSize: RFValue(12),
165
- opacity: 0.5
166
- }
190
+ opacity: 0.5,
191
+ },
167
192
  });
168
193
 
169
194
  export namespace WatchHistory {