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

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 (304) hide show
  1. package/lib/module/components/BottomSheet/BottomSheet.js +152 -0
  2. package/lib/module/components/BottomSheet/BottomSheet.js.map +1 -0
  3. package/lib/module/components/BottomSheet/index.js +4 -0
  4. package/lib/module/components/BottomSheet/index.js.map +1 -0
  5. package/lib/module/components/Button/BackBtn.js +28 -2
  6. package/lib/module/components/Button/BackBtn.js.map +1 -1
  7. package/lib/module/components/Content/Card/NowWatching/NowWatching.js.map +1 -1
  8. package/lib/module/components/Content/Card/Sliders/Styles/One.js.map +1 -1
  9. package/lib/module/components/Content/Card/Sliders/Styles/Two.js.map +1 -1
  10. package/lib/module/components/Content/Card/Styles/Five.js.map +1 -1
  11. package/lib/module/components/Content/Card/Styles/Four.js +1 -2
  12. package/lib/module/components/Content/Card/Styles/Four.js.map +1 -1
  13. package/lib/module/components/Content/Card/Styles/One.js +1 -2
  14. package/lib/module/components/Content/Card/Styles/One.js.map +1 -1
  15. package/lib/module/components/Content/Card/Styles/RotateInOut.js.map +1 -1
  16. package/lib/module/components/Content/Card/Styles/Six.js.map +1 -1
  17. package/lib/module/components/Content/Card/Styles/Three.js.map +1 -1
  18. package/lib/module/components/Content/Card/Styles/TopTen.js.map +1 -1
  19. package/lib/module/components/Content/Card/Styles/Two.js +1 -2
  20. package/lib/module/components/Content/Card/Styles/Two.js.map +1 -1
  21. package/lib/module/components/Content/Card/components/CardPoster.js.map +1 -1
  22. package/lib/module/components/Content/Content.js.map +1 -1
  23. package/lib/module/components/Content/Sections.js.map +1 -1
  24. package/lib/module/components/ContentView/MoreContentList.js.map +1 -1
  25. package/lib/module/components/ContentView/components/CastCard.js +2 -1
  26. package/lib/module/components/ContentView/components/CastCard.js.map +1 -1
  27. package/lib/module/components/ContentView/components/EpisodeCard.js +3 -3
  28. package/lib/module/components/ContentView/components/EpisodeCard.js.map +1 -1
  29. package/lib/module/components/ContentView/components/GenreTags.js.map +1 -1
  30. package/lib/module/components/ContentView/components/MiniInfo.js.map +1 -1
  31. package/lib/module/components/ContentView/components/Title.js.map +1 -1
  32. package/lib/module/components/Reels/ReelsSeries/MediaControls/BottomControls.js +134 -0
  33. package/lib/module/components/Reels/ReelsSeries/MediaControls/BottomControls.js.map +1 -0
  34. package/lib/module/components/Reels/ReelsSeries/MediaControls/MediaControlsProvider.js +154 -0
  35. package/lib/module/components/Reels/ReelsSeries/MediaControls/MediaControlsProvider.js.map +1 -0
  36. package/lib/module/components/Reels/ReelsSeries/MediaControls/MiddleControls.js +173 -0
  37. package/lib/module/components/Reels/ReelsSeries/MediaControls/MiddleControls.js.map +1 -0
  38. package/lib/module/components/Reels/ReelsSeries/MediaControls/RightControls.js +77 -0
  39. package/lib/module/components/Reels/ReelsSeries/MediaControls/RightControls.js.map +1 -0
  40. package/lib/module/components/Reels/ReelsSeries/MediaControls/TopControls.js +132 -0
  41. package/lib/module/components/Reels/ReelsSeries/MediaControls/TopControls.js.map +1 -0
  42. package/lib/module/components/Reels/ReelsSeries/Model/DetailsModal.js +165 -0
  43. package/lib/module/components/Reels/ReelsSeries/Model/DetailsModal.js.map +1 -0
  44. package/lib/module/components/Reels/ReelsSeries/Model/SettingModal.js +106 -0
  45. package/lib/module/components/Reels/ReelsSeries/Model/SettingModal.js.map +1 -0
  46. package/lib/module/components/Reels/ReelsSeries/Model/UnlockModal.js +124 -0
  47. package/lib/module/components/Reels/ReelsSeries/Model/UnlockModal.js.map +1 -0
  48. package/lib/module/components/Reels/ReelsSeries/ReelsSeries.js +102 -64
  49. package/lib/module/components/Reels/ReelsSeries/ReelsSeries.js.map +1 -1
  50. package/lib/module/components/Reels/ReelsSeries/ReelsSeriesItem.js +241 -232
  51. package/lib/module/components/Reels/ReelsSeries/ReelsSeriesItem.js.map +1 -1
  52. package/lib/module/components/Reels/ReelsSeries/components/AnimatedThreeLines.js +153 -0
  53. package/lib/module/components/Reels/ReelsSeries/components/AnimatedThreeLines.js.map +1 -0
  54. package/lib/module/components/Reels/ReelsSeries/{Model → components}/Episodes.js +46 -36
  55. package/lib/module/components/Reels/ReelsSeries/components/Episodes.js.map +1 -0
  56. package/lib/module/components/Reels/ReelsSeries/components/GradientOverlay.js +35 -0
  57. package/lib/module/components/Reels/ReelsSeries/components/GradientOverlay.js.map +1 -0
  58. package/lib/module/components/Reels/ReelsSeries/components/Like.js +37 -0
  59. package/lib/module/components/Reels/ReelsSeries/components/Like.js.map +1 -0
  60. package/lib/module/components/Reels/ReelsSeries/components/RotatingLoader.js +55 -0
  61. package/lib/module/components/Reels/ReelsSeries/components/RotatingLoader.js.map +1 -0
  62. package/lib/module/components/Reels/ReelsSeries/components/Synopsis.js +268 -0
  63. package/lib/module/components/Reels/ReelsSeries/components/Synopsis.js.map +1 -0
  64. package/lib/module/components/Reels/ReelsSeries/components/VideoControls/QualityControl.js +143 -0
  65. package/lib/module/components/Reels/ReelsSeries/components/VideoControls/QualityControl.js.map +1 -0
  66. package/lib/module/components/Reels/ReelsSeries/components/VideoControls/SpeedControl.js +56 -0
  67. package/lib/module/components/Reels/ReelsSeries/components/VideoControls/SpeedControl.js.map +1 -0
  68. package/lib/module/components/Reels/ReelsSeries/components/VideoControls/index.js +5 -0
  69. package/lib/module/components/Reels/ReelsSeries/components/VideoControls/index.js.map +1 -0
  70. package/lib/module/components/Reels/utils/Controls/gestureUtils.js +30 -0
  71. package/lib/module/components/Reels/utils/Controls/gestureUtils.js.map +1 -0
  72. package/lib/module/components/Reels/utils/Controls/index.js +7 -0
  73. package/lib/module/components/Reels/utils/Controls/index.js.map +1 -0
  74. package/lib/module/components/Reels/utils/Controls/overlayUtils.js +28 -0
  75. package/lib/module/components/Reels/utils/Controls/overlayUtils.js.map +1 -0
  76. package/lib/module/components/Reels/utils/Controls/videoControlsConstants.js +27 -0
  77. package/lib/module/components/Reels/utils/Controls/videoControlsConstants.js.map +1 -0
  78. package/lib/module/components/Reels/utils/Controls/videoRef.js +5 -0
  79. package/lib/module/components/Reels/utils/Controls/videoRef.js.map +1 -0
  80. package/lib/module/components/Reels/utils/index.js +4 -0
  81. package/lib/module/components/Reels/utils/index.js.map +1 -0
  82. package/lib/module/components/Reels/utils/timeoutUtils.js +24 -0
  83. package/lib/module/components/Reels/utils/timeoutUtils.js.map +1 -0
  84. package/lib/module/components/Search/One.js.map +1 -1
  85. package/lib/module/components/Subscription/SubOne.js +1 -2
  86. package/lib/module/components/Subscription/SubOne.js.map +1 -1
  87. package/lib/module/components/User/PurchaseHistory/PurchaseHistory.js.map +1 -1
  88. package/lib/module/components/User/WatchHistory/WatchHistory.js.map +1 -1
  89. package/lib/module/components/User/WatchLater/WatchLater.js.map +1 -1
  90. package/lib/module/components/index.js +1 -0
  91. package/lib/module/components/index.js.map +1 -1
  92. package/lib/module/theme/ThemeProvider.js +7 -4
  93. package/lib/module/theme/ThemeProvider.js.map +1 -1
  94. package/lib/module/theme/themes.js +3 -3
  95. package/lib/typescript/src/components/BottomSheet/BottomSheet.d.ts +18 -0
  96. package/lib/typescript/src/components/BottomSheet/BottomSheet.d.ts.map +1 -0
  97. package/lib/typescript/src/components/BottomSheet/index.d.ts +3 -0
  98. package/lib/typescript/src/components/BottomSheet/index.d.ts.map +1 -0
  99. package/lib/typescript/src/components/Button/BackBtn.d.ts +3 -1
  100. package/lib/typescript/src/components/Button/BackBtn.d.ts.map +1 -1
  101. package/lib/typescript/src/components/Button/index.d.ts +2 -0
  102. package/lib/typescript/src/components/Button/index.d.ts.map +1 -1
  103. package/lib/typescript/src/components/Content/Card/NowWatching/NowWatching.d.ts +2 -1
  104. package/lib/typescript/src/components/Content/Card/NowWatching/NowWatching.d.ts.map +1 -1
  105. package/lib/typescript/src/components/Content/Card/Sliders/Styles/One.d.ts +2 -1
  106. package/lib/typescript/src/components/Content/Card/Sliders/Styles/One.d.ts.map +1 -1
  107. package/lib/typescript/src/components/Content/Card/Sliders/Styles/Two.d.ts +2 -1
  108. package/lib/typescript/src/components/Content/Card/Sliders/Styles/Two.d.ts.map +1 -1
  109. package/lib/typescript/src/components/Content/Card/Sliders/index.d.ts +2 -2
  110. package/lib/typescript/src/components/Content/Card/Styles/Five.d.ts +2 -1
  111. package/lib/typescript/src/components/Content/Card/Styles/Five.d.ts.map +1 -1
  112. package/lib/typescript/src/components/Content/Card/Styles/Four.d.ts +2 -1
  113. package/lib/typescript/src/components/Content/Card/Styles/Four.d.ts.map +1 -1
  114. package/lib/typescript/src/components/Content/Card/Styles/One.d.ts +2 -1
  115. package/lib/typescript/src/components/Content/Card/Styles/One.d.ts.map +1 -1
  116. package/lib/typescript/src/components/Content/Card/Styles/RotateInOut.d.ts +2 -1
  117. package/lib/typescript/src/components/Content/Card/Styles/RotateInOut.d.ts.map +1 -1
  118. package/lib/typescript/src/components/Content/Card/Styles/Six.d.ts +2 -1
  119. package/lib/typescript/src/components/Content/Card/Styles/Six.d.ts.map +1 -1
  120. package/lib/typescript/src/components/Content/Card/Styles/Three.d.ts +2 -1
  121. package/lib/typescript/src/components/Content/Card/Styles/Three.d.ts.map +1 -1
  122. package/lib/typescript/src/components/Content/Card/Styles/TopTen.d.ts +2 -1
  123. package/lib/typescript/src/components/Content/Card/Styles/TopTen.d.ts.map +1 -1
  124. package/lib/typescript/src/components/Content/Card/Styles/Two.d.ts +2 -1
  125. package/lib/typescript/src/components/Content/Card/Styles/Two.d.ts.map +1 -1
  126. package/lib/typescript/src/components/Content/Card/components/CardPoster.d.ts +1 -1
  127. package/lib/typescript/src/components/Content/Card/components/CardPoster.d.ts.map +1 -1
  128. package/lib/typescript/src/components/Content/Card/components/RentOrBuyIcon.d.ts +1 -1
  129. package/lib/typescript/src/components/Content/Card/components/RentOrBuyIcon.d.ts.map +1 -1
  130. package/lib/typescript/src/components/Content/Card/index.d.ts +24 -24
  131. package/lib/typescript/src/components/Content/Content.d.ts +2 -1
  132. package/lib/typescript/src/components/Content/Content.d.ts.map +1 -1
  133. package/lib/typescript/src/components/Content/Sections.d.ts +2 -1
  134. package/lib/typescript/src/components/Content/Sections.d.ts.map +1 -1
  135. package/lib/typescript/src/components/ContentView/MoreContentList.d.ts +1 -1
  136. package/lib/typescript/src/components/ContentView/MoreContentList.d.ts.map +1 -1
  137. package/lib/typescript/src/components/ContentView/components/AboutSection.d.ts +1 -1
  138. package/lib/typescript/src/components/ContentView/components/AboutSection.d.ts.map +1 -1
  139. package/lib/typescript/src/components/ContentView/components/CastCard.d.ts +1 -1
  140. package/lib/typescript/src/components/ContentView/components/CastCard.d.ts.map +1 -1
  141. package/lib/typescript/src/components/ContentView/components/EpisodeCard.d.ts +1 -1
  142. package/lib/typescript/src/components/ContentView/components/EpisodeCard.d.ts.map +1 -1
  143. package/lib/typescript/src/components/ContentView/components/GenreTags.d.ts +1 -1
  144. package/lib/typescript/src/components/ContentView/components/GenreTags.d.ts.map +1 -1
  145. package/lib/typescript/src/components/ContentView/components/MiniInfo.d.ts +1 -1
  146. package/lib/typescript/src/components/ContentView/components/MiniInfo.d.ts.map +1 -1
  147. package/lib/typescript/src/components/ContentView/components/Title.d.ts +1 -1
  148. package/lib/typescript/src/components/ContentView/components/Title.d.ts.map +1 -1
  149. package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/BottomControls.d.ts +14 -0
  150. package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/BottomControls.d.ts.map +1 -0
  151. package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/MediaControlsProvider.d.ts +60 -0
  152. package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/MediaControlsProvider.d.ts.map +1 -0
  153. package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/MiddleControls.d.ts +14 -0
  154. package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/MiddleControls.d.ts.map +1 -0
  155. package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/RightControls.d.ts +14 -0
  156. package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/RightControls.d.ts.map +1 -0
  157. package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/TopControls.d.ts +12 -0
  158. package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/TopControls.d.ts.map +1 -0
  159. package/lib/typescript/src/components/Reels/ReelsSeries/Model/DetailsModal.d.ts +16 -0
  160. package/lib/typescript/src/components/Reels/ReelsSeries/Model/DetailsModal.d.ts.map +1 -0
  161. package/lib/typescript/src/components/Reels/ReelsSeries/Model/SettingModal.d.ts +15 -0
  162. package/lib/typescript/src/components/Reels/ReelsSeries/Model/SettingModal.d.ts.map +1 -0
  163. package/lib/typescript/src/components/Reels/ReelsSeries/Model/UnlockModal.d.ts +14 -0
  164. package/lib/typescript/src/components/Reels/ReelsSeries/Model/UnlockModal.d.ts.map +1 -0
  165. package/lib/typescript/src/components/Reels/ReelsSeries/ReelsSeries.d.ts +8 -2
  166. package/lib/typescript/src/components/Reels/ReelsSeries/ReelsSeries.d.ts.map +1 -1
  167. package/lib/typescript/src/components/Reels/ReelsSeries/ReelsSeriesItem.d.ts +8 -2
  168. package/lib/typescript/src/components/Reels/ReelsSeries/ReelsSeriesItem.d.ts.map +1 -1
  169. package/lib/typescript/src/components/Reels/ReelsSeries/components/AnimatedThreeLines.d.ts +13 -0
  170. package/lib/typescript/src/components/Reels/ReelsSeries/components/AnimatedThreeLines.d.ts.map +1 -0
  171. package/lib/typescript/src/components/Reels/ReelsSeries/{Model → components}/Episodes.d.ts +3 -2
  172. package/lib/typescript/src/components/Reels/ReelsSeries/components/Episodes.d.ts.map +1 -0
  173. package/lib/typescript/src/components/Reels/ReelsSeries/components/GradientOverlay.d.ts +7 -0
  174. package/lib/typescript/src/components/Reels/ReelsSeries/components/GradientOverlay.d.ts.map +1 -0
  175. package/lib/typescript/src/components/Reels/ReelsSeries/components/Like.d.ts +7 -0
  176. package/lib/typescript/src/components/Reels/ReelsSeries/components/Like.d.ts.map +1 -0
  177. package/lib/typescript/src/components/Reels/ReelsSeries/components/RotatingLoader.d.ts +12 -0
  178. package/lib/typescript/src/components/Reels/ReelsSeries/components/RotatingLoader.d.ts.map +1 -0
  179. package/lib/typescript/src/components/Reels/ReelsSeries/components/Synopsis.d.ts +12 -0
  180. package/lib/typescript/src/components/Reels/ReelsSeries/components/Synopsis.d.ts.map +1 -0
  181. package/lib/typescript/src/components/Reels/ReelsSeries/components/VideoControls/QualityControl.d.ts +11 -0
  182. package/lib/typescript/src/components/Reels/ReelsSeries/components/VideoControls/QualityControl.d.ts.map +1 -0
  183. package/lib/typescript/src/components/Reels/ReelsSeries/components/VideoControls/SpeedControl.d.ts +10 -0
  184. package/lib/typescript/src/components/Reels/ReelsSeries/components/VideoControls/SpeedControl.d.ts.map +1 -0
  185. package/lib/typescript/src/components/Reels/ReelsSeries/components/VideoControls/index.d.ts +3 -0
  186. package/lib/typescript/src/components/Reels/ReelsSeries/components/VideoControls/index.d.ts.map +1 -0
  187. package/lib/typescript/src/components/Reels/ReelsSeries/types.d.ts +13 -0
  188. package/lib/typescript/src/components/Reels/ReelsSeries/types.d.ts.map +1 -1
  189. package/lib/typescript/src/components/Reels/utils/Controls/gestureUtils.d.ts +10 -0
  190. package/lib/typescript/src/components/Reels/utils/Controls/gestureUtils.d.ts.map +1 -0
  191. package/lib/typescript/src/components/Reels/utils/Controls/index.d.ts +5 -0
  192. package/lib/typescript/src/components/Reels/utils/Controls/index.d.ts.map +1 -0
  193. package/lib/typescript/src/components/Reels/utils/Controls/overlayUtils.d.ts +12 -0
  194. package/lib/typescript/src/components/Reels/utils/Controls/overlayUtils.d.ts.map +1 -0
  195. package/lib/typescript/src/components/Reels/utils/Controls/videoControlsConstants.d.ts +24 -0
  196. package/lib/typescript/src/components/Reels/utils/Controls/videoControlsConstants.d.ts.map +1 -0
  197. package/lib/typescript/src/components/Reels/utils/Controls/videoRef.d.ts +3 -0
  198. package/lib/typescript/src/components/Reels/utils/Controls/videoRef.d.ts.map +1 -0
  199. package/lib/typescript/src/components/Reels/utils/index.d.ts +2 -0
  200. package/lib/typescript/src/components/Reels/utils/index.d.ts.map +1 -0
  201. package/lib/typescript/src/components/Reels/utils/timeoutUtils.d.ts +14 -0
  202. package/lib/typescript/src/components/Reels/utils/timeoutUtils.d.ts.map +1 -0
  203. package/lib/typescript/src/components/Search/One.d.ts +2 -1
  204. package/lib/typescript/src/components/Search/One.d.ts.map +1 -1
  205. package/lib/typescript/src/components/User/PurchaseHistory/PurchaseHistory.d.ts +1 -1
  206. package/lib/typescript/src/components/User/PurchaseHistory/PurchaseHistory.d.ts.map +1 -1
  207. package/lib/typescript/src/components/User/WatchHistory/WatchHistory.d.ts +1 -1
  208. package/lib/typescript/src/components/User/WatchHistory/WatchHistory.d.ts.map +1 -1
  209. package/lib/typescript/src/components/User/WatchLater/WatchLater.d.ts +1 -1
  210. package/lib/typescript/src/components/User/WatchLater/WatchLater.d.ts.map +1 -1
  211. package/lib/typescript/src/components/index.d.ts +1 -0
  212. package/lib/typescript/src/components/index.d.ts.map +1 -1
  213. package/lib/typescript/src/types/content/content-view.types.d.ts +1 -1
  214. package/lib/typescript/src/types/content/content-view.types.d.ts.map +1 -1
  215. package/lib/typescript/src/types/index.d.ts +1 -1
  216. package/lib/typescript/src/types/index.d.ts.map +1 -1
  217. package/lib/typescript/src/types/sections/index.d.ts +1 -1
  218. package/lib/typescript/src/types/sections/index.d.ts.map +1 -1
  219. package/package.json +2 -1
  220. package/src/components/BottomSheet/BottomSheet.tsx +195 -0
  221. package/src/components/BottomSheet/index.ts +2 -0
  222. package/src/components/Button/BackBtn.tsx +33 -0
  223. package/src/components/Content/Card/NowWatching/NowWatching.tsx +2 -5
  224. package/src/components/Content/Card/Sliders/Styles/One.tsx +2 -1
  225. package/src/components/Content/Card/Sliders/Styles/Two.tsx +2 -1
  226. package/src/components/Content/Card/Styles/Five.tsx +1 -1
  227. package/src/components/Content/Card/Styles/Four.tsx +1 -1
  228. package/src/components/Content/Card/Styles/One.tsx +1 -1
  229. package/src/components/Content/Card/Styles/RotateInOut.tsx +1 -1
  230. package/src/components/Content/Card/Styles/Six.tsx +1 -1
  231. package/src/components/Content/Card/Styles/Three.tsx +1 -1
  232. package/src/components/Content/Card/Styles/TopTen.tsx +1 -1
  233. package/src/components/Content/Card/Styles/Two.tsx +1 -1
  234. package/src/components/Content/Card/components/CardPoster.tsx +1 -1
  235. package/src/components/Content/Card/components/RentOrBuyIcon.tsx +1 -1
  236. package/src/components/Content/Content.tsx +2 -1
  237. package/src/components/Content/Sections.tsx +2 -1
  238. package/src/components/ContentView/MoreContentList.tsx +1 -1
  239. package/src/components/ContentView/components/AboutSection.tsx +1 -1
  240. package/src/components/ContentView/components/CastCard.tsx +2 -1
  241. package/src/components/ContentView/components/EpisodeCard.tsx +5 -1
  242. package/src/components/ContentView/components/GenreTags.tsx +1 -1
  243. package/src/components/ContentView/components/MiniInfo.tsx +1 -1
  244. package/src/components/ContentView/components/Title.tsx +1 -1
  245. package/src/components/Reels/ReelsSeries/MediaControls/BottomControls.tsx +156 -0
  246. package/src/components/Reels/ReelsSeries/MediaControls/MediaControlsProvider.tsx +234 -0
  247. package/src/components/Reels/ReelsSeries/MediaControls/MiddleControls.tsx +196 -0
  248. package/src/components/Reels/ReelsSeries/MediaControls/RightControls.tsx +92 -0
  249. package/src/components/Reels/ReelsSeries/MediaControls/TopControls.tsx +163 -0
  250. package/src/components/Reels/ReelsSeries/Model/DetailsModal.tsx +210 -0
  251. package/src/components/Reels/ReelsSeries/Model/SettingModal.tsx +143 -0
  252. package/src/components/Reels/ReelsSeries/Model/UnlockModal.tsx +154 -0
  253. package/src/components/Reels/ReelsSeries/ReelsSeries.tsx +142 -74
  254. package/src/components/Reels/ReelsSeries/ReelsSeriesItem.tsx +349 -250
  255. package/src/components/Reels/ReelsSeries/components/AnimatedThreeLines.tsx +184 -0
  256. package/src/components/Reels/ReelsSeries/{Model → components}/Episodes.tsx +54 -33
  257. package/src/components/Reels/ReelsSeries/components/GradientOverlay.tsx +41 -0
  258. package/src/components/Reels/ReelsSeries/components/Like.tsx +40 -0
  259. package/src/components/Reels/ReelsSeries/components/RotatingLoader.tsx +79 -0
  260. package/src/components/Reels/ReelsSeries/components/Synopsis.tsx +332 -0
  261. package/src/components/Reels/ReelsSeries/components/VideoControls/QualityControl.tsx +190 -0
  262. package/src/components/Reels/ReelsSeries/components/VideoControls/SpeedControl.tsx +80 -0
  263. package/src/components/Reels/ReelsSeries/components/VideoControls/index.ts +2 -0
  264. package/src/components/Reels/ReelsSeries/types.ts +13 -2
  265. package/src/components/Reels/utils/Controls/gestureUtils.ts +42 -0
  266. package/src/components/Reels/utils/Controls/index.ts +4 -0
  267. package/src/components/Reels/utils/Controls/overlayUtils.ts +35 -0
  268. package/src/components/Reels/utils/Controls/videoControlsConstants.ts +25 -0
  269. package/src/components/Reels/utils/Controls/videoRef.ts +4 -0
  270. package/src/components/Reels/utils/index.ts +1 -0
  271. package/src/components/Reels/utils/timeoutUtils.ts +29 -0
  272. package/src/components/Search/One.tsx +2 -6
  273. package/src/components/Subscription/SubOne.tsx +1 -2
  274. package/src/components/User/PurchaseHistory/PurchaseHistory.tsx +1 -1
  275. package/src/components/User/WatchHistory/WatchHistory.tsx +1 -1
  276. package/src/components/User/WatchLater/WatchLater.tsx +1 -1
  277. package/src/components/index.ts +1 -0
  278. package/src/theme/ThemeProvider.tsx +8 -2
  279. package/src/theme/themes.ts +3 -3
  280. package/src/types/content/content-view.types.ts +1 -1
  281. package/src/types/index.ts +1 -1
  282. package/src/types/sections/index.ts +1 -1
  283. package/lib/module/components/Reels/ReelsSeries/Model/Episodes.js.map +0 -1
  284. package/lib/module/components/Reels/ReelsSeries/Model/Synopsis.js +0 -212
  285. package/lib/module/components/Reels/ReelsSeries/Model/Synopsis.js.map +0 -1
  286. package/lib/module/components/Reels/ReelsSeries/ReelSeriesDetailsModal.js +0 -182
  287. package/lib/module/components/Reels/ReelsSeries/ReelSeriesDetailsModal.js.map +0 -1
  288. package/lib/module/components/Reels/ReelsSeries/ReelSeriesOverlay.js +0 -203
  289. package/lib/module/components/Reels/ReelsSeries/ReelSeriesOverlay.js.map +0 -1
  290. package/lib/module/types/content/index.js +0 -2
  291. package/lib/module/types/content/index.js.map +0 -1
  292. package/lib/typescript/src/components/Reels/ReelsSeries/Model/Episodes.d.ts.map +0 -1
  293. package/lib/typescript/src/components/Reels/ReelsSeries/Model/Synopsis.d.ts +0 -9
  294. package/lib/typescript/src/components/Reels/ReelsSeries/Model/Synopsis.d.ts.map +0 -1
  295. package/lib/typescript/src/components/Reels/ReelsSeries/ReelSeriesDetailsModal.d.ts +0 -13
  296. package/lib/typescript/src/components/Reels/ReelsSeries/ReelSeriesDetailsModal.d.ts.map +0 -1
  297. package/lib/typescript/src/components/Reels/ReelsSeries/ReelSeriesOverlay.d.ts +0 -18
  298. package/lib/typescript/src/components/Reels/ReelsSeries/ReelSeriesOverlay.d.ts.map +0 -1
  299. package/lib/typescript/src/types/content/index.d.ts +0 -174
  300. package/lib/typescript/src/types/content/index.d.ts.map +0 -1
  301. package/src/components/Reels/ReelsSeries/Model/Synopsis.tsx +0 -242
  302. package/src/components/Reels/ReelsSeries/ReelSeriesDetailsModal.tsx +0 -209
  303. package/src/components/Reels/ReelsSeries/ReelSeriesOverlay.tsx +0 -185
  304. package/src/types/content/index.ts +0 -194
@@ -0,0 +1,154 @@
1
+ import React from 'react';
2
+ import { StyleSheet, View, Image } from 'react-native';
3
+ import LinearGradient from 'react-native-linear-gradient';
4
+ import { Button } from '../../../Button';
5
+ import { Text } from '../../../Text';
6
+ import { moderateScale, verticalScale } from 'react-native-size-matters';
7
+ import { RFValue } from 'react-native-responsive-fontsize';
8
+ import { BottomSheet } from '../../../BottomSheet';
9
+
10
+ import type { ITheme } from '../../../../theme';
11
+ import type { ISeriesEpisode, ISeriesItem } from '../types';
12
+
13
+ interface UnLockModalProps {
14
+ episode: ISeriesEpisode;
15
+ data: ISeriesItem;
16
+ theme: ITheme;
17
+ isVisible: boolean;
18
+ onClose?: () => void;
19
+ onUnlockPress?: (ep: ISeriesEpisode) => void;
20
+ }
21
+
22
+ const UnLockModal: React.FC<UnLockModalProps> = ({
23
+ episode,
24
+ data,
25
+ theme,
26
+ isVisible,
27
+ onClose,
28
+ onUnlockPress,
29
+ }) => {
30
+ return (
31
+ <BottomSheet
32
+ key={'UnlockModal'}
33
+ theme={theme}
34
+ visible={isVisible}
35
+ onClose={onClose}
36
+ height="55%" // prevent overflow
37
+ showCloseButton
38
+ scrollable={false}
39
+ >
40
+ <LinearGradient
41
+ colors={[theme.colors.background, theme.colors.background]}
42
+ style={styles.gradientContainer}
43
+ >
44
+ <View style={styles.contentWrapper}>
45
+ {/* Thumbnail */}
46
+ {data.thumbnail ? (
47
+ <Image
48
+ source={{ uri: data.thumbnail }}
49
+ style={styles.thumbnail}
50
+ resizeMode="cover"
51
+ />
52
+ ) : null}
53
+
54
+ {/* Title */}
55
+ <Text
56
+ numberOfLines={2}
57
+ ellipsizeMode="tail"
58
+ style={[styles.title, { color: theme.colors.textPrimary }]}
59
+ >
60
+ {data.title}
61
+ </Text>
62
+
63
+ {/* Description */}
64
+ <Text
65
+ numberOfLines={3}
66
+ ellipsizeMode="tail"
67
+ style={[styles.description, { color: theme.colors.textSecondary }]}
68
+ >
69
+ {data.description}
70
+ </Text>
71
+
72
+ {/* Unlock Button */}
73
+ <Button.Primary
74
+ theme={{
75
+ dark: theme.colors,
76
+ light: theme.colors,
77
+ }}
78
+ title="Unlock Now"
79
+ onPress={() => onUnlockPress?.(episode)}
80
+ containerStyle={styles.unlockButton}
81
+ />
82
+
83
+ {/* Tagline */}
84
+ <Text
85
+ numberOfLines={2}
86
+ ellipsizeMode="tail"
87
+ style={[styles.smallNote, { color: theme.colors.textSecondary }]}
88
+ >
89
+ Unlocking gives you full access to this and all future episodes.
90
+ </Text>
91
+ </View>
92
+ </LinearGradient>
93
+ </BottomSheet>
94
+ );
95
+ };
96
+
97
+ export default UnLockModal;
98
+
99
+ const styles = StyleSheet.create({
100
+ gradientContainer: {
101
+ flex: 1,
102
+ paddingTop: verticalScale(10),
103
+ marginHorizontal: moderateScale(15),
104
+ },
105
+
106
+ contentWrapper: {
107
+ flex: 1,
108
+ alignItems: 'center',
109
+ justifyContent: 'flex-start',
110
+ paddingTop: verticalScale(8),
111
+ paddingHorizontal: moderateScale(8),
112
+ },
113
+
114
+ thumbnail: {
115
+ width: moderateScale(110),
116
+ height: moderateScale(150),
117
+ borderRadius: moderateScale(10),
118
+ marginBottom: verticalScale(10),
119
+ flexShrink: 0, // Prevents image from shrinking
120
+ },
121
+
122
+ title: {
123
+ fontSize: RFValue(17),
124
+ fontWeight: '700',
125
+ textAlign: 'center',
126
+ marginBottom: verticalScale(5),
127
+ paddingHorizontal: moderateScale(10),
128
+ width: '95%',
129
+ flexShrink: 1, // prevents overflow
130
+ },
131
+
132
+ description: {
133
+ fontSize: RFValue(12),
134
+ textAlign: 'center',
135
+ marginBottom: verticalScale(15),
136
+ paddingHorizontal: moderateScale(20),
137
+ lineHeight: RFValue(16),
138
+ width: '95%',
139
+ flexShrink: 1, // prevents layout overflow
140
+ },
141
+
142
+ unlockButton: {
143
+ width: '95%',
144
+ marginBottom: verticalScale(10),
145
+ },
146
+
147
+ smallNote: {
148
+ fontSize: RFValue(10),
149
+ opacity: 0.7,
150
+ textAlign: 'center',
151
+ width: '95%',
152
+ flexShrink: 1, // ensures it stays inside modal
153
+ },
154
+ });
@@ -3,29 +3,37 @@ import {
3
3
  FlatList,
4
4
  Dimensions,
5
5
  StyleSheet,
6
- View,
7
- TouchableOpacity,
8
6
  type ViewToken,
7
+ Platform,
9
8
  } from 'react-native';
10
9
  import { debounce } from 'lodash';
11
10
  import ReelsSeriesItem from './ReelsSeriesItem';
12
11
  import { verticalScale } from 'react-native-size-matters';
13
- import { Search } from 'lucide-react-native';
14
- import type { ISeriesEpisode, ISeriesItem } from './types';
12
+ import type { IReelsData, ISeriesEpisode } from './types';
13
+ import { useSafeAreaInsets } from 'react-native-safe-area-context';
14
+ import { useInternalTheme } from '../../../theme/hook';
15
+ import type { ThemeOverride } from '../../../theme';
16
+ import { View } from '../../View';
15
17
 
16
18
  const { height } = Dimensions.get('window');
17
- const TAB_BAR_HEIGHT = verticalScale(65);
18
- const SCREEN_HEIGHT = height - TAB_BAR_HEIGHT;
19
+ const PRELOAD_RANGE = 3;
20
+ const VIEWABILITY_THRESHOLD = 80;
21
+ const DEBOUNCE_DELAY = 100;
19
22
 
20
23
  type ReelsProps = {
21
- data: ISeriesItem;
24
+ data: IReelsData['data'];
22
25
  autoScroll?: boolean;
23
26
  onEndReached?: () => void;
24
27
  onLikePress?: (id: string, liked: boolean) => void;
25
28
  onEpisodesPress?: (id: string) => void;
26
29
  onSharePress?: (id: string) => void;
27
30
  onSearchPress?: () => void;
31
+ onBackPress?: () => void;
28
32
  isFocused?: boolean;
33
+ tabBarHeight?: number;
34
+ isFullScreen?: boolean;
35
+ theme?: ThemeOverride;
36
+ onEpisodeUnlockPress?: (episode: ISeriesEpisode) => void;
29
37
  };
30
38
 
31
39
  export const ReelsSeries: React.FC<ReelsProps> = ({
@@ -36,121 +44,177 @@ export const ReelsSeries: React.FC<ReelsProps> = ({
36
44
  onEpisodesPress,
37
45
  onSharePress,
38
46
  onSearchPress,
47
+ onBackPress,
39
48
  isFocused = true,
49
+ tabBarHeight,
50
+ isFullScreen = false,
51
+ theme: overrideTheme,
52
+ onEpisodeUnlockPress,
40
53
  }) => {
54
+ const { theme } = useInternalTheme(overrideTheme);
55
+ const insets = useSafeAreaInsets();
41
56
  const [currentVisibleIndex, setCurrentVisibleIndex] = useState<number>(0);
42
- const listRef = useRef<FlatList<ISeriesEpisode>>(null);
57
+ const listRef =
58
+ useRef<FlatList<ISeriesEpisode & { seriesIndex: number }>>(null);
59
+
60
+ // Computed values
61
+ const calculatedTabBarHeight = useMemo(
62
+ () =>
63
+ tabBarHeight ??
64
+ insets.bottom + verticalScale(Platform.OS === 'android' ? 45 : 30),
65
+ [tabBarHeight, insets.bottom]
66
+ );
67
+
68
+ const SCREEN_HEIGHT = useMemo(
69
+ () =>
70
+ isFullScreen ? height - insets.bottom : height - calculatedTabBarHeight,
71
+ [isFullScreen, insets.bottom, calculatedTabBarHeight]
72
+ );
73
+
74
+ const backgroundColor = useMemo(
75
+ () => (isFullScreen ? theme.colors.black : theme.colors.background),
76
+ [isFullScreen, theme.colors.black, theme.colors.background]
77
+ );
78
+
79
+ // Flatten all episodes from all series items and track which series they belong to
80
+ const flattenedEpisodes = useMemo(() => {
81
+ const episodes: Array<ISeriesEpisode & { seriesIndex: number }> = [];
82
+ data.forEach((seriesItem, seriesIndex) => {
83
+ seriesItem.episodes?.forEach((episode) => {
84
+ episodes.push({ ...episode, seriesIndex });
85
+ });
86
+ });
87
+ return episodes;
88
+ }, [data]);
89
+
43
90
  const keyExtractor = useCallback(
44
- (item: ISeriesEpisode) => item.episodeId.toString(),
91
+ (item: ISeriesEpisode & { seriesIndex: number }) =>
92
+ item.episodeId.toString(),
45
93
  []
46
94
  );
47
95
 
48
- const hendlePlayEpisode = useCallback(
49
- (index: number) => {
50
- if (index < 0 || index >= (data.episodes?.length || 0)) return;
96
+ const handlePlayEpisode = useCallback(
97
+ (episode: ISeriesEpisode) => {
98
+ const index = flattenedEpisodes.findIndex(
99
+ (ep) => ep.episodeId === episode.episodeId
100
+ );
101
+
102
+ if (index < 0 || index >= flattenedEpisodes.length) return;
103
+
51
104
  listRef.current?.scrollToIndex({ index, animated: true });
52
105
  setCurrentVisibleIndex(index);
53
106
  },
54
- [data.episodes]
107
+ [flattenedEpisodes]
55
108
  );
56
109
 
57
110
  const renderReelList = useCallback(
58
- ({ item, index }: { item: ISeriesEpisode; index: number }) => {
111
+ ({
112
+ item,
113
+ index,
114
+ }: {
115
+ item: ISeriesEpisode & { seriesIndex: number };
116
+ index: number;
117
+ }) => {
118
+ const seriesData = data[item.seriesIndex];
119
+ if (!seriesData) return null;
120
+
121
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
122
+ const { seriesIndex, ...episode } = item;
123
+ const isVisible = index === currentVisibleIndex && isFocused;
124
+ const preload = Math.abs(index - currentVisibleIndex) <= PRELOAD_RANGE;
125
+
59
126
  return (
60
127
  <ReelsSeriesItem
61
- key={item.episodeId}
62
- reel={item}
63
- data={data}
128
+ reel={episode}
129
+ data={seriesData}
64
130
  videoHeight={SCREEN_HEIGHT}
65
131
  onLikePress={onLikePress}
66
132
  onEpisodesPress={() => onEpisodesPress?.(item.episodeId)}
67
133
  onSharePress={() => onSharePress?.(item.episodeId)}
68
- isVisible={index === currentVisibleIndex && isFocused}
134
+ isVisible={isVisible}
69
135
  activeEpisodeIndex={currentVisibleIndex}
70
- preload={Math.abs(currentVisibleIndex + 3) >= index}
71
- onEpisodeSelect={hendlePlayEpisode}
136
+ preload={preload}
137
+ onEpisodeSelect={handlePlayEpisode}
72
138
  autoScroll={autoScroll}
139
+ theme={theme}
140
+ onBackPress={onBackPress}
141
+ onSearchPress={onSearchPress}
142
+ onEpisodeUnlockPress={onEpisodeUnlockPress}
73
143
  />
74
144
  );
75
145
  },
76
146
  [
77
147
  data,
78
- onLikePress,
79
148
  currentVisibleIndex,
80
149
  isFocused,
81
- hendlePlayEpisode,
150
+ SCREEN_HEIGHT,
151
+ onLikePress,
152
+ handlePlayEpisode,
82
153
  autoScroll,
154
+ theme,
155
+ onBackPress,
156
+ onSearchPress,
157
+ onEpisodeUnlockPress,
83
158
  onEpisodesPress,
84
159
  onSharePress,
85
160
  ]
86
161
  );
87
162
 
88
- const memoizedRenderReelList = useMemo(
89
- () => renderReelList,
90
- [renderReelList]
91
- );
92
-
163
+ // Viewability configuration
93
164
  const viewabilityConfig = useRef({
94
- itemVisiblePercentThreshold: 80,
165
+ itemVisiblePercentThreshold: VIEWABILITY_THRESHOLD,
95
166
  }).current;
96
167
 
97
168
  const onViewableItemsChanged = useRef(
98
169
  debounce(({ viewableItems }: { viewableItems: Array<ViewToken> }) => {
99
- if (viewableItems.length > 0) {
100
- setCurrentVisibleIndex(viewableItems[0]?.index || 0);
170
+ const visibleIndex = viewableItems[0]?.index;
171
+ if (
172
+ visibleIndex !== undefined &&
173
+ visibleIndex !== null &&
174
+ visibleIndex >= 0
175
+ ) {
176
+ setCurrentVisibleIndex(visibleIndex);
101
177
  }
102
- }, 100)
178
+ }, DEBOUNCE_DELAY)
103
179
  ).current;
104
180
 
105
181
  const getItemLayout = useCallback(
106
- (_: any, index: number) => ({
182
+ (_: unknown, index: number) => ({
107
183
  length: SCREEN_HEIGHT,
108
184
  offset: SCREEN_HEIGHT * index,
109
185
  index,
110
186
  }),
111
- []
187
+ [SCREEN_HEIGHT]
112
188
  );
113
189
 
114
190
  return (
115
- <View style={[styles.container, { backgroundColor: '#000' }]}>
116
- {onSearchPress && (
117
- <TouchableOpacity
118
- style={[
119
- styles.fixedSearch,
120
- {
121
- top: verticalScale(40),
122
- right: 16,
123
- },
124
- ]}
125
- onPress={onSearchPress}
126
- >
127
- <Search color={'#fff'} size={verticalScale(22)} />
128
- </TouchableOpacity>
129
- )}
130
-
131
- <FlatList
132
- ref={listRef}
133
- data={data.episodes || []}
134
- keyExtractor={keyExtractor}
135
- renderItem={memoizedRenderReelList as any}
136
- windowSize={2}
137
- onEndReached={onEndReached}
138
- pagingEnabled
139
- viewabilityConfig={viewabilityConfig}
140
- disableIntervalMomentum={true}
141
- removeClippedSubviews
142
- maxToRenderPerBatch={2}
143
- onViewableItemsChanged={onViewableItemsChanged}
144
- initialNumToRender={1}
145
- onEndReachedThreshold={0.1}
146
- decelerationRate="fast"
147
- showsVerticalScrollIndicator={false}
148
- scrollEventThrottle={16}
149
- snapToInterval={SCREEN_HEIGHT}
150
- snapToAlignment="start"
151
- getItemLayout={getItemLayout}
152
- contentContainerStyle={{ paddingBottom: TAB_BAR_HEIGHT }}
153
- />
191
+ <View style={styles.mainContainer} backgroundColor={backgroundColor}>
192
+ <View
193
+ style={[styles.container, { height: SCREEN_HEIGHT }]}
194
+ backgroundColor={backgroundColor}
195
+ >
196
+ <FlatList
197
+ ref={listRef}
198
+ data={flattenedEpisodes}
199
+ keyExtractor={keyExtractor}
200
+ renderItem={renderReelList}
201
+ onEndReached={onEndReached}
202
+ pagingEnabled
203
+ viewabilityConfig={viewabilityConfig}
204
+ disableIntervalMomentum
205
+ removeClippedSubviews
206
+ maxToRenderPerBatch={2}
207
+ onViewableItemsChanged={onViewableItemsChanged}
208
+ initialNumToRender={1}
209
+ onEndReachedThreshold={0.1}
210
+ decelerationRate="fast"
211
+ showsVerticalScrollIndicator={false}
212
+ scrollEventThrottle={16}
213
+ snapToInterval={SCREEN_HEIGHT}
214
+ snapToAlignment="start"
215
+ getItemLayout={getItemLayout}
216
+ />
217
+ </View>
154
218
  </View>
155
219
  );
156
220
  };
@@ -158,6 +222,10 @@ export const ReelsSeries: React.FC<ReelsProps> = ({
158
222
  export default ReelsSeries;
159
223
 
160
224
  const styles = StyleSheet.create({
161
- container: { flex: 1 },
162
- fixedSearch: { position: 'absolute', zIndex: 10 },
225
+ mainContainer: {
226
+ flex: 1,
227
+ },
228
+ container: {
229
+ overflow: 'hidden',
230
+ },
163
231
  });