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

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 (349) 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 +133 -86
  14. package/lib/module/components/Auth/QrLogin/QrLogin.js.map +1 -1
  15. package/lib/module/components/Auth/QrLogin/components/QrViewArea.js +174 -109
  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 +70 -37
  40. package/lib/module/components/Content/Card/Category/Category.js.map +1 -1
  41. package/lib/module/components/Content/Card/Sliders/Styles/One.js +40 -32
  42. package/lib/module/components/Content/Card/Sliders/Styles/One.js.map +1 -1
  43. package/lib/module/components/Content/Card/Sliders/Styles/Two.js +109 -48
  44. package/lib/module/components/Content/Card/Sliders/Styles/Two.js.map +1 -1
  45. package/lib/module/components/Content/Card/Styles/RotateInOut.js +4 -11
  46. package/lib/module/components/Content/Card/Styles/RotateInOut.js.map +1 -1
  47. package/lib/module/components/Content/Card/components/CardPoster.js +105 -43
  48. package/lib/module/components/Content/Card/components/CardPoster.js.map +1 -1
  49. package/lib/module/components/Content/Card/components/RentOrBuyIcon.js +18 -17
  50. package/lib/module/components/Content/Card/components/RentOrBuyIcon.js.map +1 -1
  51. package/lib/module/components/Content/Card/components/ThumbnailCard.js +78 -28
  52. package/lib/module/components/Content/Card/components/ThumbnailCard.js.map +1 -1
  53. package/lib/module/components/Content/Content.js +44 -25
  54. package/lib/module/components/Content/Content.js.map +1 -1
  55. package/lib/module/components/Content/Sections.js +37 -29
  56. package/lib/module/components/Content/Sections.js.map +1 -1
  57. package/lib/module/components/ContentView/ContentView.js +70 -41
  58. package/lib/module/components/ContentView/ContentView.js.map +1 -1
  59. package/lib/module/components/ContentView/MoreContentList.js +74 -40
  60. package/lib/module/components/ContentView/MoreContentList.js.map +1 -1
  61. package/lib/module/components/ContentView/components/AboutSection.js +40 -19
  62. package/lib/module/components/ContentView/components/AboutSection.js.map +1 -1
  63. package/lib/module/components/ContentView/components/CastCard.js +6 -7
  64. package/lib/module/components/ContentView/components/CastCard.js.map +1 -1
  65. package/lib/module/components/ContentView/components/EpisodeCard.js +2 -2
  66. package/lib/module/components/ContentView/components/EpisodeCard.js.map +1 -1
  67. package/lib/module/components/ContentView/components/GenreTags.js +25 -13
  68. package/lib/module/components/ContentView/components/GenreTags.js.map +1 -1
  69. package/lib/module/components/ContentView/components/HeroBanner.js +39 -11
  70. package/lib/module/components/ContentView/components/HeroBanner.js.map +1 -1
  71. package/lib/module/components/ContentView/components/MiniInfo.js +84 -77
  72. package/lib/module/components/ContentView/components/MiniInfo.js.map +1 -1
  73. package/lib/module/components/ContentView/components/PlayButton.js +11 -7
  74. package/lib/module/components/ContentView/components/PlayButton.js.map +1 -1
  75. package/lib/module/components/ContentView/components/Title.js +12 -12
  76. package/lib/module/components/ContentView/components/Title.js.map +1 -1
  77. package/lib/module/components/ContentView/components/TrailerButton.js +12 -7
  78. package/lib/module/components/ContentView/components/TrailerButton.js.map +1 -1
  79. package/lib/module/components/Fallbacks/NoContentFallback.js +27 -22
  80. package/lib/module/components/Fallbacks/NoContentFallback.js.map +1 -1
  81. package/lib/module/components/Fallbacks/NotFoundFallback.js +6 -4
  82. package/lib/module/components/Fallbacks/NotFoundFallback.js.map +1 -1
  83. package/lib/module/components/Headers/AppHeader.js +22 -13
  84. package/lib/module/components/Headers/AppHeader.js.map +1 -1
  85. package/lib/module/components/Headers/Three.js +6 -5
  86. package/lib/module/components/Headers/Three.js.map +1 -1
  87. package/lib/module/components/Headers/Two.js +19 -14
  88. package/lib/module/components/Headers/Two.js.map +1 -1
  89. package/lib/module/components/Input/InputOne.js +46 -31
  90. package/lib/module/components/Input/InputOne.js.map +1 -1
  91. package/lib/module/components/Loader/Loader.js +2 -2
  92. package/lib/module/components/Loader/Loader.js.map +1 -1
  93. package/lib/module/components/Logo/Logo.js +17 -14
  94. package/lib/module/components/Logo/Logo.js.map +1 -1
  95. package/lib/module/components/Search/One.js +2 -1
  96. package/lib/module/components/Search/One.js.map +1 -1
  97. package/lib/module/components/Search/components/SearchCard.js +15 -19
  98. package/lib/module/components/Search/components/SearchCard.js.map +1 -1
  99. package/lib/module/components/Settings/AppSettings.js +97 -62
  100. package/lib/module/components/Settings/AppSettings.js.map +1 -1
  101. package/lib/module/components/Subscription/SubOne.js +313 -254
  102. package/lib/module/components/Subscription/SubOne.js.map +1 -1
  103. package/lib/module/components/Text/Text.js +15 -12
  104. package/lib/module/components/Text/Text.js.map +1 -1
  105. package/lib/module/components/User/DeviceSessions/DeviceSessions.js +25 -23
  106. package/lib/module/components/User/DeviceSessions/DeviceSessions.js.map +1 -1
  107. package/lib/module/components/User/ProfileUpdate/ProfileUpdate.js +23 -18
  108. package/lib/module/components/User/ProfileUpdate/ProfileUpdate.js.map +1 -1
  109. package/lib/module/components/User/PurchaseHistory/PurchaseHistory.js +38 -24
  110. package/lib/module/components/User/PurchaseHistory/PurchaseHistory.js.map +1 -1
  111. package/lib/module/components/User/WatchHistory/WatchHistory.js +21 -14
  112. package/lib/module/components/User/WatchHistory/WatchHistory.js.map +1 -1
  113. package/lib/module/components/User/WatchLater/WatchLater.js +30 -21
  114. package/lib/module/components/User/WatchLater/WatchLater.js.map +1 -1
  115. package/lib/module/components/User/components/UserAvatar.js +38 -19
  116. package/lib/module/components/User/components/UserAvatar.js.map +1 -1
  117. package/lib/module/components/User/components/UserSection.js +37 -17
  118. package/lib/module/components/User/components/UserSection.js.map +1 -1
  119. package/lib/module/components/View/View.js +7 -4
  120. package/lib/module/components/View/View.js.map +1 -1
  121. package/lib/module/components/index.js +0 -1
  122. package/lib/module/components/index.js.map +1 -1
  123. package/lib/module/hooks/index.js +17 -0
  124. package/lib/module/hooks/index.js.map +1 -0
  125. package/lib/module/hooks/useDebounce.js +25 -6
  126. package/lib/module/hooks/useDebounce.js.map +1 -1
  127. package/lib/module/hooks/useKeyboard.js +7 -4
  128. package/lib/module/hooks/useKeyboard.js.map +1 -1
  129. package/lib/module/hooks/useNavigationMode.js +10 -4
  130. package/lib/module/hooks/useNavigationMode.js.map +1 -1
  131. package/lib/module/hooks/usePaginatedSection.js +1 -1
  132. package/lib/module/hooks/usePaginatedSection.js.map +1 -1
  133. package/lib/module/hooks/usePrevious.js +30 -0
  134. package/lib/module/hooks/usePrevious.js.map +1 -0
  135. package/lib/module/hooks/useSafeCallback.js +33 -0
  136. package/lib/module/hooks/useSafeCallback.js.map +1 -0
  137. package/lib/module/hooks/useSkeletonItems.js +33 -0
  138. package/lib/module/hooks/useSkeletonItems.js.map +1 -0
  139. package/lib/module/hooks/useSplashCache.js +2 -1
  140. package/lib/module/hooks/useSplashCache.js.map +1 -1
  141. package/lib/module/hooks/useThemeColors.js +33 -0
  142. package/lib/module/hooks/useThemeColors.js.map +1 -0
  143. package/lib/module/theme/ThemeProvider.js +17 -11
  144. package/lib/module/theme/ThemeProvider.js.map +1 -1
  145. package/lib/module/theme/hook/useInternalTheme.js +18 -11
  146. package/lib/module/theme/hook/useInternalTheme.js.map +1 -1
  147. package/lib/module/theme/hook/useThemeStatusBar.js +10 -4
  148. package/lib/module/theme/hook/useThemeStatusBar.js.map +1 -1
  149. package/lib/typescript/src/Styles/globalStyles.d.ts +0 -5
  150. package/lib/typescript/src/Styles/globalStyles.d.ts.map +1 -1
  151. package/lib/typescript/src/components/Auth/AuthProvider/AuthProvider.d.ts.map +1 -1
  152. package/lib/typescript/src/components/Auth/ForgotPassword/ForgotPassword.d.ts.map +1 -1
  153. package/lib/typescript/src/components/Auth/Login/LoginWithEmail.d.ts.map +1 -1
  154. package/lib/typescript/src/components/Auth/Login/LoginWithPhone.d.ts.map +1 -1
  155. package/lib/typescript/src/components/Auth/OTP/OTP.d.ts.map +1 -1
  156. package/lib/typescript/src/components/Auth/QrLogin/QrLogin.d.ts +0 -15
  157. package/lib/typescript/src/components/Auth/QrLogin/QrLogin.d.ts.map +1 -1
  158. package/lib/typescript/src/components/Auth/QrLogin/components/QrViewArea.d.ts +0 -1
  159. package/lib/typescript/src/components/Auth/QrLogin/components/QrViewArea.d.ts.map +1 -1
  160. package/lib/typescript/src/components/Auth/SignUp/SignUp.d.ts.map +1 -1
  161. package/lib/typescript/src/components/Auth/SplashScreen/SplashScreen.d.ts.map +1 -1
  162. package/lib/typescript/src/components/Auth/SplashScreen/components/SplashImage/SplashImage.d.ts.map +1 -1
  163. package/lib/typescript/src/components/Auth/SplashScreen/components/SplashLottie/SplashLottie.d.ts.map +1 -1
  164. package/lib/typescript/src/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.d.ts.map +1 -1
  165. package/lib/typescript/src/components/Auth/index.d.ts.map +1 -1
  166. package/lib/typescript/src/components/BackgroundLayout/BackgroundLayout.d.ts +1 -1
  167. package/lib/typescript/src/components/BackgroundLayout/BackgroundLayout.d.ts.map +1 -1
  168. package/lib/typescript/src/components/BlogView/BlogView.d.ts +2 -1
  169. package/lib/typescript/src/components/BlogView/BlogView.d.ts.map +1 -1
  170. package/lib/typescript/src/components/Button/BackBtn.d.ts +2 -2
  171. package/lib/typescript/src/components/Button/BackBtn.d.ts.map +1 -1
  172. package/lib/typescript/src/components/Button/PrimaryBtn.d.ts +2 -1
  173. package/lib/typescript/src/components/Button/PrimaryBtn.d.ts.map +1 -1
  174. package/lib/typescript/src/components/Button/SecondaryBtn.d.ts +2 -1
  175. package/lib/typescript/src/components/Button/SecondaryBtn.d.ts.map +1 -1
  176. package/lib/typescript/src/components/Button/TextButton.d.ts +2 -2
  177. package/lib/typescript/src/components/Button/TextButton.d.ts.map +1 -1
  178. package/lib/typescript/src/components/Button/index.d.ts +2 -2
  179. package/lib/typescript/src/components/Content/Card/Category/Category.d.ts.map +1 -1
  180. package/lib/typescript/src/components/Content/Card/Sliders/Styles/One.d.ts.map +1 -1
  181. package/lib/typescript/src/components/Content/Card/Sliders/Styles/Two.d.ts.map +1 -1
  182. package/lib/typescript/src/components/Content/Card/Styles/RotateInOut.d.ts.map +1 -1
  183. package/lib/typescript/src/components/Content/Card/components/CardPoster.d.ts.map +1 -1
  184. package/lib/typescript/src/components/Content/Card/components/RentOrBuyIcon.d.ts +2 -2
  185. package/lib/typescript/src/components/Content/Card/components/RentOrBuyIcon.d.ts.map +1 -1
  186. package/lib/typescript/src/components/Content/Card/components/ThumbnailCard.d.ts +2 -0
  187. package/lib/typescript/src/components/Content/Card/components/ThumbnailCard.d.ts.map +1 -1
  188. package/lib/typescript/src/components/Content/Content.d.ts +2 -0
  189. package/lib/typescript/src/components/Content/Content.d.ts.map +1 -1
  190. package/lib/typescript/src/components/Content/Sections.d.ts +2 -2
  191. package/lib/typescript/src/components/Content/Sections.d.ts.map +1 -1
  192. package/lib/typescript/src/components/ContentView/ContentView.d.ts +6 -1
  193. package/lib/typescript/src/components/ContentView/ContentView.d.ts.map +1 -1
  194. package/lib/typescript/src/components/ContentView/MoreContentList.d.ts.map +1 -1
  195. package/lib/typescript/src/components/ContentView/components/AboutSection.d.ts +2 -1
  196. package/lib/typescript/src/components/ContentView/components/AboutSection.d.ts.map +1 -1
  197. package/lib/typescript/src/components/ContentView/components/CastCard.d.ts +6 -1
  198. package/lib/typescript/src/components/ContentView/components/CastCard.d.ts.map +1 -1
  199. package/lib/typescript/src/components/ContentView/components/EpisodeCard.d.ts +2 -1
  200. package/lib/typescript/src/components/ContentView/components/EpisodeCard.d.ts.map +1 -1
  201. package/lib/typescript/src/components/ContentView/components/GenreTags.d.ts +1 -1
  202. package/lib/typescript/src/components/ContentView/components/GenreTags.d.ts.map +1 -1
  203. package/lib/typescript/src/components/ContentView/components/HeroBanner.d.ts +2 -1
  204. package/lib/typescript/src/components/ContentView/components/HeroBanner.d.ts.map +1 -1
  205. package/lib/typescript/src/components/ContentView/components/MiniInfo.d.ts +1 -1
  206. package/lib/typescript/src/components/ContentView/components/MiniInfo.d.ts.map +1 -1
  207. package/lib/typescript/src/components/ContentView/components/PlayButton.d.ts +2 -1
  208. package/lib/typescript/src/components/ContentView/components/PlayButton.d.ts.map +1 -1
  209. package/lib/typescript/src/components/ContentView/components/Title.d.ts +1 -1
  210. package/lib/typescript/src/components/ContentView/components/Title.d.ts.map +1 -1
  211. package/lib/typescript/src/components/ContentView/components/TrailerButton.d.ts +2 -1
  212. package/lib/typescript/src/components/ContentView/components/TrailerButton.d.ts.map +1 -1
  213. package/lib/typescript/src/components/Fallbacks/NoContentFallback.d.ts +2 -1
  214. package/lib/typescript/src/components/Fallbacks/NoContentFallback.d.ts.map +1 -1
  215. package/lib/typescript/src/components/Fallbacks/NotFoundFallback.d.ts +1 -1
  216. package/lib/typescript/src/components/Fallbacks/NotFoundFallback.d.ts.map +1 -1
  217. package/lib/typescript/src/components/Headers/AppHeader.d.ts +2 -2
  218. package/lib/typescript/src/components/Headers/AppHeader.d.ts.map +1 -1
  219. package/lib/typescript/src/components/Headers/Three.d.ts +2 -2
  220. package/lib/typescript/src/components/Headers/Three.d.ts.map +1 -1
  221. package/lib/typescript/src/components/Headers/Two.d.ts +2 -2
  222. package/lib/typescript/src/components/Headers/Two.d.ts.map +1 -1
  223. package/lib/typescript/src/components/Headers/index.d.ts +2 -2
  224. package/lib/typescript/src/components/Input/Input.d.ts +1 -1
  225. package/lib/typescript/src/components/Input/InputOne.d.ts +2 -2
  226. package/lib/typescript/src/components/Input/InputOne.d.ts.map +1 -1
  227. package/lib/typescript/src/components/Loader/Loader.d.ts.map +1 -1
  228. package/lib/typescript/src/components/Logo/Logo.d.ts +2 -1
  229. package/lib/typescript/src/components/Logo/Logo.d.ts.map +1 -1
  230. package/lib/typescript/src/components/Search/One.d.ts.map +1 -1
  231. package/lib/typescript/src/components/Search/components/SearchCard.d.ts +2 -5
  232. package/lib/typescript/src/components/Search/components/SearchCard.d.ts.map +1 -1
  233. package/lib/typescript/src/components/Search/index.d.ts +1 -1
  234. package/lib/typescript/src/components/Settings/AppSettings.d.ts +2 -2
  235. package/lib/typescript/src/components/Settings/AppSettings.d.ts.map +1 -1
  236. package/lib/typescript/src/components/Subscription/SubOne.d.ts.map +1 -1
  237. package/lib/typescript/src/components/Subscription/index.d.ts.map +1 -1
  238. package/lib/typescript/src/components/Text/Text.d.ts +2 -2
  239. package/lib/typescript/src/components/Text/Text.d.ts.map +1 -1
  240. package/lib/typescript/src/components/User/DeviceSessions/DeviceSessions.d.ts +1 -1
  241. package/lib/typescript/src/components/User/DeviceSessions/DeviceSessions.d.ts.map +1 -1
  242. package/lib/typescript/src/components/User/ProfileUpdate/ProfileUpdate.d.ts +1 -1
  243. package/lib/typescript/src/components/User/ProfileUpdate/ProfileUpdate.d.ts.map +1 -1
  244. package/lib/typescript/src/components/User/PurchaseHistory/PurchaseHistory.d.ts +1 -1
  245. package/lib/typescript/src/components/User/PurchaseHistory/PurchaseHistory.d.ts.map +1 -1
  246. package/lib/typescript/src/components/User/WatchHistory/WatchHistory.d.ts +1 -1
  247. package/lib/typescript/src/components/User/WatchHistory/WatchHistory.d.ts.map +1 -1
  248. package/lib/typescript/src/components/User/WatchLater/WatchLater.d.ts +1 -1
  249. package/lib/typescript/src/components/User/WatchLater/WatchLater.d.ts.map +1 -1
  250. package/lib/typescript/src/components/User/components/UserAvatar.d.ts +1 -1
  251. package/lib/typescript/src/components/User/components/UserAvatar.d.ts.map +1 -1
  252. package/lib/typescript/src/components/User/components/UserSection.d.ts +1 -1
  253. package/lib/typescript/src/components/User/components/UserSection.d.ts.map +1 -1
  254. package/lib/typescript/src/components/View/View.d.ts +2 -0
  255. package/lib/typescript/src/components/View/View.d.ts.map +1 -1
  256. package/lib/typescript/src/components/index.d.ts +0 -1
  257. package/lib/typescript/src/components/index.d.ts.map +1 -1
  258. package/lib/typescript/src/hooks/index.d.ts +14 -0
  259. package/lib/typescript/src/hooks/index.d.ts.map +1 -0
  260. package/lib/typescript/src/hooks/useDebounce.d.ts.map +1 -1
  261. package/lib/typescript/src/hooks/useKeyboard.d.ts.map +1 -1
  262. package/lib/typescript/src/hooks/useNavigationMode.d.ts.map +1 -1
  263. package/lib/typescript/src/hooks/usePrevious.d.ts +12 -0
  264. package/lib/typescript/src/hooks/usePrevious.d.ts.map +1 -0
  265. package/lib/typescript/src/hooks/useSafeCallback.d.ts +15 -0
  266. package/lib/typescript/src/hooks/useSafeCallback.d.ts.map +1 -0
  267. package/lib/typescript/src/hooks/useSkeletonItems.d.ts +11 -0
  268. package/lib/typescript/src/hooks/useSkeletonItems.d.ts.map +1 -0
  269. package/lib/typescript/src/hooks/useSplashCache.d.ts.map +1 -1
  270. package/lib/typescript/src/hooks/useThemeColors.d.ts +27 -0
  271. package/lib/typescript/src/hooks/useThemeColors.d.ts.map +1 -0
  272. package/lib/typescript/src/theme/ThemeProvider.d.ts.map +1 -1
  273. package/lib/typescript/src/theme/hook/useInternalTheme.d.ts.map +1 -1
  274. package/lib/typescript/src/theme/hook/useThemeStatusBar.d.ts.map +1 -1
  275. package/package.json +2 -2
  276. package/src/Styles/globalStyles.ts +0 -5
  277. package/src/components/Auth/AuthProvider/AuthProvider.tsx +288 -212
  278. package/src/components/Auth/ForgotPassword/ForgotPassword.tsx +11 -4
  279. package/src/components/Auth/Login/LoginWithEmail.tsx +266 -238
  280. package/src/components/Auth/Login/LoginWithPhone.tsx +18 -6
  281. package/src/components/Auth/OTP/OTP.tsx +21 -5
  282. package/src/components/Auth/QrLogin/QrLogin.tsx +225 -185
  283. package/src/components/Auth/QrLogin/components/QrViewArea.tsx +282 -166
  284. package/src/components/Auth/SignUp/SignUp.tsx +312 -293
  285. package/src/components/Auth/SplashScreen/SplashScreen.tsx +186 -131
  286. package/src/components/Auth/SplashScreen/components/SplashImage/SplashImage.tsx +32 -15
  287. package/src/components/Auth/SplashScreen/components/SplashLottie/SplashLottie.tsx +11 -5
  288. package/src/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.tsx +34 -18
  289. package/src/components/BackgroundLayout/BackgroundLayout.tsx +43 -37
  290. package/src/components/BlogView/BlogView.tsx +66 -30
  291. package/src/components/Button/BackBtn.tsx +64 -34
  292. package/src/components/Button/PrimaryBtn.tsx +42 -25
  293. package/src/components/Button/SecondaryBtn.tsx +41 -25
  294. package/src/components/Button/TextButton.tsx +54 -32
  295. package/src/components/Content/Card/Category/Category.tsx +94 -56
  296. package/src/components/Content/Card/Sliders/Styles/One.tsx +63 -47
  297. package/src/components/Content/Card/Sliders/Styles/Two.tsx +131 -51
  298. package/src/components/Content/Card/Styles/RotateInOut.tsx +7 -9
  299. package/src/components/Content/Card/components/CardPoster.tsx +136 -55
  300. package/src/components/Content/Card/components/RentOrBuyIcon.tsx +58 -38
  301. package/src/components/Content/Card/components/ThumbnailCard.tsx +122 -47
  302. package/src/components/Content/Content.tsx +164 -97
  303. package/src/components/Content/Sections.tsx +99 -43
  304. package/src/components/ContentView/ContentView.tsx +194 -128
  305. package/src/components/ContentView/MoreContentList.tsx +215 -151
  306. package/src/components/ContentView/components/AboutSection.tsx +132 -93
  307. package/src/components/ContentView/components/CastCard.tsx +148 -138
  308. package/src/components/ContentView/components/EpisodeCard.tsx +160 -155
  309. package/src/components/ContentView/components/GenreTags.tsx +68 -53
  310. package/src/components/ContentView/components/HeroBanner.tsx +326 -284
  311. package/src/components/ContentView/components/MiniInfo.tsx +181 -159
  312. package/src/components/ContentView/components/PlayButton.tsx +27 -16
  313. package/src/components/ContentView/components/Title.tsx +89 -72
  314. package/src/components/ContentView/components/TrailerButton.tsx +35 -22
  315. package/src/components/Fallbacks/NoContentFallback.tsx +107 -103
  316. package/src/components/Fallbacks/NotFoundFallback.tsx +12 -4
  317. package/src/components/Headers/AppHeader.tsx +42 -26
  318. package/src/components/Headers/Three.tsx +12 -8
  319. package/src/components/Headers/Two.tsx +31 -10
  320. package/src/components/Input/InputOne.tsx +136 -108
  321. package/src/components/Loader/Loader.tsx +2 -2
  322. package/src/components/Logo/Logo.tsx +43 -27
  323. package/src/components/Search/One.tsx +2 -4
  324. package/src/components/Search/components/SearchCard.tsx +19 -13
  325. package/src/components/Settings/AppSettings.tsx +217 -128
  326. package/src/components/Subscription/SubOne.tsx +394 -317
  327. package/src/components/Text/Text.tsx +33 -22
  328. package/src/components/User/DeviceSessions/DeviceSessions.tsx +129 -102
  329. package/src/components/User/ProfileUpdate/ProfileUpdate.tsx +36 -17
  330. package/src/components/User/PurchaseHistory/PurchaseHistory.tsx +194 -140
  331. package/src/components/User/WatchHistory/WatchHistory.tsx +63 -36
  332. package/src/components/User/WatchLater/WatchLater.tsx +119 -81
  333. package/src/components/User/components/UserAvatar.tsx +49 -15
  334. package/src/components/User/components/UserSection.tsx +71 -37
  335. package/src/components/View/View.tsx +10 -2
  336. package/src/components/index.ts +0 -1
  337. package/src/hooks/index.ts +14 -0
  338. package/src/hooks/useDebounce.ts +25 -6
  339. package/src/hooks/useKeyboard.ts +12 -5
  340. package/src/hooks/useNavigationMode.ts +16 -5
  341. package/src/hooks/usePaginatedSection.ts +1 -1
  342. package/src/hooks/usePrevious.ts +28 -0
  343. package/src/hooks/useSafeCallback.ts +43 -0
  344. package/src/hooks/useSkeletonItems.ts +30 -0
  345. package/src/hooks/useSplashCache.ts +2 -1
  346. package/src/hooks/useThemeColors.ts +51 -0
  347. package/src/theme/ThemeProvider.tsx +25 -9
  348. package/src/theme/hook/useInternalTheme.ts +19 -13
  349. package/src/theme/hook/useThemeStatusBar.ts +14 -5
@@ -2,7 +2,7 @@
2
2
  * @author Naresh Dhamu
3
3
  * @lastModified Tue 17 Jun 2025 at 11:20 AM
4
4
  */
5
- import React, { useState } from 'react';
5
+ import React, { useState, useMemo, useCallback } from 'react';
6
6
  import {
7
7
  StyleSheet,
8
8
  View,
@@ -45,9 +45,20 @@ const InputOne: React.FC<InputOneProps> = ({
45
45
  }) => {
46
46
  const { theme: appliedTheme } = useInternalTheme(theme);
47
47
  const [showPassword, setShowPassword] = useState(false);
48
- const [isFocused, setIsFocused] = useState(false); // 👈 focus state जोड़ी गई
49
- const isPasswordField = !!secureTextEntry;
50
- const inputSecure = isPasswordField && !showPassword;
48
+ const [isFocused, setIsFocused] = useState(false);
49
+
50
+ const isPasswordField = useMemo(() => !!secureTextEntry, [secureTextEntry]);
51
+ const inputSecure = useMemo(
52
+ () => isPasswordField && !showPassword,
53
+ [isPasswordField, showPassword]
54
+ );
55
+
56
+ const handleFocus = useCallback(() => setIsFocused(true), []);
57
+ const handleBlur = useCallback(() => setIsFocused(false), []);
58
+ const togglePassword = useCallback(
59
+ () => setShowPassword((prev) => !prev),
60
+ []
61
+ );
51
62
 
52
63
  const {
53
64
  textPrimary,
@@ -57,126 +68,143 @@ const InputOne: React.FC<InputOneProps> = ({
57
68
  outlineDisabled,
58
69
  error: inputErrorColor,
59
70
  background,
60
- primary, // अगर theme में primary color हो तो उसे भी use करेंगे
71
+ primary,
61
72
  } = appliedTheme?.colors || {};
62
73
 
74
+ const labelColor = useMemo(
75
+ () => (error ? inputErrorColor : disabled ? textDisabled : textPrimary),
76
+ [error, disabled, inputErrorColor, textDisabled, textPrimary]
77
+ );
78
+
79
+ const labelContainerStyle = useMemo(
80
+ () => [
81
+ styles.labelContainer,
82
+ { backgroundColor: background, borderRadius: scale(5) },
83
+ ],
84
+ [background]
85
+ );
86
+
87
+ const labelStyle = useMemo(
88
+ () => [styles.label, { color: labelColor }],
89
+ [labelColor]
90
+ );
91
+
92
+ const borderColor = useMemo(
93
+ () =>
94
+ disabled
95
+ ? outlineDisabled
96
+ : error
97
+ ? inputErrorColor
98
+ : isFocused
99
+ ? primary || '#007AFF'
100
+ : outline,
101
+ [
102
+ disabled,
103
+ error,
104
+ isFocused,
105
+ outlineDisabled,
106
+ inputErrorColor,
107
+ primary,
108
+ outline,
109
+ ]
110
+ );
111
+
112
+ const wrapperBackgroundColor = useMemo(
113
+ () =>
114
+ disabled
115
+ ? appliedTheme.colors.backgroundDisabled
116
+ : error
117
+ ? appliedTheme.colors.errorContainer
118
+ : appliedTheme.colors.background,
119
+ [disabled, error, appliedTheme.colors]
120
+ );
121
+
122
+ const inputWrapperStyle = useMemo(
123
+ () => [
124
+ styles.inputWrapper,
125
+ {
126
+ borderColor,
127
+ backgroundColor: wrapperBackgroundColor,
128
+ flexDirection: 'row' as const,
129
+ alignItems: 'center' as const,
130
+ },
131
+ ],
132
+ [borderColor, wrapperBackgroundColor]
133
+ );
134
+
135
+ const inputTextColor = useMemo(
136
+ () => (disabled ? textDisabled : error ? inputErrorColor : textPrimary),
137
+ [disabled, error, textDisabled, inputErrorColor, textPrimary]
138
+ );
139
+
140
+ const inputColorStyle = useMemo(
141
+ () => [styles.input, { color: inputTextColor }, inputStyle],
142
+ [inputTextColor, inputStyle]
143
+ );
144
+
145
+ const placeholderColor = useMemo(
146
+ () => placeholderTextColor || (disabled ? textDisabled : textSecondary),
147
+ [placeholderTextColor, disabled, textDisabled, textSecondary]
148
+ );
149
+
150
+ const cursorColor = useMemo(
151
+ () =>
152
+ disabled
153
+ ? textDisabled
154
+ : error
155
+ ? inputErrorColor
156
+ : isFocused
157
+ ? primary || '#007AFF'
158
+ : textPrimary,
159
+ [
160
+ disabled,
161
+ error,
162
+ isFocused,
163
+ textDisabled,
164
+ inputErrorColor,
165
+ primary,
166
+ textPrimary,
167
+ ]
168
+ );
169
+
170
+ const iconColor = useMemo(
171
+ () => (disabled ? textDisabled : error ? inputErrorColor : textPrimary),
172
+ [disabled, error, textDisabled, inputErrorColor, textPrimary]
173
+ );
174
+
175
+ const textContentType = useMemo(
176
+ () => (isPasswordField ? 'oneTimeCode' : props.textContentType || 'none'),
177
+ [isPasswordField, props.textContentType]
178
+ );
179
+
63
180
  return (
64
181
  <View style={[styles.container, containerStyle]}>
65
182
  {label && (
66
- <View
67
- style={[
68
- styles.labelContainer,
69
- { backgroundColor: background, borderRadius: scale(5) },
70
- ]}
71
- >
72
- <Text
73
- style={[
74
- styles.label,
75
- {
76
- color: error
77
- ? inputErrorColor
78
- : disabled
79
- ? textDisabled
80
- : textPrimary,
81
- },
82
- ]}
83
- >
84
- {label}
85
- </Text>
183
+ <View style={labelContainerStyle}>
184
+ <Text style={labelStyle}>{label}</Text>
86
185
  </View>
87
186
  )}
88
187
 
89
- <View
90
- style={[
91
- styles.inputWrapper,
92
- {
93
- borderColor: disabled
94
- ? outlineDisabled
95
- : error
96
- ? inputErrorColor
97
- : isFocused
98
- ? primary || '#007AFF'
99
- : outline,
100
- backgroundColor: disabled
101
- ? appliedTheme.colors.backgroundDisabled
102
- : error
103
- ? appliedTheme.colors.errorContainer
104
- : appliedTheme.colors.background,
105
- flexDirection: 'row',
106
- alignItems: 'center',
107
- },
108
- ]}
109
- >
188
+ <View style={inputWrapperStyle}>
110
189
  <TextInput
111
190
  {...props}
112
191
  editable={!disabled}
113
- onFocus={() => setIsFocused(true)}
114
- onBlur={() => setIsFocused(false)}
115
- placeholderTextColor={
116
- placeholderTextColor || (disabled ? textDisabled : textSecondary)
117
- }
192
+ onFocus={handleFocus}
193
+ onBlur={handleBlur}
194
+ placeholderTextColor={placeholderColor}
118
195
  secureTextEntry={inputSecure}
119
- textContentType={
120
- isPasswordField ? 'oneTimeCode' : props.textContentType || 'none'
121
- }
122
- cursorColor={
123
- disabled
124
- ? textDisabled
125
- : error
126
- ? inputErrorColor
127
- : isFocused
128
- ? primary || '#007AFF'
129
- : textPrimary
130
- }
131
- selectionColor={
132
- disabled
133
- ? textDisabled
134
- : error
135
- ? inputErrorColor
136
- : isFocused
137
- ? primary || '#007AFF'
138
- : textPrimary
139
- }
140
- style={[
141
- styles.input,
142
- {
143
- color: disabled
144
- ? textDisabled
145
- : error
146
- ? inputErrorColor
147
- : textPrimary,
148
- },
149
- inputStyle,
150
- ]}
196
+ textContentType={textContentType}
197
+ cursorColor={cursorColor}
198
+ selectionColor={cursorColor}
199
+ style={inputColorStyle}
151
200
  />
152
201
 
153
202
  {isPasswordField && (
154
- <TouchableOpacity
155
- onPress={() => setShowPassword((prev) => !prev)}
156
- disabled={disabled}
157
- >
203
+ <TouchableOpacity onPress={togglePassword} disabled={disabled}>
158
204
  {showPassword ? (
159
- <EyeOff
160
- size={scale(20)}
161
- color={
162
- disabled
163
- ? textDisabled
164
- : error
165
- ? inputErrorColor
166
- : textPrimary
167
- }
168
- />
205
+ <EyeOff size={scale(20)} color={iconColor} />
169
206
  ) : (
170
- <Eye
171
- size={scale(20)}
172
- color={
173
- disabled
174
- ? textDisabled
175
- : error
176
- ? inputErrorColor
177
- : textPrimary
178
- }
179
- />
207
+ <Eye size={scale(20)} color={iconColor} />
180
208
  )}
181
209
  </TouchableOpacity>
182
210
  )}
@@ -191,7 +219,7 @@ const InputOne: React.FC<InputOneProps> = ({
191
219
  );
192
220
  };
193
221
 
194
- export default InputOne;
222
+ export default React.memo(InputOne);
195
223
 
196
224
  const styles = StyleSheet.create({
197
225
  container: {
@@ -5,13 +5,13 @@ interface LoaderProps {
5
5
  color?: string;
6
6
  }
7
7
 
8
- export const Loader: React.FC<LoaderProps> = ({ color }) => {
8
+ export const Loader: React.FC<LoaderProps> = React.memo(({ color }) => {
9
9
  return (
10
10
  <View style={styles.root}>
11
11
  <ActivityIndicator size="large" color={color} />
12
12
  </View>
13
13
  );
14
- };
14
+ });
15
15
 
16
16
  const styles = StyleSheet.create({
17
17
  root: {
@@ -2,7 +2,7 @@
2
2
  * @author Naresh Dhamu
3
3
  * @lastModified Sun 08 Jun 2025 at 03:23 PM
4
4
  */
5
- import React from 'react';
5
+ import React, { useMemo } from 'react';
6
6
  import {
7
7
  Image,
8
8
  View,
@@ -49,29 +49,50 @@ export const Logo: React.FC<ILogoProps> = ({
49
49
  } = useSplashCache({
50
50
  logoUrl: logoUri,
51
51
  });
52
- const finalSource = logoPath
53
- ? {
54
- uri: logoPath.startsWith('file://') ? logoPath : `file://${logoPath}`,
55
- }
56
- : logoUri
57
- ? { uri: logoUri }
58
- : fallbackUri
59
- ? { uri: fallbackUri }
60
- : undefined;
52
+ const finalSource = useMemo(
53
+ () =>
54
+ logoPath
55
+ ? {
56
+ uri: logoPath.startsWith('file://')
57
+ ? logoPath
58
+ : `file://${logoPath}`,
59
+ }
60
+ : logoUri
61
+ ? { uri: logoUri }
62
+ : fallbackUri
63
+ ? { uri: fallbackUri }
64
+ : undefined,
65
+ [logoPath, logoUri, fallbackUri]
66
+ );
67
+
68
+ const containerStyleMemo = useMemo(
69
+ () => [
70
+ {
71
+ alignItems: 'center' as const,
72
+ justifyContent: 'center' as const,
73
+ },
74
+ containerStyle,
75
+ ],
76
+ [containerStyle]
77
+ );
78
+
79
+ const imageStyleMemo = useMemo(
80
+ () => [
81
+ {
82
+ width: moderateScale(width),
83
+ height: moderateScale(height),
84
+ ...(aspectRatio ? { aspectRatio } : {}),
85
+ },
86
+ imageStyle,
87
+ ],
88
+ [width, height, aspectRatio, imageStyle]
89
+ );
61
90
 
62
91
  if (!finalSource && !isLoading) {
63
92
  return null;
64
93
  }
65
94
  return (
66
- <View
67
- style={[
68
- {
69
- alignItems: 'center',
70
- justifyContent: 'center',
71
- },
72
- containerStyle,
73
- ]}
74
- >
95
+ <View style={containerStyleMemo}>
75
96
  {isLoading || isSplashLoading ? (
76
97
  <SkeletonPlaceholder
77
98
  backgroundColor={appliedTheme.colors.skeletonBaseColor}
@@ -91,14 +112,7 @@ export const Logo: React.FC<ILogoProps> = ({
91
112
  <Image
92
113
  source={finalSource}
93
114
  resizeMode={resizeMode}
94
- style={[
95
- {
96
- width: moderateScale(width),
97
- height: moderateScale(height),
98
- ...(aspectRatio ? { aspectRatio } : {}),
99
- },
100
- imageStyle,
101
- ]}
115
+ style={imageStyleMemo}
102
116
  onError={() => {
103
117
  return null;
104
118
  }}
@@ -108,3 +122,5 @@ export const Logo: React.FC<ILogoProps> = ({
108
122
  </View>
109
123
  );
110
124
  };
125
+
126
+ export default React.memo(Logo);
@@ -22,6 +22,7 @@ import SearchCard, {
22
22
  type SearchCardSkeletonConfig,
23
23
  } from './components/SearchCard';
24
24
  import { useDebounce } from '../../hooks/useDebounce';
25
+ import { useSkeletonItems } from '../../hooks/useSkeletonItems';
25
26
  import type { IGetSectionData, ISectionItem, MoreFetchData } from '../../types';
26
27
  import type { ThemeOverride } from '../../theme/themes';
27
28
  import { useRecentSearchesStore } from '../../store/RecentSearchesStore';
@@ -118,10 +119,7 @@ const SearchBar: React.FC<SearchOneProps> = ({
118
119
  [events]
119
120
  );
120
121
 
121
- const skeletonItems = useMemo(
122
- () => Array(skeletonCardCount).fill({}),
123
- [skeletonCardCount]
124
- );
122
+ const skeletonItems = useSkeletonItems(skeletonCardCount);
125
123
 
126
124
  const showRecent =
127
125
  !recentSearchesLoading && search.trim() === '' && recentSearches.length > 0;
@@ -15,6 +15,8 @@ import type { ThemeOverride } from '../../../theme/themes';
15
15
  import { ThumbnailCard } from '../../Content/Card/components/ThumbnailCard';
16
16
  import { Text } from '../../Text';
17
17
  import { RFValue } from 'react-native-responsive-fontsize';
18
+ import { useSafePressHandler } from '../../../hooks/useSafeCallback';
19
+ import { useSkeletonItems } from '../../../hooks/useSkeletonItems';
18
20
 
19
21
  /**
20
22
  * Configuration for SearchCard skeleton rendering.
@@ -64,6 +66,11 @@ const SearchCard: React.FC<SearchCardProps> = ({
64
66
  const { items = 5, textWidths = ['80%', '100%', '70%', '50%', '40%'] } =
65
67
  skeletonConfig ?? {};
66
68
 
69
+ const skeletonItems = useSkeletonItems(items);
70
+
71
+ // Memoize handlePress before any early returns
72
+ const handlePress = useSafePressHandler(onPress);
73
+
67
74
  const renderSkeleton = () => (
68
75
  <SkeletonPlaceholder
69
76
  backgroundColor={skeletonBaseColor}
@@ -86,7 +93,7 @@ const SearchCard: React.FC<SearchCardProps> = ({
86
93
  },
87
94
  ]}
88
95
  >
89
- {Array.from({ length: items }).map((_, lineIdx) => {
96
+ {skeletonItems.map((_, lineIdx) => {
90
97
  const rawWidth = textWidths[lineIdx] ?? '90%';
91
98
  const resolvedWidth =
92
99
  typeof rawWidth === 'string'
@@ -108,12 +115,19 @@ const SearchCard: React.FC<SearchCardProps> = ({
108
115
  </SkeletonPlaceholder>
109
116
  );
110
117
 
118
+ const pressableStyle = ({ pressed }: { pressed: boolean }) => [
119
+ styles.card,
120
+ {
121
+ opacity: pressed ? 0.9 : 1,
122
+ },
123
+ ];
124
+
111
125
  if (isLoading) return renderSkeleton();
112
126
 
113
127
  return (
114
128
  <Pressable
115
- onPress={onPress}
116
- style={({ pressed }) => [styles.card, { opacity: pressed ? 0.9 : 1 }]}
129
+ onPress={handlePress}
130
+ style={pressableStyle}
117
131
  accessibilityRole="button"
118
132
  accessibilityLabel={title}
119
133
  disabled={!onPress}
@@ -124,7 +138,6 @@ const SearchCard: React.FC<SearchCardProps> = ({
124
138
  theme={appliedTheme}
125
139
  borderRadius={scale(8)}
126
140
  resizeMode={FastImage.resizeMode.cover}
127
- wrapperStyle={styles.thumbnail}
128
141
  isLoading={false}
129
142
  />
130
143
  </View>
@@ -158,7 +171,7 @@ const SearchCard: React.FC<SearchCardProps> = ({
158
171
  );
159
172
  };
160
173
 
161
- export default SearchCard;
174
+ export default React.memo(SearchCard);
162
175
 
163
176
  const styles = StyleSheet.create({
164
177
  card: {
@@ -174,14 +187,7 @@ const styles = StyleSheet.create({
174
187
  justifyContent: 'center',
175
188
  alignItems: 'center',
176
189
  },
177
- thumbnail: {
178
- width: '100%',
179
- height: '100%',
180
- borderRadius: scale(8),
181
- position: 'absolute',
182
- top: 0,
183
- left: 0,
184
- },
190
+
185
191
  textContainer: {
186
192
  flex: 1,
187
193
  height: verticalScale(80),