@zezosoft/zezo-ott-react-native-ui-kit 1.0.3 → 1.0.5

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 (265) hide show
  1. package/README.md +1 -1
  2. package/lib/module/assets/animations/Failed.json +2103 -0
  3. package/lib/module/assets/animations/Pending.json +522 -0
  4. package/lib/module/assets/animations/Successful.json +2289 -0
  5. package/lib/module/assets/animations/heart.json +788 -0
  6. package/lib/module/components/Alert/AlertDialog.js +208 -0
  7. package/lib/module/components/Alert/AlertDialog.js.map +1 -0
  8. package/lib/module/components/Alert/index.js +1 -0
  9. package/lib/module/components/Alert/index.js.map +1 -1
  10. package/lib/module/components/Auth/AuthProvider/AuthProvider.js +270 -0
  11. package/lib/module/components/Auth/AuthProvider/AuthProvider.js.map +1 -0
  12. package/lib/module/components/Auth/QrLogin/QrLogin.js +267 -0
  13. package/lib/module/components/Auth/QrLogin/QrLogin.js.map +1 -0
  14. package/lib/module/components/Auth/QrLogin/components/QrViewArea.js +178 -0
  15. package/lib/module/components/Auth/QrLogin/components/QrViewArea.js.map +1 -0
  16. package/lib/module/components/Auth/SplashScreen/SplashScreen.js +63 -65
  17. package/lib/module/components/Auth/SplashScreen/SplashScreen.js.map +1 -1
  18. package/lib/module/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.js +82 -41
  19. package/lib/module/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.js.map +1 -1
  20. package/lib/module/components/Auth/index.js +5 -1
  21. package/lib/module/components/Auth/index.js.map +1 -1
  22. package/lib/module/components/BackgroundLayout/BackgroundLayout.js +3 -3
  23. package/lib/module/components/BackgroundLayout/BackgroundLayout.js.map +1 -1
  24. package/lib/module/components/Button/SecondaryBtn.js +91 -0
  25. package/lib/module/components/Button/SecondaryBtn.js.map +1 -0
  26. package/lib/module/components/Button/index.js +2 -0
  27. package/lib/module/components/Button/index.js.map +1 -1
  28. package/lib/module/components/Content/Card/NowWatching/NowWatching.js +6 -3
  29. package/lib/module/components/Content/Card/NowWatching/NowWatching.js.map +1 -1
  30. package/lib/module/components/Content/Card/Sliders/Styles/One.js +4 -1
  31. package/lib/module/components/Content/Card/Sliders/Styles/One.js.map +1 -1
  32. package/lib/module/components/Content/Card/Sliders/Styles/Two.js +4 -1
  33. package/lib/module/components/Content/Card/Sliders/Styles/Two.js.map +1 -1
  34. package/lib/module/components/Content/Card/Styles/Five.js +1 -0
  35. package/lib/module/components/Content/Card/Styles/Five.js.map +1 -1
  36. package/lib/module/components/Content/Card/Styles/Four.js +1 -0
  37. package/lib/module/components/Content/Card/Styles/Four.js.map +1 -1
  38. package/lib/module/components/Content/Card/Styles/One.js +7 -3
  39. package/lib/module/components/Content/Card/Styles/One.js.map +1 -1
  40. package/lib/module/components/Content/Card/Styles/RotateInOut.js +1 -0
  41. package/lib/module/components/Content/Card/Styles/RotateInOut.js.map +1 -1
  42. package/lib/module/components/Content/Card/Styles/Six.js +4 -1
  43. package/lib/module/components/Content/Card/Styles/Six.js.map +1 -1
  44. package/lib/module/components/Content/Card/Styles/Three.js +1 -0
  45. package/lib/module/components/Content/Card/Styles/Three.js.map +1 -1
  46. package/lib/module/components/Content/Card/Styles/TopTen.js +1 -0
  47. package/lib/module/components/Content/Card/Styles/TopTen.js.map +1 -1
  48. package/lib/module/components/Content/Card/Styles/Two.js +1 -0
  49. package/lib/module/components/Content/Card/Styles/Two.js.map +1 -1
  50. package/lib/module/components/Content/Card/components/CardPoster.js +12 -28
  51. package/lib/module/components/Content/Card/components/CardPoster.js.map +1 -1
  52. package/lib/module/components/Content/Card/components/RentOrBuyIcon.js +116 -0
  53. package/lib/module/components/Content/Card/components/RentOrBuyIcon.js.map +1 -0
  54. package/lib/module/components/Content/Card/components/ThumbnailCard.js +1 -2
  55. package/lib/module/components/Content/Card/components/ThumbnailCard.js.map +1 -1
  56. package/lib/module/components/ContentView/ContentView.js +1 -0
  57. package/lib/module/components/ContentView/ContentView.js.map +1 -1
  58. package/lib/module/components/ContentView/MoreContentList.js +1 -0
  59. package/lib/module/components/ContentView/MoreContentList.js.map +1 -1
  60. package/lib/module/components/ContentView/components/EpisodeCard.js +6 -10
  61. package/lib/module/components/ContentView/components/EpisodeCard.js.map +1 -1
  62. package/lib/module/components/ContentView/components/HeroBanner.js +17 -5
  63. package/lib/module/components/ContentView/components/HeroBanner.js.map +1 -1
  64. package/lib/module/components/Headers/AppHeader.js +1 -1
  65. package/lib/module/components/Headers/AppHeader.js.map +1 -1
  66. package/lib/module/components/Headers/One.js +1 -1
  67. package/lib/module/components/Headers/One.js.map +1 -1
  68. package/lib/module/components/Headers/Two.js +1 -1
  69. package/lib/module/components/Headers/Two.js.map +1 -1
  70. package/lib/module/components/Logo/Logo.js +5 -5
  71. package/lib/module/components/Logo/Logo.js.map +1 -1
  72. package/lib/module/components/Reels/ReelsSeries/Model/Episodes.js +110 -0
  73. package/lib/module/components/Reels/ReelsSeries/Model/Episodes.js.map +1 -0
  74. package/lib/module/components/Reels/ReelsSeries/Model/Synopsis.js +212 -0
  75. package/lib/module/components/Reels/ReelsSeries/Model/Synopsis.js.map +1 -0
  76. package/lib/module/components/Reels/ReelsSeries/ReelSeriesDetailsModal.js +182 -0
  77. package/lib/module/components/Reels/ReelsSeries/ReelSeriesDetailsModal.js.map +1 -0
  78. package/lib/module/components/Reels/ReelsSeries/ReelSeriesOverlay.js +203 -0
  79. package/lib/module/components/Reels/ReelsSeries/ReelSeriesOverlay.js.map +1 -0
  80. package/lib/module/components/Reels/ReelsSeries/ReelsSeries.js +121 -0
  81. package/lib/module/components/Reels/ReelsSeries/ReelsSeries.js.map +1 -0
  82. package/lib/module/components/Reels/ReelsSeries/ReelsSeriesItem.js +290 -0
  83. package/lib/module/components/Reels/ReelsSeries/ReelsSeriesItem.js.map +1 -0
  84. package/lib/module/components/Reels/ReelsSeries/types.js +2 -0
  85. package/lib/module/components/Reels/ReelsSeries/types.js.map +1 -0
  86. package/lib/module/components/Reels/index.js +11 -0
  87. package/lib/module/components/Reels/index.js.map +1 -0
  88. package/lib/module/components/Subscription/SubOne.js +2 -2
  89. package/lib/module/components/Subscription/SubOne.js.map +1 -1
  90. package/lib/module/components/User/DeviceSessions/DeviceSessions.js +8 -0
  91. package/lib/module/components/User/DeviceSessions/DeviceSessions.js.map +1 -1
  92. package/lib/module/components/User/ProfileUpdate/ProfileUpdate.js +255 -0
  93. package/lib/module/components/User/ProfileUpdate/ProfileUpdate.js.map +1 -0
  94. package/lib/module/components/User/WatchHistory/WatchHistory.js +1 -0
  95. package/lib/module/components/User/WatchHistory/WatchHistory.js.map +1 -1
  96. package/lib/module/components/User/WatchLater/WatchLater.js +1 -0
  97. package/lib/module/components/User/WatchLater/WatchLater.js.map +1 -1
  98. package/lib/module/components/User/components/UserAvatar.js +35 -8
  99. package/lib/module/components/User/components/UserAvatar.js.map +1 -1
  100. package/lib/module/components/User/components/UserSection.js +8 -13
  101. package/lib/module/components/User/components/UserSection.js.map +1 -1
  102. package/lib/module/components/User/index.js +2 -1
  103. package/lib/module/components/User/index.js.map +1 -1
  104. package/lib/module/components/index.js +1 -0
  105. package/lib/module/components/index.js.map +1 -1
  106. package/lib/module/hooks/useSplashCache.js +117 -0
  107. package/lib/module/hooks/useSplashCache.js.map +1 -0
  108. package/lib/module/store/RecentSearchesStore.js +0 -1
  109. package/lib/module/store/RecentSearchesStore.js.map +1 -1
  110. package/lib/module/theme/ThemeProvider.js +13 -10
  111. package/lib/module/theme/ThemeProvider.js.map +1 -1
  112. package/lib/module/theme/themes.js +2 -0
  113. package/lib/module/theme/themes.js.map +1 -1
  114. package/lib/module/utils/Formater.js +17 -0
  115. package/lib/module/utils/Formater.js.map +1 -0
  116. package/lib/typescript/src/components/Alert/AlertDialog.d.ts +18 -0
  117. package/lib/typescript/src/components/Alert/AlertDialog.d.ts.map +1 -0
  118. package/lib/typescript/src/components/Alert/index.d.ts +1 -0
  119. package/lib/typescript/src/components/Alert/index.d.ts.map +1 -1
  120. package/lib/typescript/src/components/Auth/AuthProvider/AuthProvider.d.ts +35 -0
  121. package/lib/typescript/src/components/Auth/AuthProvider/AuthProvider.d.ts.map +1 -0
  122. package/lib/typescript/src/components/Auth/QrLogin/QrLogin.d.ts +32 -0
  123. package/lib/typescript/src/components/Auth/QrLogin/QrLogin.d.ts.map +1 -0
  124. package/lib/typescript/src/components/Auth/QrLogin/components/QrViewArea.d.ts +15 -0
  125. package/lib/typescript/src/components/Auth/QrLogin/components/QrViewArea.d.ts.map +1 -0
  126. package/lib/typescript/src/components/Auth/SplashScreen/SplashScreen.d.ts +4 -3
  127. package/lib/typescript/src/components/Auth/SplashScreen/SplashScreen.d.ts.map +1 -1
  128. package/lib/typescript/src/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.d.ts +1 -1
  129. package/lib/typescript/src/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.d.ts.map +1 -1
  130. package/lib/typescript/src/components/Auth/index.d.ts +3 -0
  131. package/lib/typescript/src/components/Auth/index.d.ts.map +1 -1
  132. package/lib/typescript/src/components/BackgroundLayout/BackgroundLayout.d.ts.map +1 -1
  133. package/lib/typescript/src/components/Button/SecondaryBtn.d.ts +21 -0
  134. package/lib/typescript/src/components/Button/SecondaryBtn.d.ts.map +1 -0
  135. package/lib/typescript/src/components/Button/index.d.ts +11 -0
  136. package/lib/typescript/src/components/Button/index.d.ts.map +1 -1
  137. package/lib/typescript/src/components/Content/Card/NowWatching/NowWatching.d.ts.map +1 -1
  138. package/lib/typescript/src/components/Content/Card/Sliders/Styles/One.d.ts.map +1 -1
  139. package/lib/typescript/src/components/Content/Card/Sliders/Styles/Two.d.ts.map +1 -1
  140. package/lib/typescript/src/components/Content/Card/Styles/Five.d.ts.map +1 -1
  141. package/lib/typescript/src/components/Content/Card/Styles/Four.d.ts.map +1 -1
  142. package/lib/typescript/src/components/Content/Card/Styles/One.d.ts.map +1 -1
  143. package/lib/typescript/src/components/Content/Card/Styles/RotateInOut.d.ts.map +1 -1
  144. package/lib/typescript/src/components/Content/Card/Styles/Six.d.ts.map +1 -1
  145. package/lib/typescript/src/components/Content/Card/Styles/Three.d.ts.map +1 -1
  146. package/lib/typescript/src/components/Content/Card/Styles/TopTen.d.ts.map +1 -1
  147. package/lib/typescript/src/components/Content/Card/Styles/Two.d.ts.map +1 -1
  148. package/lib/typescript/src/components/Content/Card/components/CardPoster.d.ts +4 -2
  149. package/lib/typescript/src/components/Content/Card/components/CardPoster.d.ts.map +1 -1
  150. package/lib/typescript/src/components/Content/Card/components/RentOrBuyIcon.d.ts +14 -0
  151. package/lib/typescript/src/components/Content/Card/components/RentOrBuyIcon.d.ts.map +1 -0
  152. package/lib/typescript/src/components/ContentView/ContentView.d.ts.map +1 -1
  153. package/lib/typescript/src/components/ContentView/MoreContentList.d.ts.map +1 -1
  154. package/lib/typescript/src/components/ContentView/components/EpisodeCard.d.ts.map +1 -1
  155. package/lib/typescript/src/components/ContentView/components/HeroBanner.d.ts +1 -1
  156. package/lib/typescript/src/components/ContentView/components/HeroBanner.d.ts.map +1 -1
  157. package/lib/typescript/src/components/Logo/Logo.d.ts.map +1 -1
  158. package/lib/typescript/src/components/Reels/ReelsSeries/Model/Episodes.d.ts +12 -0
  159. package/lib/typescript/src/components/Reels/ReelsSeries/Model/Episodes.d.ts.map +1 -0
  160. package/lib/typescript/src/components/Reels/ReelsSeries/Model/Synopsis.d.ts +9 -0
  161. package/lib/typescript/src/components/Reels/ReelsSeries/Model/Synopsis.d.ts.map +1 -0
  162. package/lib/typescript/src/components/Reels/ReelsSeries/ReelSeriesDetailsModal.d.ts +13 -0
  163. package/lib/typescript/src/components/Reels/ReelsSeries/ReelSeriesDetailsModal.d.ts.map +1 -0
  164. package/lib/typescript/src/components/Reels/ReelsSeries/ReelSeriesOverlay.d.ts +18 -0
  165. package/lib/typescript/src/components/Reels/ReelsSeries/ReelSeriesOverlay.d.ts.map +1 -0
  166. package/lib/typescript/src/components/Reels/ReelsSeries/ReelsSeries.d.ts +15 -0
  167. package/lib/typescript/src/components/Reels/ReelsSeries/ReelsSeries.d.ts.map +1 -0
  168. package/lib/typescript/src/components/Reels/ReelsSeries/ReelsSeriesItem.d.ts +18 -0
  169. package/lib/typescript/src/components/Reels/ReelsSeries/ReelsSeriesItem.d.ts.map +1 -0
  170. package/lib/typescript/src/components/Reels/ReelsSeries/types.d.ts +24 -0
  171. package/lib/typescript/src/components/Reels/ReelsSeries/types.d.ts.map +1 -0
  172. package/lib/typescript/src/components/Reels/index.d.ts +8 -0
  173. package/lib/typescript/src/components/Reels/index.d.ts.map +1 -0
  174. package/lib/typescript/src/components/Subscription/SubOne.d.ts.map +1 -1
  175. package/lib/typescript/src/components/User/DeviceSessions/DeviceSessions.d.ts +1 -0
  176. package/lib/typescript/src/components/User/DeviceSessions/DeviceSessions.d.ts.map +1 -1
  177. package/lib/typescript/src/components/User/ProfileUpdate/ProfileUpdate.d.ts +27 -0
  178. package/lib/typescript/src/components/User/ProfileUpdate/ProfileUpdate.d.ts.map +1 -0
  179. package/lib/typescript/src/components/User/WatchHistory/WatchHistory.d.ts.map +1 -1
  180. package/lib/typescript/src/components/User/WatchLater/WatchLater.d.ts.map +1 -1
  181. package/lib/typescript/src/components/User/components/UserAvatar.d.ts +4 -0
  182. package/lib/typescript/src/components/User/components/UserAvatar.d.ts.map +1 -1
  183. package/lib/typescript/src/components/User/components/UserSection.d.ts.map +1 -1
  184. package/lib/typescript/src/components/User/index.d.ts +2 -1
  185. package/lib/typescript/src/components/User/index.d.ts.map +1 -1
  186. package/lib/typescript/src/components/index.d.ts +1 -0
  187. package/lib/typescript/src/components/index.d.ts.map +1 -1
  188. package/lib/typescript/src/hooks/useSplashCache.d.ts +22 -0
  189. package/lib/typescript/src/hooks/useSplashCache.d.ts.map +1 -0
  190. package/lib/typescript/src/store/RecentSearchesStore.d.ts.map +1 -1
  191. package/lib/typescript/src/theme/ThemeProvider.d.ts.map +1 -1
  192. package/lib/typescript/src/theme/themes.d.ts +1 -0
  193. package/lib/typescript/src/theme/themes.d.ts.map +1 -1
  194. package/lib/typescript/src/types/content/content-view.types.d.ts +1 -0
  195. package/lib/typescript/src/types/content/content-view.types.d.ts.map +1 -1
  196. package/lib/typescript/src/utils/Formater.d.ts +2 -0
  197. package/lib/typescript/src/utils/Formater.d.ts.map +1 -0
  198. package/package.json +13 -5
  199. package/src/assets/animations/Failed.json +2103 -0
  200. package/src/assets/animations/Pending.json +522 -0
  201. package/src/assets/animations/Successful.json +2289 -0
  202. package/src/assets/animations/heart.json +788 -0
  203. package/src/components/Alert/AlertDialog.tsx +247 -0
  204. package/src/components/Alert/index.ts +1 -0
  205. package/src/components/Auth/AuthProvider/AuthProvider.tsx +344 -0
  206. package/src/components/Auth/QrLogin/QrLogin.tsx +306 -0
  207. package/src/components/Auth/QrLogin/components/QrViewArea.tsx +213 -0
  208. package/src/components/Auth/SplashScreen/SplashScreen.tsx +89 -80
  209. package/src/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.tsx +90 -40
  210. package/src/components/Auth/index.ts +4 -0
  211. package/src/components/BackgroundLayout/BackgroundLayout.tsx +3 -3
  212. package/src/components/Button/SecondaryBtn.tsx +116 -0
  213. package/src/components/Button/index.ts +2 -0
  214. package/src/components/Content/Card/NowWatching/NowWatching.tsx +4 -0
  215. package/src/components/Content/Card/Sliders/Styles/One.tsx +2 -0
  216. package/src/components/Content/Card/Sliders/Styles/Two.tsx +2 -0
  217. package/src/components/Content/Card/Styles/Five.tsx +1 -0
  218. package/src/components/Content/Card/Styles/Four.tsx +1 -0
  219. package/src/components/Content/Card/Styles/One.tsx +7 -1
  220. package/src/components/Content/Card/Styles/RotateInOut.tsx +1 -0
  221. package/src/components/Content/Card/Styles/Six.tsx +2 -0
  222. package/src/components/Content/Card/Styles/Three.tsx +1 -0
  223. package/src/components/Content/Card/Styles/TopTen.tsx +1 -0
  224. package/src/components/Content/Card/Styles/Two.tsx +1 -0
  225. package/src/components/Content/Card/components/CardPoster.tsx +23 -51
  226. package/src/components/Content/Card/components/RentOrBuyIcon.tsx +109 -0
  227. package/src/components/Content/Card/components/ThumbnailCard.tsx +1 -2
  228. package/src/components/ContentView/ContentView.tsx +1 -0
  229. package/src/components/ContentView/MoreContentList.tsx +1 -0
  230. package/src/components/ContentView/components/EpisodeCard.tsx +4 -9
  231. package/src/components/ContentView/components/HeroBanner.tsx +16 -0
  232. package/src/components/Headers/AppHeader.tsx +1 -1
  233. package/src/components/Headers/One.tsx +1 -1
  234. package/src/components/Headers/Two.tsx +1 -1
  235. package/src/components/Logo/Logo.tsx +5 -7
  236. package/src/components/Reels/ReelsSeries/Model/Episodes.tsx +133 -0
  237. package/src/components/Reels/ReelsSeries/Model/Synopsis.tsx +242 -0
  238. package/src/components/Reels/ReelsSeries/ReelSeriesDetailsModal.tsx +209 -0
  239. package/src/components/Reels/ReelsSeries/ReelSeriesOverlay.tsx +185 -0
  240. package/src/components/Reels/ReelsSeries/ReelsSeries.tsx +163 -0
  241. package/src/components/Reels/ReelsSeries/ReelsSeriesItem.tsx +333 -0
  242. package/src/components/Reels/ReelsSeries/types.ts +27 -0
  243. package/src/components/Reels/index.ts +8 -0
  244. package/src/components/Subscription/SubOne.tsx +4 -2
  245. package/src/components/User/DeviceSessions/DeviceSessions.tsx +11 -0
  246. package/src/components/User/ProfileUpdate/ProfileUpdate.tsx +263 -0
  247. package/src/components/User/WatchHistory/WatchHistory.tsx +1 -0
  248. package/src/components/User/WatchLater/WatchLater.tsx +1 -0
  249. package/src/components/User/components/UserAvatar.tsx +36 -3
  250. package/src/components/User/components/UserSection.tsx +10 -13
  251. package/src/components/User/index.ts +3 -1
  252. package/src/components/index.ts +1 -0
  253. package/src/hooks/useSplashCache.ts +166 -0
  254. package/src/store/RecentSearchesStore.ts +0 -1
  255. package/src/theme/ThemeProvider.tsx +12 -9
  256. package/src/theme/themes.ts +3 -0
  257. package/src/types/content/content-view.types.ts +1 -0
  258. package/src/utils/Formater.ts +14 -0
  259. package/lib/module/hooks/useInitSplashCacheSync.js +0 -116
  260. package/lib/module/hooks/useInitSplashCacheSync.js.map +0 -1
  261. package/lib/typescript/src/hooks/useInitSplashCacheSync.d.ts +0 -22
  262. package/lib/typescript/src/hooks/useInitSplashCacheSync.d.ts.map +0 -1
  263. package/src/hooks/useInitSplashCacheSync.ts +0 -174
  264. /package/lib/module/assets/{img → svg}/h.svg +0 -0
  265. /package/src/assets/{img → svg}/h.svg +0 -0
@@ -1,116 +0,0 @@
1
- "use strict";
2
-
3
- /**
4
- * @author Naresh Dhamu
5
- * @lastModified Tue 29 Jul 2025 at 05:37 PM
6
- */
7
-
8
- import { useEffect, useState } from 'react';
9
- import RNFS from 'react-native-fs';
10
- import CryptoJS from 'crypto-js';
11
- import { MMKV } from 'react-native-mmkv';
12
- import { useSplashStore } from "../store/splashStore.js";
13
- const mmkvStorage = new MMKV();
14
- const inFlightDownloadsMap = new Map();
15
- const SUPPORTED_FILE_TYPES = ['json', 'mp4', 'jpg', 'jpeg', 'png', 'webp'];
16
- const extractFileExtension = url => {
17
- try {
18
- const cleanUrl = url.split('?')[0];
19
- const ext = cleanUrl?.substring(cleanUrl.lastIndexOf('.') + 1).toLowerCase() || '';
20
- return SUPPORTED_FILE_TYPES.includes(ext) ? ext : 'png';
21
- } catch {
22
- return 'png';
23
- }
24
- };
25
- const cacheSplashAsset = async (url, extension, mmkvKey, forceDownload) => {
26
- if (!url?.trim()) return null;
27
- const ext = extension.replace(/^\./, '').trim() || 'mp4';
28
- const hash = CryptoJS.MD5(`${url}|${mmkvKey}|${ext}`).toString();
29
- const localPath = `${RNFS?.CachesDirectoryPath}/splash_${hash}.${ext}`;
30
- if (inFlightDownloadsMap.has(hash)) {
31
- return inFlightDownloadsMap.get(hash);
32
- }
33
- const downloadTask = (async () => {
34
- try {
35
- const previousHash = mmkvStorage.getString(mmkvKey);
36
- if (previousHash && previousHash !== hash) {
37
- const oldPath = `${RNFS?.CachesDirectoryPath}/splash_${previousHash}.${ext}`;
38
- const exists = await RNFS?.exists(oldPath);
39
- if (exists) {
40
- await RNFS?.unlink(oldPath).catch(() => {});
41
- }
42
- }
43
- if (!forceDownload) {
44
- const exists = await RNFS?.exists(localPath);
45
- if (exists && previousHash === hash) {
46
- return localPath;
47
- }
48
- }
49
- const {
50
- statusCode
51
- } = await RNFS?.downloadFile({
52
- fromUrl: url,
53
- toFile: localPath,
54
- cacheable: true,
55
- readTimeout: 15000,
56
- connectionTimeout: 10000
57
- }).promise;
58
- if (statusCode === 200) {
59
- mmkvStorage.set(mmkvKey, hash);
60
- return localPath;
61
- }
62
- } catch {}
63
- return null;
64
- })();
65
- inFlightDownloadsMap.set(hash, downloadTask);
66
- return downloadTask;
67
- };
68
- export const useInitSplashCacheSync = ({
69
- logoUrl,
70
- backgroundUrl,
71
- forceDownload = false
72
- }) => {
73
- const [splashSyncState, setSplashSyncState] = useState({
74
- isReady: false,
75
- error: null
76
- });
77
- const setSplashLogoPath = useSplashStore(s => s.setLogoPath);
78
- const setSplashBackgroundPath = useSplashStore(s => s.setBackdropPath);
79
- useEffect(() => {
80
- let isMounted = true;
81
- const syncSplashAssets = async () => {
82
- try {
83
- const [logoPath, backgroundPath] = await Promise.all([logoUrl ? cacheSplashAsset(logoUrl, extractFileExtension(logoUrl), 'splash_logo', forceDownload) : Promise.resolve(null), backgroundUrl ? cacheSplashAsset(backgroundUrl, extractFileExtension(backgroundUrl), 'splash_background', forceDownload) : Promise.resolve(null)]);
84
- if (!isMounted) return;
85
- if (logoPath) setSplashLogoPath?.(logoPath);
86
- if (backgroundPath) setSplashBackgroundPath?.(backgroundPath);
87
- setSplashSyncState({
88
- isReady: true,
89
- error: null
90
- });
91
- } catch (err) {
92
- if (isMounted) {
93
- setSplashSyncState({
94
- isReady: true,
95
- error: err
96
- });
97
- }
98
- }
99
- };
100
- syncSplashAssets();
101
- return () => {
102
- isMounted = false;
103
- };
104
- }, [logoUrl, backgroundUrl, forceDownload, setSplashLogoPath, setSplashBackgroundPath]);
105
- const splashLogoLocalPath = useSplashStore(s => s.logo.localPath);
106
- const splashBackgroundLocalPath = useSplashStore(s => s.backdrop.localPath);
107
- return {
108
- state: splashSyncState,
109
- isLoading: !splashSyncState.isReady && !splashSyncState.error,
110
- data: {
111
- localPathLogo: splashLogoLocalPath,
112
- localPathBackground: splashBackgroundLocalPath
113
- }
114
- };
115
- };
116
- //# sourceMappingURL=useInitSplashCacheSync.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useEffect","useState","RNFS","CryptoJS","MMKV","useSplashStore","mmkvStorage","inFlightDownloadsMap","Map","SUPPORTED_FILE_TYPES","extractFileExtension","url","cleanUrl","split","ext","substring","lastIndexOf","toLowerCase","includes","cacheSplashAsset","extension","mmkvKey","forceDownload","trim","replace","hash","MD5","toString","localPath","CachesDirectoryPath","has","get","downloadTask","previousHash","getString","oldPath","exists","unlink","catch","statusCode","downloadFile","fromUrl","toFile","cacheable","readTimeout","connectionTimeout","promise","set","useInitSplashCacheSync","logoUrl","backgroundUrl","splashSyncState","setSplashSyncState","isReady","error","setSplashLogoPath","s","setLogoPath","setSplashBackgroundPath","setBackdropPath","isMounted","syncSplashAssets","logoPath","backgroundPath","Promise","all","resolve","err","splashLogoLocalPath","logo","splashBackgroundLocalPath","backdrop","state","isLoading","data","localPathLogo","localPathBackground"],"sourceRoot":"../../../src","sources":["hooks/useInitSplashCacheSync.ts"],"mappings":";;AAAA;AACA;AACA;AACA;;AAEA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,OAAOC,IAAI,MAAM,iBAAiB;AAClC,OAAOC,QAAQ,MAAM,WAAW;AAChC,SAASC,IAAI,QAAQ,mBAAmB;AACxC,SAASC,cAAc,QAAQ,yBAAsB;AAErD,MAAMC,WAAW,GAAG,IAAIF,IAAI,CAAC,CAAC;AAC9B,MAAMG,oBAAoB,GAAG,IAAIC,GAAG,CAAiC,CAAC;AAEtE,MAAMC,oBAAoB,GAAG,CAC3B,MAAM,EACN,KAAK,EACL,KAAK,EACL,MAAM,EACN,KAAK,EACL,MAAM,CACE;AAEV,MAAMC,oBAAoB,GAAIC,GAAW,IAAa;EACpD,IAAI;IACF,MAAMC,QAAQ,GAAGD,GAAG,CAACE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClC,MAAMC,GAAG,GACPF,QAAQ,EAAEG,SAAS,CAACH,QAAQ,CAACI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,IAAI,EAAE;IACxE,OAAOR,oBAAoB,CAACS,QAAQ,CAClCJ,GACF,CAAC,GACGA,GAAG,GACH,KAAK;EACX,CAAC,CAAC,MAAM;IACN,OAAO,KAAK;EACd;AACF,CAAC;AAED,MAAMK,gBAAgB,GAAG,MAAAA,CACvBR,GAAW,EACXS,SAAiB,EACjBC,OAAe,EACfC,aAAsB,KACK;EAC3B,IAAI,CAACX,GAAG,EAAEY,IAAI,CAAC,CAAC,EAAE,OAAO,IAAI;EAE7B,MAAMT,GAAG,GAAGM,SAAS,CAACI,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAACD,IAAI,CAAC,CAAC,IAAI,KAAK;EACxD,MAAME,IAAI,GAAGtB,QAAQ,CAACuB,GAAG,CAAC,GAAGf,GAAG,IAAIU,OAAO,IAAIP,GAAG,EAAE,CAAC,CAACa,QAAQ,CAAC,CAAC;EAChE,MAAMC,SAAS,GAAG,GAAG1B,IAAI,EAAE2B,mBAAmB,WAAWJ,IAAI,IAAIX,GAAG,EAAE;EAEtE,IAAIP,oBAAoB,CAACuB,GAAG,CAACL,IAAI,CAAC,EAAE;IAClC,OAAOlB,oBAAoB,CAACwB,GAAG,CAACN,IAAI,CAAC;EACvC;EAEA,MAAMO,YAAY,GAAG,CAAC,YAAY;IAChC,IAAI;MACF,MAAMC,YAAY,GAAG3B,WAAW,CAAC4B,SAAS,CAACb,OAAO,CAAC;MAEnD,IAAIY,YAAY,IAAIA,YAAY,KAAKR,IAAI,EAAE;QACzC,MAAMU,OAAO,GAAG,GAAGjC,IAAI,EAAE2B,mBAAmB,WAAWI,YAAY,IAAInB,GAAG,EAAE;QAC5E,MAAMsB,MAAM,GAAG,MAAMlC,IAAI,EAAEkC,MAAM,CAACD,OAAO,CAAC;QAC1C,IAAIC,MAAM,EAAE;UACV,MAAMlC,IAAI,EAAEmC,MAAM,CAACF,OAAO,CAAC,CAACG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7C;MACF;MAEA,IAAI,CAAChB,aAAa,EAAE;QAClB,MAAMc,MAAM,GAAG,MAAMlC,IAAI,EAAEkC,MAAM,CAACR,SAAS,CAAC;QAC5C,IAAIQ,MAAM,IAAIH,YAAY,KAAKR,IAAI,EAAE;UACnC,OAAOG,SAAS;QAClB;MACF;MAEA,MAAM;QAAEW;MAAW,CAAC,GAAG,MAAMrC,IAAI,EAAEsC,YAAY,CAAC;QAC9CC,OAAO,EAAE9B,GAAG;QACZ+B,MAAM,EAAEd,SAAS;QACjBe,SAAS,EAAE,IAAI;QACfC,WAAW,EAAE,KAAK;QAClBC,iBAAiB,EAAE;MACrB,CAAC,CAAC,CAACC,OAAO;MAEV,IAAIP,UAAU,KAAK,GAAG,EAAE;QACtBjC,WAAW,CAACyC,GAAG,CAAC1B,OAAO,EAAEI,IAAI,CAAC;QAC9B,OAAOG,SAAS;MAClB;IACF,CAAC,CAAC,MAAM,CAAC;IAET,OAAO,IAAI;EACb,CAAC,EAAE,CAAC;EAEJrB,oBAAoB,CAACwC,GAAG,CAACtB,IAAI,EAAEO,YAAY,CAAC;EAC5C,OAAOA,YAAY;AACrB,CAAC;AAQD,OAAO,MAAMgB,sBAAsB,GAAGA,CAAC;EACrCC,OAAO;EACPC,aAAa;EACb5B,aAAa,GAAG;AACS,CAAC,KAAK;EAC/B,MAAM,CAAC6B,eAAe,EAAEC,kBAAkB,CAAC,GAAGnD,QAAQ,CAAC;IACrDoD,OAAO,EAAE,KAAK;IACdC,KAAK,EAAE;EACT,CAAC,CAAC;EAEF,MAAMC,iBAAiB,GAAGlD,cAAc,CAAEmD,CAAC,IAAKA,CAAC,CAACC,WAAW,CAAC;EAC9D,MAAMC,uBAAuB,GAAGrD,cAAc,CAAEmD,CAAC,IAAKA,CAAC,CAACG,eAAe,CAAC;EAExE3D,SAAS,CAAC,MAAM;IACd,IAAI4D,SAAS,GAAG,IAAI;IAEpB,MAAMC,gBAAgB,GAAG,MAAAA,CAAA,KAAY;MACnC,IAAI;QACF,MAAM,CAACC,QAAQ,EAAEC,cAAc,CAAC,GAAG,MAAMC,OAAO,CAACC,GAAG,CAAC,CACnDhB,OAAO,GACH9B,gBAAgB,CACd8B,OAAO,EACPvC,oBAAoB,CAACuC,OAAO,CAAC,EAC7B,aAAa,EACb3B,aACF,CAAC,GACD0C,OAAO,CAACE,OAAO,CAAC,IAAI,CAAC,EACzBhB,aAAa,GACT/B,gBAAgB,CACd+B,aAAa,EACbxC,oBAAoB,CAACwC,aAAa,CAAC,EACnC,mBAAmB,EACnB5B,aACF,CAAC,GACD0C,OAAO,CAACE,OAAO,CAAC,IAAI,CAAC,CAC1B,CAAC;QAEF,IAAI,CAACN,SAAS,EAAE;QAEhB,IAAIE,QAAQ,EAAEP,iBAAiB,GAAGO,QAAQ,CAAC;QAC3C,IAAIC,cAAc,EAAEL,uBAAuB,GAAGK,cAAc,CAAC;QAE7DX,kBAAkB,CAAC;UAAEC,OAAO,EAAE,IAAI;UAAEC,KAAK,EAAE;QAAK,CAAC,CAAC;MACpD,CAAC,CAAC,OAAOa,GAAG,EAAE;QACZ,IAAIP,SAAS,EAAE;UACbR,kBAAkB,CAAC;YAAEC,OAAO,EAAE,IAAI;YAAEC,KAAK,EAAEa;UAAa,CAAC,CAAC;QAC5D;MACF;IACF,CAAC;IAEDN,gBAAgB,CAAC,CAAC;IAClB,OAAO,MAAM;MACXD,SAAS,GAAG,KAAK;IACnB,CAAC;EACH,CAAC,EAAE,CACDX,OAAO,EACPC,aAAa,EACb5B,aAAa,EACbiC,iBAAiB,EACjBG,uBAAuB,CACxB,CAAC;EAEF,MAAMU,mBAAmB,GAAG/D,cAAc,CAAEmD,CAAC,IAAKA,CAAC,CAACa,IAAI,CAACzC,SAAS,CAAC;EACnE,MAAM0C,yBAAyB,GAAGjE,cAAc,CAAEmD,CAAC,IAAKA,CAAC,CAACe,QAAQ,CAAC3C,SAAS,CAAC;EAE7E,OAAO;IACL4C,KAAK,EAAErB,eAAe;IACtBsB,SAAS,EAAE,CAACtB,eAAe,CAACE,OAAO,IAAI,CAACF,eAAe,CAACG,KAAK;IAC7DoB,IAAI,EAAE;MACJC,aAAa,EAAEP,mBAAmB;MAClCQ,mBAAmB,EAAEN;IACvB;EACF,CAAC;AACH,CAAC","ignoreList":[]}
@@ -1,22 +0,0 @@
1
- /**
2
- * @author Naresh Dhamu
3
- * @lastModified Tue 29 Jul 2025 at 05:37 PM
4
- */
5
- type UseSplashCacheSyncOptions = {
6
- logoUrl?: string;
7
- backgroundUrl?: string;
8
- forceDownload?: boolean;
9
- };
10
- export declare const useInitSplashCacheSync: ({ logoUrl, backgroundUrl, forceDownload, }: UseSplashCacheSyncOptions) => {
11
- state: {
12
- isReady: boolean;
13
- error: Error | null;
14
- };
15
- isLoading: boolean;
16
- data: {
17
- localPathLogo: string | null;
18
- localPathBackground: string | null;
19
- };
20
- };
21
- export {};
22
- //# sourceMappingURL=useInitSplashCacheSync.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useInitSplashCacheSync.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useInitSplashCacheSync.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA2FH,KAAK,yBAAyB,GAAG;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,4CAIpC,yBAAyB;;;eAGT,KAAK,GAAG,IAAI;;;;;;;CAkE9B,CAAC"}
@@ -1,174 +0,0 @@
1
- /**
2
- * @author Naresh Dhamu
3
- * @lastModified Tue 29 Jul 2025 at 05:37 PM
4
- */
5
-
6
- import { useEffect, useState } from 'react';
7
- import RNFS from 'react-native-fs';
8
- import CryptoJS from 'crypto-js';
9
- import { MMKV } from 'react-native-mmkv';
10
- import { useSplashStore } from '../store/splashStore';
11
-
12
- const mmkvStorage = new MMKV();
13
- const inFlightDownloadsMap = new Map<string, Promise<string | null>>();
14
-
15
- const SUPPORTED_FILE_TYPES = [
16
- 'json',
17
- 'mp4',
18
- 'jpg',
19
- 'jpeg',
20
- 'png',
21
- 'webp',
22
- ] as const;
23
-
24
- const extractFileExtension = (url: string): string => {
25
- try {
26
- const cleanUrl = url.split('?')[0];
27
- const ext =
28
- cleanUrl?.substring(cleanUrl.lastIndexOf('.') + 1).toLowerCase() || '';
29
- return SUPPORTED_FILE_TYPES.includes(
30
- ext as (typeof SUPPORTED_FILE_TYPES)[number]
31
- )
32
- ? ext
33
- : 'png';
34
- } catch {
35
- return 'png';
36
- }
37
- };
38
-
39
- const cacheSplashAsset = async (
40
- url: string,
41
- extension: string,
42
- mmkvKey: string,
43
- forceDownload: boolean
44
- ): Promise<string | null> => {
45
- if (!url?.trim()) return null;
46
-
47
- const ext = extension.replace(/^\./, '').trim() || 'mp4';
48
- const hash = CryptoJS.MD5(`${url}|${mmkvKey}|${ext}`).toString();
49
- const localPath = `${RNFS?.CachesDirectoryPath}/splash_${hash}.${ext}`;
50
-
51
- if (inFlightDownloadsMap.has(hash)) {
52
- return inFlightDownloadsMap.get(hash)!;
53
- }
54
-
55
- const downloadTask = (async () => {
56
- try {
57
- const previousHash = mmkvStorage.getString(mmkvKey);
58
-
59
- if (previousHash && previousHash !== hash) {
60
- const oldPath = `${RNFS?.CachesDirectoryPath}/splash_${previousHash}.${ext}`;
61
- const exists = await RNFS?.exists(oldPath);
62
- if (exists) {
63
- await RNFS?.unlink(oldPath).catch(() => {});
64
- }
65
- }
66
-
67
- if (!forceDownload) {
68
- const exists = await RNFS?.exists(localPath);
69
- if (exists && previousHash === hash) {
70
- return localPath;
71
- }
72
- }
73
-
74
- const { statusCode } = await RNFS?.downloadFile({
75
- fromUrl: url,
76
- toFile: localPath,
77
- cacheable: true,
78
- readTimeout: 15000,
79
- connectionTimeout: 10000,
80
- }).promise;
81
-
82
- if (statusCode === 200) {
83
- mmkvStorage.set(mmkvKey, hash);
84
- return localPath;
85
- }
86
- } catch {}
87
-
88
- return null;
89
- })();
90
-
91
- inFlightDownloadsMap.set(hash, downloadTask);
92
- return downloadTask;
93
- };
94
-
95
- type UseSplashCacheSyncOptions = {
96
- logoUrl?: string;
97
- backgroundUrl?: string;
98
- forceDownload?: boolean;
99
- };
100
-
101
- export const useInitSplashCacheSync = ({
102
- logoUrl,
103
- backgroundUrl,
104
- forceDownload = false,
105
- }: UseSplashCacheSyncOptions) => {
106
- const [splashSyncState, setSplashSyncState] = useState({
107
- isReady: false,
108
- error: null as Error | null,
109
- });
110
-
111
- const setSplashLogoPath = useSplashStore((s) => s.setLogoPath);
112
- const setSplashBackgroundPath = useSplashStore((s) => s.setBackdropPath);
113
-
114
- useEffect(() => {
115
- let isMounted = true;
116
-
117
- const syncSplashAssets = async () => {
118
- try {
119
- const [logoPath, backgroundPath] = await Promise.all([
120
- logoUrl
121
- ? cacheSplashAsset(
122
- logoUrl,
123
- extractFileExtension(logoUrl),
124
- 'splash_logo',
125
- forceDownload
126
- )
127
- : Promise.resolve(null),
128
- backgroundUrl
129
- ? cacheSplashAsset(
130
- backgroundUrl,
131
- extractFileExtension(backgroundUrl),
132
- 'splash_background',
133
- forceDownload
134
- )
135
- : Promise.resolve(null),
136
- ]);
137
-
138
- if (!isMounted) return;
139
-
140
- if (logoPath) setSplashLogoPath?.(logoPath);
141
- if (backgroundPath) setSplashBackgroundPath?.(backgroundPath);
142
-
143
- setSplashSyncState({ isReady: true, error: null });
144
- } catch (err) {
145
- if (isMounted) {
146
- setSplashSyncState({ isReady: true, error: err as Error });
147
- }
148
- }
149
- };
150
-
151
- syncSplashAssets();
152
- return () => {
153
- isMounted = false;
154
- };
155
- }, [
156
- logoUrl,
157
- backgroundUrl,
158
- forceDownload,
159
- setSplashLogoPath,
160
- setSplashBackgroundPath,
161
- ]);
162
-
163
- const splashLogoLocalPath = useSplashStore((s) => s.logo.localPath);
164
- const splashBackgroundLocalPath = useSplashStore((s) => s.backdrop.localPath);
165
-
166
- return {
167
- state: splashSyncState,
168
- isLoading: !splashSyncState.isReady && !splashSyncState.error,
169
- data: {
170
- localPathLogo: splashLogoLocalPath,
171
- localPathBackground: splashBackgroundLocalPath,
172
- },
173
- };
174
- };
File without changes
File without changes