@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.
- package/README.md +1 -1
- package/lib/module/assets/animations/Failed.json +2103 -0
- package/lib/module/assets/animations/Pending.json +522 -0
- package/lib/module/assets/animations/Successful.json +2289 -0
- package/lib/module/assets/animations/heart.json +788 -0
- package/lib/module/components/Alert/AlertDialog.js +208 -0
- package/lib/module/components/Alert/AlertDialog.js.map +1 -0
- package/lib/module/components/Alert/index.js +1 -0
- package/lib/module/components/Alert/index.js.map +1 -1
- package/lib/module/components/Auth/AuthProvider/AuthProvider.js +270 -0
- package/lib/module/components/Auth/AuthProvider/AuthProvider.js.map +1 -0
- package/lib/module/components/Auth/QrLogin/QrLogin.js +267 -0
- package/lib/module/components/Auth/QrLogin/QrLogin.js.map +1 -0
- package/lib/module/components/Auth/QrLogin/components/QrViewArea.js +178 -0
- package/lib/module/components/Auth/QrLogin/components/QrViewArea.js.map +1 -0
- package/lib/module/components/Auth/SplashScreen/SplashScreen.js +63 -65
- package/lib/module/components/Auth/SplashScreen/SplashScreen.js.map +1 -1
- package/lib/module/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.js +82 -41
- package/lib/module/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.js.map +1 -1
- package/lib/module/components/Auth/index.js +5 -1
- package/lib/module/components/Auth/index.js.map +1 -1
- package/lib/module/components/BackgroundLayout/BackgroundLayout.js +3 -3
- package/lib/module/components/BackgroundLayout/BackgroundLayout.js.map +1 -1
- package/lib/module/components/Button/SecondaryBtn.js +91 -0
- package/lib/module/components/Button/SecondaryBtn.js.map +1 -0
- package/lib/module/components/Button/index.js +2 -0
- package/lib/module/components/Button/index.js.map +1 -1
- package/lib/module/components/Content/Card/NowWatching/NowWatching.js +6 -3
- package/lib/module/components/Content/Card/NowWatching/NowWatching.js.map +1 -1
- package/lib/module/components/Content/Card/Sliders/Styles/One.js +4 -1
- package/lib/module/components/Content/Card/Sliders/Styles/One.js.map +1 -1
- package/lib/module/components/Content/Card/Sliders/Styles/Two.js +4 -1
- package/lib/module/components/Content/Card/Sliders/Styles/Two.js.map +1 -1
- package/lib/module/components/Content/Card/Styles/Five.js +1 -0
- package/lib/module/components/Content/Card/Styles/Five.js.map +1 -1
- package/lib/module/components/Content/Card/Styles/Four.js +1 -0
- package/lib/module/components/Content/Card/Styles/Four.js.map +1 -1
- package/lib/module/components/Content/Card/Styles/One.js +7 -3
- package/lib/module/components/Content/Card/Styles/One.js.map +1 -1
- package/lib/module/components/Content/Card/Styles/RotateInOut.js +1 -0
- package/lib/module/components/Content/Card/Styles/RotateInOut.js.map +1 -1
- package/lib/module/components/Content/Card/Styles/Six.js +4 -1
- package/lib/module/components/Content/Card/Styles/Six.js.map +1 -1
- package/lib/module/components/Content/Card/Styles/Three.js +1 -0
- package/lib/module/components/Content/Card/Styles/Three.js.map +1 -1
- package/lib/module/components/Content/Card/Styles/TopTen.js +1 -0
- package/lib/module/components/Content/Card/Styles/TopTen.js.map +1 -1
- package/lib/module/components/Content/Card/Styles/Two.js +1 -0
- package/lib/module/components/Content/Card/Styles/Two.js.map +1 -1
- package/lib/module/components/Content/Card/components/CardPoster.js +12 -28
- package/lib/module/components/Content/Card/components/CardPoster.js.map +1 -1
- package/lib/module/components/Content/Card/components/RentOrBuyIcon.js +116 -0
- package/lib/module/components/Content/Card/components/RentOrBuyIcon.js.map +1 -0
- package/lib/module/components/Content/Card/components/ThumbnailCard.js +1 -2
- package/lib/module/components/Content/Card/components/ThumbnailCard.js.map +1 -1
- package/lib/module/components/ContentView/ContentView.js +1 -0
- package/lib/module/components/ContentView/ContentView.js.map +1 -1
- package/lib/module/components/ContentView/MoreContentList.js +1 -0
- package/lib/module/components/ContentView/MoreContentList.js.map +1 -1
- package/lib/module/components/ContentView/components/EpisodeCard.js +6 -10
- package/lib/module/components/ContentView/components/EpisodeCard.js.map +1 -1
- package/lib/module/components/ContentView/components/HeroBanner.js +17 -5
- package/lib/module/components/ContentView/components/HeroBanner.js.map +1 -1
- package/lib/module/components/Headers/AppHeader.js +1 -1
- package/lib/module/components/Headers/AppHeader.js.map +1 -1
- package/lib/module/components/Headers/One.js +1 -1
- package/lib/module/components/Headers/One.js.map +1 -1
- package/lib/module/components/Headers/Two.js +1 -1
- package/lib/module/components/Headers/Two.js.map +1 -1
- package/lib/module/components/Logo/Logo.js +5 -5
- package/lib/module/components/Logo/Logo.js.map +1 -1
- package/lib/module/components/Reels/ReelsSeries/Model/Episodes.js +110 -0
- package/lib/module/components/Reels/ReelsSeries/Model/Episodes.js.map +1 -0
- package/lib/module/components/Reels/ReelsSeries/Model/Synopsis.js +212 -0
- package/lib/module/components/Reels/ReelsSeries/Model/Synopsis.js.map +1 -0
- package/lib/module/components/Reels/ReelsSeries/ReelSeriesDetailsModal.js +182 -0
- package/lib/module/components/Reels/ReelsSeries/ReelSeriesDetailsModal.js.map +1 -0
- package/lib/module/components/Reels/ReelsSeries/ReelSeriesOverlay.js +203 -0
- package/lib/module/components/Reels/ReelsSeries/ReelSeriesOverlay.js.map +1 -0
- package/lib/module/components/Reels/ReelsSeries/ReelsSeries.js +121 -0
- package/lib/module/components/Reels/ReelsSeries/ReelsSeries.js.map +1 -0
- package/lib/module/components/Reels/ReelsSeries/ReelsSeriesItem.js +290 -0
- package/lib/module/components/Reels/ReelsSeries/ReelsSeriesItem.js.map +1 -0
- package/lib/module/components/Reels/ReelsSeries/types.js +2 -0
- package/lib/module/components/Reels/ReelsSeries/types.js.map +1 -0
- package/lib/module/components/Reels/index.js +11 -0
- package/lib/module/components/Reels/index.js.map +1 -0
- package/lib/module/components/Subscription/SubOne.js +2 -2
- package/lib/module/components/Subscription/SubOne.js.map +1 -1
- package/lib/module/components/User/DeviceSessions/DeviceSessions.js +8 -0
- package/lib/module/components/User/DeviceSessions/DeviceSessions.js.map +1 -1
- package/lib/module/components/User/ProfileUpdate/ProfileUpdate.js +255 -0
- package/lib/module/components/User/ProfileUpdate/ProfileUpdate.js.map +1 -0
- package/lib/module/components/User/WatchHistory/WatchHistory.js +1 -0
- package/lib/module/components/User/WatchHistory/WatchHistory.js.map +1 -1
- package/lib/module/components/User/WatchLater/WatchLater.js +1 -0
- package/lib/module/components/User/WatchLater/WatchLater.js.map +1 -1
- package/lib/module/components/User/components/UserAvatar.js +35 -8
- package/lib/module/components/User/components/UserAvatar.js.map +1 -1
- package/lib/module/components/User/components/UserSection.js +8 -13
- package/lib/module/components/User/components/UserSection.js.map +1 -1
- package/lib/module/components/User/index.js +2 -1
- package/lib/module/components/User/index.js.map +1 -1
- package/lib/module/components/index.js +1 -0
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/hooks/useSplashCache.js +117 -0
- package/lib/module/hooks/useSplashCache.js.map +1 -0
- package/lib/module/store/RecentSearchesStore.js +0 -1
- package/lib/module/store/RecentSearchesStore.js.map +1 -1
- package/lib/module/theme/ThemeProvider.js +13 -10
- package/lib/module/theme/ThemeProvider.js.map +1 -1
- package/lib/module/theme/themes.js +2 -0
- package/lib/module/theme/themes.js.map +1 -1
- package/lib/module/utils/Formater.js +17 -0
- package/lib/module/utils/Formater.js.map +1 -0
- package/lib/typescript/src/components/Alert/AlertDialog.d.ts +18 -0
- package/lib/typescript/src/components/Alert/AlertDialog.d.ts.map +1 -0
- package/lib/typescript/src/components/Alert/index.d.ts +1 -0
- package/lib/typescript/src/components/Alert/index.d.ts.map +1 -1
- package/lib/typescript/src/components/Auth/AuthProvider/AuthProvider.d.ts +35 -0
- package/lib/typescript/src/components/Auth/AuthProvider/AuthProvider.d.ts.map +1 -0
- package/lib/typescript/src/components/Auth/QrLogin/QrLogin.d.ts +32 -0
- package/lib/typescript/src/components/Auth/QrLogin/QrLogin.d.ts.map +1 -0
- package/lib/typescript/src/components/Auth/QrLogin/components/QrViewArea.d.ts +15 -0
- package/lib/typescript/src/components/Auth/QrLogin/components/QrViewArea.d.ts.map +1 -0
- package/lib/typescript/src/components/Auth/SplashScreen/SplashScreen.d.ts +4 -3
- package/lib/typescript/src/components/Auth/SplashScreen/SplashScreen.d.ts.map +1 -1
- package/lib/typescript/src/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.d.ts +1 -1
- package/lib/typescript/src/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.d.ts.map +1 -1
- package/lib/typescript/src/components/Auth/index.d.ts +3 -0
- package/lib/typescript/src/components/Auth/index.d.ts.map +1 -1
- package/lib/typescript/src/components/BackgroundLayout/BackgroundLayout.d.ts.map +1 -1
- package/lib/typescript/src/components/Button/SecondaryBtn.d.ts +21 -0
- package/lib/typescript/src/components/Button/SecondaryBtn.d.ts.map +1 -0
- package/lib/typescript/src/components/Button/index.d.ts +11 -0
- package/lib/typescript/src/components/Button/index.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/NowWatching/NowWatching.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/Sliders/Styles/One.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/Sliders/Styles/Two.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/Styles/Five.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/Styles/Four.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/Styles/One.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/Styles/RotateInOut.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/Styles/Six.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/Styles/Three.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/Styles/TopTen.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/Styles/Two.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/components/CardPoster.d.ts +4 -2
- package/lib/typescript/src/components/Content/Card/components/CardPoster.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/components/RentOrBuyIcon.d.ts +14 -0
- package/lib/typescript/src/components/Content/Card/components/RentOrBuyIcon.d.ts.map +1 -0
- package/lib/typescript/src/components/ContentView/ContentView.d.ts.map +1 -1
- package/lib/typescript/src/components/ContentView/MoreContentList.d.ts.map +1 -1
- package/lib/typescript/src/components/ContentView/components/EpisodeCard.d.ts.map +1 -1
- package/lib/typescript/src/components/ContentView/components/HeroBanner.d.ts +1 -1
- package/lib/typescript/src/components/ContentView/components/HeroBanner.d.ts.map +1 -1
- package/lib/typescript/src/components/Logo/Logo.d.ts.map +1 -1
- package/lib/typescript/src/components/Reels/ReelsSeries/Model/Episodes.d.ts +12 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/Model/Episodes.d.ts.map +1 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/Model/Synopsis.d.ts +9 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/Model/Synopsis.d.ts.map +1 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/ReelSeriesDetailsModal.d.ts +13 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/ReelSeriesDetailsModal.d.ts.map +1 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/ReelSeriesOverlay.d.ts +18 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/ReelSeriesOverlay.d.ts.map +1 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/ReelsSeries.d.ts +15 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/ReelsSeries.d.ts.map +1 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/ReelsSeriesItem.d.ts +18 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/ReelsSeriesItem.d.ts.map +1 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/types.d.ts +24 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/types.d.ts.map +1 -0
- package/lib/typescript/src/components/Reels/index.d.ts +8 -0
- package/lib/typescript/src/components/Reels/index.d.ts.map +1 -0
- package/lib/typescript/src/components/Subscription/SubOne.d.ts.map +1 -1
- package/lib/typescript/src/components/User/DeviceSessions/DeviceSessions.d.ts +1 -0
- package/lib/typescript/src/components/User/DeviceSessions/DeviceSessions.d.ts.map +1 -1
- package/lib/typescript/src/components/User/ProfileUpdate/ProfileUpdate.d.ts +27 -0
- package/lib/typescript/src/components/User/ProfileUpdate/ProfileUpdate.d.ts.map +1 -0
- package/lib/typescript/src/components/User/WatchHistory/WatchHistory.d.ts.map +1 -1
- package/lib/typescript/src/components/User/WatchLater/WatchLater.d.ts.map +1 -1
- package/lib/typescript/src/components/User/components/UserAvatar.d.ts +4 -0
- package/lib/typescript/src/components/User/components/UserAvatar.d.ts.map +1 -1
- package/lib/typescript/src/components/User/components/UserSection.d.ts.map +1 -1
- package/lib/typescript/src/components/User/index.d.ts +2 -1
- package/lib/typescript/src/components/User/index.d.ts.map +1 -1
- package/lib/typescript/src/components/index.d.ts +1 -0
- package/lib/typescript/src/components/index.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useSplashCache.d.ts +22 -0
- package/lib/typescript/src/hooks/useSplashCache.d.ts.map +1 -0
- package/lib/typescript/src/store/RecentSearchesStore.d.ts.map +1 -1
- package/lib/typescript/src/theme/ThemeProvider.d.ts.map +1 -1
- package/lib/typescript/src/theme/themes.d.ts +1 -0
- package/lib/typescript/src/theme/themes.d.ts.map +1 -1
- package/lib/typescript/src/types/content/content-view.types.d.ts +1 -0
- package/lib/typescript/src/types/content/content-view.types.d.ts.map +1 -1
- package/lib/typescript/src/utils/Formater.d.ts +2 -0
- package/lib/typescript/src/utils/Formater.d.ts.map +1 -0
- package/package.json +13 -5
- package/src/assets/animations/Failed.json +2103 -0
- package/src/assets/animations/Pending.json +522 -0
- package/src/assets/animations/Successful.json +2289 -0
- package/src/assets/animations/heart.json +788 -0
- package/src/components/Alert/AlertDialog.tsx +247 -0
- package/src/components/Alert/index.ts +1 -0
- package/src/components/Auth/AuthProvider/AuthProvider.tsx +344 -0
- package/src/components/Auth/QrLogin/QrLogin.tsx +306 -0
- package/src/components/Auth/QrLogin/components/QrViewArea.tsx +213 -0
- package/src/components/Auth/SplashScreen/SplashScreen.tsx +89 -80
- package/src/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.tsx +90 -40
- package/src/components/Auth/index.ts +4 -0
- package/src/components/BackgroundLayout/BackgroundLayout.tsx +3 -3
- package/src/components/Button/SecondaryBtn.tsx +116 -0
- package/src/components/Button/index.ts +2 -0
- package/src/components/Content/Card/NowWatching/NowWatching.tsx +4 -0
- package/src/components/Content/Card/Sliders/Styles/One.tsx +2 -0
- package/src/components/Content/Card/Sliders/Styles/Two.tsx +2 -0
- package/src/components/Content/Card/Styles/Five.tsx +1 -0
- package/src/components/Content/Card/Styles/Four.tsx +1 -0
- package/src/components/Content/Card/Styles/One.tsx +7 -1
- package/src/components/Content/Card/Styles/RotateInOut.tsx +1 -0
- package/src/components/Content/Card/Styles/Six.tsx +2 -0
- package/src/components/Content/Card/Styles/Three.tsx +1 -0
- package/src/components/Content/Card/Styles/TopTen.tsx +1 -0
- package/src/components/Content/Card/Styles/Two.tsx +1 -0
- package/src/components/Content/Card/components/CardPoster.tsx +23 -51
- package/src/components/Content/Card/components/RentOrBuyIcon.tsx +109 -0
- package/src/components/Content/Card/components/ThumbnailCard.tsx +1 -2
- package/src/components/ContentView/ContentView.tsx +1 -0
- package/src/components/ContentView/MoreContentList.tsx +1 -0
- package/src/components/ContentView/components/EpisodeCard.tsx +4 -9
- package/src/components/ContentView/components/HeroBanner.tsx +16 -0
- package/src/components/Headers/AppHeader.tsx +1 -1
- package/src/components/Headers/One.tsx +1 -1
- package/src/components/Headers/Two.tsx +1 -1
- package/src/components/Logo/Logo.tsx +5 -7
- package/src/components/Reels/ReelsSeries/Model/Episodes.tsx +133 -0
- package/src/components/Reels/ReelsSeries/Model/Synopsis.tsx +242 -0
- package/src/components/Reels/ReelsSeries/ReelSeriesDetailsModal.tsx +209 -0
- package/src/components/Reels/ReelsSeries/ReelSeriesOverlay.tsx +185 -0
- package/src/components/Reels/ReelsSeries/ReelsSeries.tsx +163 -0
- package/src/components/Reels/ReelsSeries/ReelsSeriesItem.tsx +333 -0
- package/src/components/Reels/ReelsSeries/types.ts +27 -0
- package/src/components/Reels/index.ts +8 -0
- package/src/components/Subscription/SubOne.tsx +4 -2
- package/src/components/User/DeviceSessions/DeviceSessions.tsx +11 -0
- package/src/components/User/ProfileUpdate/ProfileUpdate.tsx +263 -0
- package/src/components/User/WatchHistory/WatchHistory.tsx +1 -0
- package/src/components/User/WatchLater/WatchLater.tsx +1 -0
- package/src/components/User/components/UserAvatar.tsx +36 -3
- package/src/components/User/components/UserSection.tsx +10 -13
- package/src/components/User/index.ts +3 -1
- package/src/components/index.ts +1 -0
- package/src/hooks/useSplashCache.ts +166 -0
- package/src/store/RecentSearchesStore.ts +0 -1
- package/src/theme/ThemeProvider.tsx +12 -9
- package/src/theme/themes.ts +3 -0
- package/src/types/content/content-view.types.ts +1 -0
- package/src/utils/Formater.ts +14 -0
- package/lib/module/hooks/useInitSplashCacheSync.js +0 -116
- package/lib/module/hooks/useInitSplashCacheSync.js.map +0 -1
- package/lib/typescript/src/hooks/useInitSplashCacheSync.d.ts +0 -22
- package/lib/typescript/src/hooks/useInitSplashCacheSync.d.ts.map +0 -1
- package/src/hooks/useInitSplashCacheSync.ts +0 -174
- /package/lib/module/assets/{img → svg}/h.svg +0 -0
- /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":"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","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
|