@kiosinc/commons-rn 0.1.69 → 0.1.71
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/lib/commonjs/components/FirebaseMedia.js +101 -0
- package/lib/commonjs/components/FirebaseMedia.js.map +1 -0
- package/lib/commonjs/components/Header.js +5 -5
- package/lib/commonjs/components/Header.js.map +1 -1
- package/lib/commonjs/components/index.js +7 -0
- package/lib/commonjs/components/index.js.map +1 -1
- package/lib/commonjs/helpers/AssetManager.js +104 -0
- package/lib/commonjs/helpers/AssetManager.js.map +1 -0
- package/lib/commonjs/hooks/useCustomer.js +1 -3
- package/lib/commonjs/hooks/useCustomer.js.map +1 -1
- package/lib/commonjs/index.js +8 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/components/FirebaseMedia.js +92 -0
- package/lib/module/components/FirebaseMedia.js.map +1 -0
- package/lib/module/components/Header.js +5 -5
- package/lib/module/components/Header.js.map +1 -1
- package/lib/module/components/index.js +1 -0
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/helpers/AssetManager.js +96 -0
- package/lib/module/helpers/AssetManager.js.map +1 -0
- package/lib/module/hooks/useCustomer.js +1 -3
- package/lib/module/hooks/useCustomer.js.map +1 -1
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/components/FirebaseMedia.d.ts +13 -0
- package/lib/typescript/src/components/FirebaseMedia.d.ts.map +1 -0
- package/lib/typescript/src/components/Header.d.ts +3 -6
- package/lib/typescript/src/components/Header.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/helpers/AssetManager.d.ts +29 -0
- package/lib/typescript/src/helpers/AssetManager.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useCustomer.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +1 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +3 -1
- package/src/components/FirebaseMedia.tsx +130 -0
- package/src/components/Header.tsx +6 -10
- package/src/components/index.ts +1 -0
- package/src/helpers/AssetManager.ts +138 -0
- package/src/hooks/useCustomer.ts +1 -3
- package/src/index.tsx +1 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import FastImage from 'react-native-fast-image';
|
|
2
|
+
import storage from '@react-native-firebase/storage';
|
|
3
|
+
import ReactNativeBlobUtil from 'react-native-blob-util';
|
|
4
|
+
export class AssetManager {
|
|
5
|
+
static assetCache = {};
|
|
6
|
+
static async clearCache() {
|
|
7
|
+
await FastImage.clearDiskCache();
|
|
8
|
+
await FastImage.clearMemoryCache();
|
|
9
|
+
}
|
|
10
|
+
static async uploadImage({
|
|
11
|
+
uri,
|
|
12
|
+
base64,
|
|
13
|
+
path,
|
|
14
|
+
type,
|
|
15
|
+
setProgress
|
|
16
|
+
}) {
|
|
17
|
+
const reference = storage().ref(path);
|
|
18
|
+
const task = type === 'image' ? reference.putString(base64, storage.StringFormat.BASE64, {
|
|
19
|
+
cacheControl: 'no-store'
|
|
20
|
+
}) : reference.putFile(uri, {
|
|
21
|
+
cacheControl: 'no-store'
|
|
22
|
+
});
|
|
23
|
+
let previousTime = Date.now();
|
|
24
|
+
let previousBytesTransferred = 0;
|
|
25
|
+
let speed = '0';
|
|
26
|
+
task.on('state_changed', taskSnapshot => {
|
|
27
|
+
const currentTime = Date.now();
|
|
28
|
+
const currentBytesTransferred = taskSnapshot.bytesTransferred;
|
|
29
|
+
const timeDifference = (currentTime - previousTime) / 1000;
|
|
30
|
+
const bytesDifference = currentBytesTransferred - previousBytesTransferred;
|
|
31
|
+
if (timeDifference > 0 && bytesDifference >= 0) {
|
|
32
|
+
const uploadSpeedMegabytesPerSecond = bytesDifference / timeDifference / 1024 / 1024; // Mb per second
|
|
33
|
+
|
|
34
|
+
if (uploadSpeedMegabytesPerSecond > 0) {
|
|
35
|
+
speed = uploadSpeedMegabytesPerSecond.toFixed(1) + '';
|
|
36
|
+
}
|
|
37
|
+
// Update previous values
|
|
38
|
+
previousTime = currentTime;
|
|
39
|
+
previousBytesTransferred = currentBytesTransferred;
|
|
40
|
+
}
|
|
41
|
+
setProgress({
|
|
42
|
+
percentage: Math.ceil(taskSnapshot.bytesTransferred / taskSnapshot.totalBytes * 100) + '',
|
|
43
|
+
speed: speed
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
const taskSnapshot = await task;
|
|
47
|
+
await reference.updateMetadata({
|
|
48
|
+
customMetadata: {
|
|
49
|
+
type: type
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
const url = await reference.toString();
|
|
53
|
+
return {
|
|
54
|
+
taskSnapshot: taskSnapshot,
|
|
55
|
+
url: url
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
static async downloadImage(url, path) {
|
|
59
|
+
const dirs = ReactNativeBlobUtil.fs.dirs;
|
|
60
|
+
const res = await ReactNativeBlobUtil.config({
|
|
61
|
+
path: dirs.DocumentDir + path
|
|
62
|
+
}).fetch('GET', url);
|
|
63
|
+
return res.base64();
|
|
64
|
+
}
|
|
65
|
+
static async fileExists(path) {
|
|
66
|
+
const documentDir = ReactNativeBlobUtil.fs.dirs.DocumentDir;
|
|
67
|
+
return await ReactNativeBlobUtil.fs.exists(documentDir + path);
|
|
68
|
+
}
|
|
69
|
+
static async getBase64(path) {
|
|
70
|
+
const documentDir = ReactNativeBlobUtil.fs.dirs.DocumentDir;
|
|
71
|
+
return await ReactNativeBlobUtil.fs.readFile(documentDir + path, 'base64');
|
|
72
|
+
}
|
|
73
|
+
static async getAssetURL(path) {
|
|
74
|
+
try {
|
|
75
|
+
// Check if the URL is already cached
|
|
76
|
+
if (this.assetCache[path]) {
|
|
77
|
+
// Retrieving asset URL from cache for path
|
|
78
|
+
return this.assetCache[path];
|
|
79
|
+
}
|
|
80
|
+
// If not cached, fetch from storage and cache the result
|
|
81
|
+
const downloadURL = await storage().refFromURL(path).getDownloadURL();
|
|
82
|
+
const metaData = await storage().refFromURL(path).getMetadata();
|
|
83
|
+
const type = metaData?.customMetadata?.type ?? 'image';
|
|
84
|
+
const assetDetails = {
|
|
85
|
+
uri: downloadURL,
|
|
86
|
+
type
|
|
87
|
+
};
|
|
88
|
+
// Caching details
|
|
89
|
+
this.assetCache[path] = assetDetails;
|
|
90
|
+
return assetDetails;
|
|
91
|
+
} catch (e) {
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=AssetManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["FastImage","storage","ReactNativeBlobUtil","AssetManager","assetCache","clearCache","clearDiskCache","clearMemoryCache","uploadImage","uri","base64","path","type","setProgress","reference","ref","task","putString","StringFormat","BASE64","cacheControl","putFile","previousTime","Date","now","previousBytesTransferred","speed","on","taskSnapshot","currentTime","currentBytesTransferred","bytesTransferred","timeDifference","bytesDifference","uploadSpeedMegabytesPerSecond","toFixed","percentage","Math","ceil","totalBytes","updateMetadata","customMetadata","url","toString","downloadImage","dirs","fs","res","config","DocumentDir","fetch","fileExists","documentDir","exists","getBase64","readFile","getAssetURL","downloadURL","refFromURL","getDownloadURL","metaData","getMetadata","assetDetails","e"],"sourceRoot":"../../../src","sources":["helpers/AssetManager.ts"],"mappings":"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"}
|
|
@@ -143,12 +143,10 @@ export const useCustomerQueries = () => {
|
|
|
143
143
|
useSaveCustomerCard: () => {
|
|
144
144
|
const mutation = useMutation(async data => {
|
|
145
145
|
if (isLoggedIn) {
|
|
146
|
-
|
|
147
|
-
const response = await saveCustomerCard({
|
|
146
|
+
await saveCustomerCard({
|
|
148
147
|
uid: user?.uid,
|
|
149
148
|
props: data
|
|
150
149
|
});
|
|
151
|
-
console.log('here in useSaveCustomerCard response', response.data);
|
|
152
150
|
}
|
|
153
151
|
}, {
|
|
154
152
|
onError: err => Alert.show({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useAuthentication","Alert","useMutation","useQuery","useQueryClient","firestore","uuid","connectSquareCustomer","connectSquareLoyalty","createCustomer","fetchLoyaltyRewards","fetchSquareLoyalty","getCustomer","saveCustomerAddress","saveCustomerCard","updateCustomerProfile","useMMKVString","MMKV_KEYS","queryKeys","useCustomerQueries","queryClient","user","selectedBusinessId","BUSINESS_ID","isLoggedIn","isAnonymous","invalidateQueries","LOYALTY","uid","useFetchCustomer","CUSTOMER","select","data","customer","useCreateCustomer","mutation","response","onError","err","show","title","code","description","message","createCustomerHook","mutateAsync","createCustomerLoading","isLoading","useUpdateCustomer","props","updateCustomer","mutate","updateCustomerLoading","useSaveCustomerAddress","address","useSaveAddress","saveAddressLoading","useFetchSavedCards","CARDS","payments","collection","orderBy","where","get","docs","length","map","payment","id","enabled","Boolean","useFetchSquareProgram","queryOptions","PROGRAM","programs","program","useFetchSquareLoyalty","res","useSaveCustomerCard","
|
|
1
|
+
{"version":3,"names":["useEffect","useAuthentication","Alert","useMutation","useQuery","useQueryClient","firestore","uuid","connectSquareCustomer","connectSquareLoyalty","createCustomer","fetchLoyaltyRewards","fetchSquareLoyalty","getCustomer","saveCustomerAddress","saveCustomerCard","updateCustomerProfile","useMMKVString","MMKV_KEYS","queryKeys","useCustomerQueries","queryClient","user","selectedBusinessId","BUSINESS_ID","isLoggedIn","isAnonymous","invalidateQueries","LOYALTY","uid","useFetchCustomer","CUSTOMER","select","data","customer","useCreateCustomer","mutation","response","onError","err","show","title","code","description","message","createCustomerHook","mutateAsync","createCustomerLoading","isLoading","useUpdateCustomer","props","updateCustomer","mutate","updateCustomerLoading","useSaveCustomerAddress","address","useSaveAddress","saveAddressLoading","useFetchSavedCards","CARDS","payments","collection","orderBy","where","get","docs","length","map","payment","id","enabled","Boolean","useFetchSquareProgram","queryOptions","PROGRAM","programs","program","useFetchSquareLoyalty","res","useSaveCustomerCard","onSuccess","saveCard","saveCardLoading","useDisableCard","documentId","doc","update","isActive","disableCard","disableCardLoading","useConnectSquareLoyalty","businessId","idempotentKey","v4","connectLoyaltyLoading","useConnectSquareCustomer","connectSquare","connectSquareLoading","useFetchLoyaltyRewards","REWARDS"],"sourceRoot":"../../../src","sources":["hooks/useCustomer.ts"],"mappings":"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"}
|
package/lib/module/index.js
CHANGED
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Currency","useCustomerQueries","useCheckCustomer","SavedCards","useMultiSnapBottomSheetRef","TMultiSnapBottomSheetRef","useSingleSnapBottomSheetRef","TSingleSnapBottomSheetRef","multiply","a","b","Promise","resolve","Analytics"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,kBAAkB;AAE3C,SAASC,kBAAkB,QAAQ,qBAAqB;AACxD,SAASC,gBAAgB,QAAQ,0BAA0B;AAC3D,SAASC,UAAU,QAAQ,iCAAiC;AAE5D,SACEC,0BAA0B,EAC1BC,wBAAwB,QACnB,oCAAoC;AAC3C,SACEC,2BAA2B,EAC3BC,yBAAyB,QACpB,qCAAqC;AAE5C,OAAO,SAASC,QAAQA,CAACC,CAAS,EAAEC,CAAS,EAAmB;EAC9D,OAAOC,OAAO,CAACC,OAAO,CAACH,CAAC,GAAGC,CAAC,CAAC;AAC/B;AACA,cAAc,cAAc;AAC5B,cAAc,QAAQ;AACtB,cAAc,kBAAkB;AAEhC,SAASG,SAAS,QAAQ,mBAAmB"}
|
|
1
|
+
{"version":3,"names":["AssetManager","Currency","useCustomerQueries","useCheckCustomer","SavedCards","useMultiSnapBottomSheetRef","TMultiSnapBottomSheetRef","useSingleSnapBottomSheetRef","TSingleSnapBottomSheetRef","multiply","a","b","Promise","resolve","Analytics"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,SAASA,YAAY,QAAQ,wBAAwB;AACrD,SAASC,QAAQ,QAAQ,kBAAkB;AAE3C,SAASC,kBAAkB,QAAQ,qBAAqB;AACxD,SAASC,gBAAgB,QAAQ,0BAA0B;AAC3D,SAASC,UAAU,QAAQ,iCAAiC;AAE5D,SACEC,0BAA0B,EAC1BC,wBAAwB,QACnB,oCAAoC;AAC3C,SACEC,2BAA2B,EAC3BC,yBAAyB,QACpB,qCAAqC;AAE5C,OAAO,SAASC,QAAQA,CAACC,CAAS,EAAEC,CAAS,EAAmB;EAC9D,OAAOC,OAAO,CAACC,OAAO,CAACH,CAAC,GAAGC,CAAC,CAAC;AAC/B;AACA,cAAc,cAAc;AAC5B,cAAc,QAAQ;AACtB,cAAc,kBAAkB;AAEhC,SAASG,SAAS,QAAQ,mBAAmB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { FastImageProps } from 'react-native-fast-image';
|
|
3
|
+
import { SpacingProps, BorderProps, BackgroundColorProps, SpacingShorthandProps, LayoutProps, PositionProps, BackgroundColorShorthandProps } from '@shopify/restyle';
|
|
4
|
+
import { VideoProperties } from 'react-native-video';
|
|
5
|
+
import { ThemeType } from '../theme';
|
|
6
|
+
type RestyleProps = SpacingProps<ThemeType> & SpacingShorthandProps<ThemeType> & LayoutProps<ThemeType> & PositionProps<ThemeType> & BorderProps<ThemeType> & BackgroundColorProps<ThemeType> & BackgroundColorShorthandProps<ThemeType>;
|
|
7
|
+
type TFirebaseMedia = {
|
|
8
|
+
uri: string;
|
|
9
|
+
};
|
|
10
|
+
type Props = Omit<RestyleProps & FastImageProps & TFirebaseMedia & VideoProperties, 'source'>;
|
|
11
|
+
export declare const FirebaseMedia: React.MemoExoticComponent<({ uri, ...rest }: Props) => JSX.Element>;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=FirebaseMedia.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FirebaseMedia.d.ts","sourceRoot":"","sources":["../../../../src/components/FirebaseMedia.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AACnD,OAAkB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EACL,YAAY,EACZ,WAAW,EACX,oBAAoB,EACpB,qBAAqB,EACrB,WAAW,EACX,aAAa,EACb,6BAA6B,EAC9B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAOrC,KAAK,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,GACzC,qBAAqB,CAAC,SAAS,CAAC,GAChC,WAAW,CAAC,SAAS,CAAC,GACtB,aAAa,CAAC,SAAS,CAAC,GACxB,WAAW,CAAC,SAAS,CAAC,GACtB,oBAAoB,CAAC,SAAS,CAAC,GAC/B,6BAA6B,CAAC,SAAS,CAAC,CAAC;AAE3C,KAAK,cAAc,GAAG;IACpB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,KAAK,KAAK,GAAG,IAAI,CACf,YAAY,GAAG,cAAc,GAAG,cAAc,GAAG,eAAe,EAChE,QAAQ,CACT,CAAC;AAEF,eAAO,MAAM,aAAa,+CAAiC,KAAK,iBAoF9D,CAAC"}
|
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { type
|
|
2
|
+
import { type ViewProps } from 'react-native';
|
|
3
3
|
import { type SpacingProps, type BorderProps, type BackgroundColorProps, type SpacingShorthandProps, type LayoutProps, type PositionProps, type BackgroundColorShorthandProps } from '@shopify/restyle';
|
|
4
4
|
import { type ThemeType } from '../theme';
|
|
5
|
+
import { MenuItemProps } from 'react-native-paper';
|
|
5
6
|
type RestyleProps = SpacingProps<ThemeType> & SpacingShorthandProps<ThemeType> & LayoutProps<ThemeType> & PositionProps<ThemeType> & BorderProps<ThemeType> & BackgroundColorProps<ThemeType> & BackgroundColorShorthandProps<ThemeType>;
|
|
6
7
|
type Props = RestyleProps & ViewProps & {
|
|
7
8
|
textAlign?: 'center' | 'right' | 'left';
|
|
8
9
|
title?: string;
|
|
9
10
|
customRightOptions?: React.ReactNode;
|
|
10
|
-
menuOptions?: Array<
|
|
11
|
-
leadingIcon: string;
|
|
12
|
-
title: string;
|
|
13
|
-
onPress: (e?: GestureResponderEvent) => void;
|
|
14
|
-
}>;
|
|
11
|
+
menuOptions?: Array<MenuItemProps>;
|
|
15
12
|
};
|
|
16
13
|
export declare const Header: React.FC<Props>;
|
|
17
14
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../../../src/components/Header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,
|
|
1
|
+
{"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../../../src/components/Header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,EAA8B,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAML,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,oBAAoB,EAEzB,KAAK,qBAAqB,EAC1B,KAAK,WAAW,EAChB,KAAK,aAAa,EAIlB,KAAK,6BAA6B,EACnC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,KAAK,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,GACzC,qBAAqB,CAAC,SAAS,CAAC,GAChC,WAAW,CAAC,SAAS,CAAC,GACtB,aAAa,CAAC,SAAS,CAAC,GACxB,WAAW,CAAC,SAAS,CAAC,GACtB,oBAAoB,CAAC,SAAS,CAAC,GAC/B,6BAA6B,CAAC,SAAS,CAAC,CAAC;AAY3C,KAAK,KAAK,GAAG,YAAY,GACvB,SAAS,GAAG;IACV,SAAS,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACrC,WAAW,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;CACpC,CAAC;AAEJ,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAiElC,CAAC"}
|
|
@@ -26,5 +26,6 @@ export { TouchableRipple } from './TouchableRipple';
|
|
|
26
26
|
export { Video } from './Video';
|
|
27
27
|
export { View } from './View';
|
|
28
28
|
export { RefreshControl } from './RefreshControl';
|
|
29
|
+
export { FirebaseMedia } from './FirebaseMedia';
|
|
29
30
|
export { PhoneInput, type PCountry } from './PhoneInput';
|
|
30
31
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { FirebaseStorageTypes } from '@react-native-firebase/storage';
|
|
3
|
+
type TaskSnapshot = FirebaseStorageTypes.TaskSnapshot;
|
|
4
|
+
export declare class AssetManager {
|
|
5
|
+
private static assetCache;
|
|
6
|
+
static clearCache(): Promise<void>;
|
|
7
|
+
static uploadImage({ uri, base64, path, type, setProgress, }: {
|
|
8
|
+
uri: string;
|
|
9
|
+
base64: string;
|
|
10
|
+
path: string;
|
|
11
|
+
type: 'image' | 'video';
|
|
12
|
+
setProgress: React.Dispatch<React.SetStateAction<{
|
|
13
|
+
percentage: string;
|
|
14
|
+
speed: string;
|
|
15
|
+
}>>;
|
|
16
|
+
}): Promise<{
|
|
17
|
+
taskSnapshot: TaskSnapshot;
|
|
18
|
+
url: string;
|
|
19
|
+
}>;
|
|
20
|
+
static downloadImage(url: string, path: string): Promise<string>;
|
|
21
|
+
static fileExists(path: string): Promise<boolean>;
|
|
22
|
+
static getBase64(path: string): Promise<string>;
|
|
23
|
+
static getAssetURL(path: string): Promise<{
|
|
24
|
+
uri: any;
|
|
25
|
+
type: string;
|
|
26
|
+
} | null | undefined>;
|
|
27
|
+
}
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=AssetManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AssetManager.d.ts","sourceRoot":"","sources":["../../../../src/helpers/AssetManager.ts"],"names":[],"mappings":";AACA,OAAgB,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAG/E,KAAK,YAAY,GAAG,oBAAoB,CAAC,YAAY,CAAC;AAEtD,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,UAAU,CAKlB;WAEM,UAAU;WAKV,WAAW,CAAC,EACvB,GAAG,EACH,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,WAAW,GACZ,EAAE;QACD,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;QACxB,WAAW,EAAE,KAAK,CAAC,QAAQ,CACzB,KAAK,CAAC,cAAc,CAAC;YACnB,UAAU,EAAE,MAAM,CAAC;YACnB,KAAK,EAAE,MAAM,CAAC;SACf,CAAC,CACH,CAAC;KACH,GAAG,OAAO,CAAC;QACV,YAAY,EAAE,YAAY,CAAC;QAC3B,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;WAyDW,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;WAQzD,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;WAK1C,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;WAKxC,WAAW,CAAC,IAAI,EAAE,MAAM;;;;CAuBtC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCustomer.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useCustomer.ts"],"names":[],"mappings":"AAkBA,OAAO,EACL,OAAO,EACP,oBAAoB,EACpB,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAK3B,eAAO,MAAM,kBAAkB;;;;kBAyCE,MAAM;qBAAW,MAAM;;;;;;kBA4BvB,MAAM;qBAAW,MAAM;;;;;;kBA4BvB,MAAM;qBAAW,MAAM;;;;;2CAsCb,MAAM;2CAwBN,MAAM;;;
|
|
1
|
+
{"version":3,"file":"useCustomer.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useCustomer.ts"],"names":[],"mappings":"AAkBA,OAAO,EACL,OAAO,EACP,oBAAoB,EACpB,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAK3B,eAAO,MAAM,kBAAkB;;;;kBAyCE,MAAM;qBAAW,MAAM;;;;;;kBA4BvB,MAAM;qBAAW,MAAM;;;;;;kBA4BvB,MAAM;qBAAW,MAAM;;;;;2CAsCb,MAAM;2CAwBN,MAAM;;;kBA0BhB,MAAM;qBAAW,MAAM;;;;;;kBA6BvB,MAAM;qBAAW,MAAM;;;;;;kBA4BvB,MAAM;qBAAW,MAAM;;;;;;kBA4BvB,MAAM;qBAAW,MAAM;;;;;CA+BvD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,qCAAqC,CAAC;AAE7C,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE9D;AACD,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,kBAAkB,CAAC;AAEjC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,qCAAqC,CAAC;AAE7C,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE9D;AACD,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,kBAAkB,CAAC;AAEjC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kiosinc/commons-rn",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.71",
|
|
4
4
|
"description": "Common Code",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
|
@@ -186,6 +186,7 @@
|
|
|
186
186
|
"@gorhom/bottom-sheet": "^4.6.1",
|
|
187
187
|
"@hookform/resolvers": "^3.3.2",
|
|
188
188
|
"@react-native-firebase/firestore": "^19.2.2",
|
|
189
|
+
"@react-native-firebase/storage": "^20.1.0",
|
|
189
190
|
"@react-navigation/material-top-tabs": "^6.6.13",
|
|
190
191
|
"@shopify/restyle": "^2.4.2",
|
|
191
192
|
"@tanstack/react-query": "^4.32.6",
|
|
@@ -196,6 +197,7 @@
|
|
|
196
197
|
"react-content-loader": "^6.2.1",
|
|
197
198
|
"react-hook-form": "^7.48.2",
|
|
198
199
|
"react-i18next": "^13.5.0",
|
|
200
|
+
"react-native-blob-util": "^0.19.9",
|
|
199
201
|
"react-native-config": "^1.5.1",
|
|
200
202
|
"react-native-device-info": "^10.13.2",
|
|
201
203
|
"react-native-international-phone-number": "^0.7.6",
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import React, { useEffect, useState } from 'react';
|
|
2
|
+
import FastImage, { FastImageProps } from 'react-native-fast-image';
|
|
3
|
+
import {
|
|
4
|
+
SpacingProps,
|
|
5
|
+
BorderProps,
|
|
6
|
+
BackgroundColorProps,
|
|
7
|
+
SpacingShorthandProps,
|
|
8
|
+
LayoutProps,
|
|
9
|
+
PositionProps,
|
|
10
|
+
BackgroundColorShorthandProps,
|
|
11
|
+
} from '@shopify/restyle';
|
|
12
|
+
import { VideoProperties } from 'react-native-video';
|
|
13
|
+
import PlaceHolderImage from '../assets/icons/placeholderImage.svg';
|
|
14
|
+
import VideoOriginal from 'react-native-video';
|
|
15
|
+
import { ThemeType } from '../theme';
|
|
16
|
+
import { AssetManager } from '../helpers/AssetManager';
|
|
17
|
+
import { View } from './View';
|
|
18
|
+
import { IconButton } from './IconButton';
|
|
19
|
+
import { ContentLoaderList } from './ContentLoaderList';
|
|
20
|
+
import { StyleSheet } from 'react-native';
|
|
21
|
+
|
|
22
|
+
type RestyleProps = SpacingProps<ThemeType> &
|
|
23
|
+
SpacingShorthandProps<ThemeType> &
|
|
24
|
+
LayoutProps<ThemeType> &
|
|
25
|
+
PositionProps<ThemeType> &
|
|
26
|
+
BorderProps<ThemeType> &
|
|
27
|
+
BackgroundColorProps<ThemeType> &
|
|
28
|
+
BackgroundColorShorthandProps<ThemeType>;
|
|
29
|
+
|
|
30
|
+
type TFirebaseMedia = {
|
|
31
|
+
uri: string;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
type Props = Omit<
|
|
35
|
+
RestyleProps & FastImageProps & TFirebaseMedia & VideoProperties,
|
|
36
|
+
'source'
|
|
37
|
+
>;
|
|
38
|
+
|
|
39
|
+
export const FirebaseMedia = React.memo(({ uri, ...rest }: Props) => {
|
|
40
|
+
const [status, setStatus] = useState<'loading' | 'failed' | 'success'>(
|
|
41
|
+
'loading'
|
|
42
|
+
);
|
|
43
|
+
const [{ uri: firebaseURI, type }, setFirebaseURI] = useState({
|
|
44
|
+
uri: null,
|
|
45
|
+
type: 'image',
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
useEffect(() => {
|
|
49
|
+
if (uri) {
|
|
50
|
+
setStatus('loading');
|
|
51
|
+
AssetManager.getAssetURL(uri)
|
|
52
|
+
.then((assetDetails) => {
|
|
53
|
+
if (assetDetails) {
|
|
54
|
+
setFirebaseURI(assetDetails);
|
|
55
|
+
} else {
|
|
56
|
+
setStatus('failed');
|
|
57
|
+
}
|
|
58
|
+
})
|
|
59
|
+
.catch(() => {
|
|
60
|
+
setStatus('failed');
|
|
61
|
+
});
|
|
62
|
+
} else {
|
|
63
|
+
setStatus('failed');
|
|
64
|
+
}
|
|
65
|
+
}, [uri]);
|
|
66
|
+
|
|
67
|
+
return (
|
|
68
|
+
<View
|
|
69
|
+
overflow={'hidden'}
|
|
70
|
+
{...rest}
|
|
71
|
+
{...(rest.height && rest.width
|
|
72
|
+
? { height: rest.height, width: rest.width }
|
|
73
|
+
: {
|
|
74
|
+
flex: 1,
|
|
75
|
+
})}
|
|
76
|
+
>
|
|
77
|
+
{!!firebaseURI && type === 'image' && (
|
|
78
|
+
<FastImage
|
|
79
|
+
style={styles.image}
|
|
80
|
+
source={{ uri: firebaseURI }}
|
|
81
|
+
onLoad={() => {
|
|
82
|
+
setStatus('success');
|
|
83
|
+
}}
|
|
84
|
+
onError={() => {
|
|
85
|
+
setStatus('failed');
|
|
86
|
+
}}
|
|
87
|
+
/>
|
|
88
|
+
)}
|
|
89
|
+
|
|
90
|
+
{!!firebaseURI && type === 'video' && (
|
|
91
|
+
<VideoOriginal
|
|
92
|
+
{...rest}
|
|
93
|
+
source={{ uri: firebaseURI }}
|
|
94
|
+
onLoad={() => {
|
|
95
|
+
setStatus('success');
|
|
96
|
+
}}
|
|
97
|
+
onError={() => {
|
|
98
|
+
setStatus('failed');
|
|
99
|
+
}}
|
|
100
|
+
/>
|
|
101
|
+
)}
|
|
102
|
+
<View
|
|
103
|
+
top={0}
|
|
104
|
+
bottom={0}
|
|
105
|
+
right={0}
|
|
106
|
+
left={0}
|
|
107
|
+
position="absolute"
|
|
108
|
+
alignItems="center"
|
|
109
|
+
justifyContent="center"
|
|
110
|
+
>
|
|
111
|
+
{status === 'loading' && (
|
|
112
|
+
<ContentLoaderList count={1} radius={10} height="100%" />
|
|
113
|
+
)}
|
|
114
|
+
{status === 'failed' &&
|
|
115
|
+
(uri ? (
|
|
116
|
+
<IconButton icon="image-broken-variant" />
|
|
117
|
+
) : (
|
|
118
|
+
<PlaceHolderImage height="100%" width="100%" />
|
|
119
|
+
))}
|
|
120
|
+
</View>
|
|
121
|
+
</View>
|
|
122
|
+
);
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
const styles = StyleSheet.create({
|
|
126
|
+
image: {
|
|
127
|
+
height: '100%',
|
|
128
|
+
width: '100%',
|
|
129
|
+
},
|
|
130
|
+
});
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
type BackgroundColorShorthandProps,
|
|
25
25
|
} from '@shopify/restyle';
|
|
26
26
|
import { type ThemeType } from '../theme';
|
|
27
|
-
|
|
27
|
+
import { MenuItemProps } from 'react-native-paper';
|
|
28
28
|
type RestyleProps = SpacingProps<ThemeType> &
|
|
29
29
|
SpacingShorthandProps<ThemeType> &
|
|
30
30
|
LayoutProps<ThemeType> &
|
|
@@ -48,11 +48,7 @@ type Props = RestyleProps &
|
|
|
48
48
|
textAlign?: 'center' | 'right' | 'left';
|
|
49
49
|
title?: string;
|
|
50
50
|
customRightOptions?: React.ReactNode;
|
|
51
|
-
menuOptions?: Array<
|
|
52
|
-
leadingIcon: string;
|
|
53
|
-
title: string;
|
|
54
|
-
onPress: (e?: GestureResponderEvent) => void;
|
|
55
|
-
}>;
|
|
51
|
+
menuOptions?: Array<MenuItemProps>;
|
|
56
52
|
};
|
|
57
53
|
|
|
58
54
|
export const Header: React.FC<Props> = ({
|
|
@@ -98,17 +94,17 @@ export const Header: React.FC<Props> = ({
|
|
|
98
94
|
onDismiss={closeMenu}
|
|
99
95
|
anchor={<Appbar.Action icon="dots-vertical" onPress={openMenu} />}
|
|
100
96
|
>
|
|
101
|
-
{menuOptions.map((menuOption) => {
|
|
102
|
-
const onPress = () => {
|
|
97
|
+
{menuOptions.map((menuOption, index) => {
|
|
98
|
+
const onPress = (e: GestureResponderEvent) => {
|
|
103
99
|
closeMenu();
|
|
104
|
-
menuOption
|
|
100
|
+
menuOption?.onPress?.(e);
|
|
105
101
|
};
|
|
106
102
|
return (
|
|
107
103
|
<Menu.Item
|
|
104
|
+
key={String(index)}
|
|
108
105
|
style={{
|
|
109
106
|
backgroundColor: theme.colors.background,
|
|
110
107
|
}}
|
|
111
|
-
key={menuOption.title}
|
|
112
108
|
{...menuOption}
|
|
113
109
|
onPress={onPress}
|
|
114
110
|
/>
|
package/src/components/index.ts
CHANGED
|
@@ -26,4 +26,5 @@ export { TouchableRipple } from './TouchableRipple';
|
|
|
26
26
|
export { Video } from './Video';
|
|
27
27
|
export { View } from './View';
|
|
28
28
|
export { RefreshControl } from './RefreshControl';
|
|
29
|
+
export { FirebaseMedia } from './FirebaseMedia';
|
|
29
30
|
export { PhoneInput, type PCountry } from './PhoneInput';
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import FastImage from 'react-native-fast-image';
|
|
2
|
+
import storage, { FirebaseStorageTypes } from '@react-native-firebase/storage';
|
|
3
|
+
import ReactNativeBlobUtil from 'react-native-blob-util';
|
|
4
|
+
|
|
5
|
+
type TaskSnapshot = FirebaseStorageTypes.TaskSnapshot;
|
|
6
|
+
|
|
7
|
+
export class AssetManager {
|
|
8
|
+
private static assetCache: {
|
|
9
|
+
[path: string]: {
|
|
10
|
+
uri: string;
|
|
11
|
+
type: string;
|
|
12
|
+
};
|
|
13
|
+
} = {};
|
|
14
|
+
|
|
15
|
+
static async clearCache() {
|
|
16
|
+
await FastImage.clearDiskCache();
|
|
17
|
+
await FastImage.clearMemoryCache();
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
static async uploadImage({
|
|
21
|
+
uri,
|
|
22
|
+
base64,
|
|
23
|
+
path,
|
|
24
|
+
type,
|
|
25
|
+
setProgress,
|
|
26
|
+
}: {
|
|
27
|
+
uri: string;
|
|
28
|
+
base64: string;
|
|
29
|
+
path: string;
|
|
30
|
+
type: 'image' | 'video';
|
|
31
|
+
setProgress: React.Dispatch<
|
|
32
|
+
React.SetStateAction<{
|
|
33
|
+
percentage: string;
|
|
34
|
+
speed: string;
|
|
35
|
+
}>
|
|
36
|
+
>;
|
|
37
|
+
}): Promise<{
|
|
38
|
+
taskSnapshot: TaskSnapshot;
|
|
39
|
+
url: string;
|
|
40
|
+
}> {
|
|
41
|
+
const reference = storage().ref(path);
|
|
42
|
+
|
|
43
|
+
const task =
|
|
44
|
+
type === 'image'
|
|
45
|
+
? reference.putString(base64, storage.StringFormat.BASE64, {
|
|
46
|
+
cacheControl: 'no-store',
|
|
47
|
+
})
|
|
48
|
+
: reference.putFile(uri, {
|
|
49
|
+
cacheControl: 'no-store',
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
let previousTime = Date.now();
|
|
53
|
+
let previousBytesTransferred = 0;
|
|
54
|
+
let speed = '0';
|
|
55
|
+
|
|
56
|
+
task.on('state_changed', (taskSnapshot: TaskSnapshot) => {
|
|
57
|
+
const currentTime = Date.now();
|
|
58
|
+
const currentBytesTransferred = taskSnapshot.bytesTransferred;
|
|
59
|
+
const timeDifference = (currentTime - previousTime) / 1000;
|
|
60
|
+
const bytesDifference =
|
|
61
|
+
currentBytesTransferred - previousBytesTransferred;
|
|
62
|
+
|
|
63
|
+
if (timeDifference > 0 && bytesDifference >= 0) {
|
|
64
|
+
const uploadSpeedMegabytesPerSecond =
|
|
65
|
+
bytesDifference / timeDifference / 1024 / 1024; // Mb per second
|
|
66
|
+
|
|
67
|
+
if (uploadSpeedMegabytesPerSecond > 0) {
|
|
68
|
+
speed = uploadSpeedMegabytesPerSecond.toFixed(1) + '';
|
|
69
|
+
}
|
|
70
|
+
// Update previous values
|
|
71
|
+
previousTime = currentTime;
|
|
72
|
+
previousBytesTransferred = currentBytesTransferred;
|
|
73
|
+
}
|
|
74
|
+
setProgress({
|
|
75
|
+
percentage:
|
|
76
|
+
Math.ceil(
|
|
77
|
+
(taskSnapshot.bytesTransferred / taskSnapshot.totalBytes) * 100
|
|
78
|
+
) + '',
|
|
79
|
+
speed: speed,
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
const taskSnapshot = await task;
|
|
84
|
+
await reference.updateMetadata({
|
|
85
|
+
customMetadata: {
|
|
86
|
+
type: type,
|
|
87
|
+
},
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
const url = await reference.toString();
|
|
91
|
+
return {
|
|
92
|
+
taskSnapshot: taskSnapshot,
|
|
93
|
+
url: url,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
static async downloadImage(url: string, path: string): Promise<string> {
|
|
98
|
+
const dirs = ReactNativeBlobUtil.fs.dirs;
|
|
99
|
+
const res = await ReactNativeBlobUtil.config({
|
|
100
|
+
path: dirs.DocumentDir + path,
|
|
101
|
+
}).fetch('GET', url);
|
|
102
|
+
return res.base64();
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
static async fileExists(path: string): Promise<boolean> {
|
|
106
|
+
const documentDir = ReactNativeBlobUtil.fs.dirs.DocumentDir;
|
|
107
|
+
return await ReactNativeBlobUtil.fs.exists(documentDir + path);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
static async getBase64(path: string): Promise<string> {
|
|
111
|
+
const documentDir = ReactNativeBlobUtil.fs.dirs.DocumentDir;
|
|
112
|
+
return await ReactNativeBlobUtil.fs.readFile(documentDir + path, 'base64');
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
static async getAssetURL(path: string) {
|
|
116
|
+
try {
|
|
117
|
+
// Check if the URL is already cached
|
|
118
|
+
if (this.assetCache[path]) {
|
|
119
|
+
// Retrieving asset URL from cache for path
|
|
120
|
+
return this.assetCache[path];
|
|
121
|
+
}
|
|
122
|
+
// If not cached, fetch from storage and cache the result
|
|
123
|
+
const downloadURL = await storage().refFromURL(path).getDownloadURL();
|
|
124
|
+
const metaData = await storage().refFromURL(path).getMetadata();
|
|
125
|
+
const type = (metaData?.customMetadata?.type ?? 'image') as string;
|
|
126
|
+
const assetDetails = {
|
|
127
|
+
uri: downloadURL,
|
|
128
|
+
type,
|
|
129
|
+
};
|
|
130
|
+
// Caching details
|
|
131
|
+
this.assetCache[path] = assetDetails;
|
|
132
|
+
|
|
133
|
+
return assetDetails;
|
|
134
|
+
} catch (e) {
|
|
135
|
+
return null;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|