@kiosinc/commons-rn 0.1.80 → 0.1.82

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.
@@ -6,13 +6,14 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.FirebaseMedia = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
8
  var _reactNativeFastImage = _interopRequireDefault(require("react-native-fast-image"));
9
- var _placeholderImage = _interopRequireDefault(require("../assets/icons/placeholderImage.svg"));
9
+ var _reactNativePaper = require("react-native-paper");
10
10
  var _reactNativeVideo = _interopRequireDefault(require("react-native-video"));
11
+ var _reactNative = require("react-native");
12
+ var _placeholderImage = _interopRequireDefault(require("../assets/icons/placeholderImage.svg"));
11
13
  var _AssetManager = require("../helpers/AssetManager");
12
14
  var _View = require("./View");
13
15
  var _IconButton = require("./IconButton");
14
16
  var _ContentLoaderList = require("./ContentLoaderList");
15
- var _reactNative = require("react-native");
16
17
  var _Card = require("./Card");
17
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
19
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
@@ -23,6 +24,7 @@ const FirebaseMedia = exports.FirebaseMedia = /*#__PURE__*/_react.default.memo((
23
24
  borderRadius = '10',
24
25
  borderWidth = 1,
25
26
  borderColor = 'onBackground',
27
+ placeholderIcon,
26
28
  onPress,
27
29
  ...rest
28
30
  }) => {
@@ -103,7 +105,10 @@ const FirebaseMedia = exports.FirebaseMedia = /*#__PURE__*/_react.default.memo((
103
105
  style: styles.placeholder,
104
106
  height: "100%",
105
107
  width: "100%"
106
- }, /*#__PURE__*/_react.default.createElement(_placeholderImage.default, {
108
+ }, placeholderIcon ? /*#__PURE__*/_react.default.createElement(_reactNativePaper.Icon, {
109
+ source: placeholderIcon,
110
+ size: 24
111
+ }) : /*#__PURE__*/_react.default.createElement(_placeholderImage.default, {
107
112
  height: "100%",
108
113
  width: "100%"
109
114
  }))))));
@@ -114,7 +119,9 @@ const styles = _reactNative.StyleSheet.create({
114
119
  width: '100%'
115
120
  },
116
121
  placeholder: {
117
- backgroundColor: '#DBDCDF'
122
+ backgroundColor: '#DBDCDF',
123
+ alignItems: 'center',
124
+ justifyContent: 'center'
118
125
  }
119
126
  });
120
127
  //# sourceMappingURL=FirebaseMedia.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNativeFastImage","_interopRequireDefault","_placeholderImage","_reactNativeVideo","_AssetManager","_View","_IconButton","_ContentLoaderList","_reactNative","_Card","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","FirebaseMedia","exports","React","memo","uri","borderRadius","borderWidth","borderColor","onPress","rest","status","setStatus","useState","firebaseURI","type","setFirebaseURI","useEffect","AssetManager","getAssetURL","then","assetDetails","catch","createElement","Card","bg","mode","View","overflow","height","width","style","styles","fullWidthHeight","onLoad","onError","top","bottom","right","left","position","alignItems","justifyContent","ContentLoaderList","count","radius","IconButton","icon","placeholder","StyleSheet","create","backgroundColor"],"sourceRoot":"../../../src","sources":["components/FirebaseMedia.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNativeFastImage","_interopRequireDefault","_reactNativePaper","_reactNativeVideo","_reactNative","_placeholderImage","_AssetManager","_View","_IconButton","_ContentLoaderList","_Card","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","FirebaseMedia","exports","React","memo","uri","borderRadius","borderWidth","borderColor","placeholderIcon","onPress","rest","status","setStatus","useState","firebaseURI","type","setFirebaseURI","useEffect","AssetManager","getAssetURL","then","assetDetails","catch","createElement","Card","bg","mode","View","overflow","height","width","style","styles","fullWidthHeight","onLoad","onError","top","bottom","right","left","position","alignItems","justifyContent","ContentLoaderList","count","radius","IconButton","icon","placeholder","Icon","size","StyleSheet","create","backgroundColor"],"sourceRoot":"../../../src","sources":["components/FirebaseMedia.tsx"],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useAppVersionCheck = void 0;
7
+ var _reactQuery = require("@tanstack/react-query");
8
+ var _firestore = _interopRequireDefault(require("@react-native-firebase/firestore"));
9
+ var _reactNativeConfig = _interopRequireDefault(require("react-native-config"));
10
+ var _reactNative = require("react-native");
11
+ var _reactNativeDeviceInfo = require("react-native-device-info");
12
+ var _react = require("react");
13
+ var _semver = _interopRequireDefault(require("semver"));
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+ const useAppVersionCheck = ({
16
+ Alert
17
+ }) => {
18
+ const storeUrl = _reactNative.Platform.OS === 'android' ? _reactNativeConfig.default.PLAY_STORE_URL : _reactNativeConfig.default.APP_STORE_URL;
19
+
20
+ // Check app version only for production builds running in non release mode.
21
+ const shouldCheckAppVersion = Boolean(storeUrl) && !__DEV__;
22
+ const {
23
+ data: {
24
+ isRequiredUpdate
25
+ } = {},
26
+ refetch
27
+ } = (0, _reactQuery.useQuery)(['APP_VERSION'], async () => {
28
+ const data = (await (0, _firestore.default)().doc('_firebase_ext_/softwareVersions').get()).data();
29
+ const currentAppVersion = (0, _reactNativeDeviceInfo.getVersion)();
30
+ const {
31
+ minimumSupportedVersion,
32
+ latestVersion
33
+ } = data?.[_reactNativeConfig.default.BUNDLE_IDENTIFIER || '']?.[_reactNative.Platform.OS] || {};
34
+ if (!_semver.default.valid(currentAppVersion) || !_semver.default.valid(minimumSupportedVersion) || !_semver.default.valid(latestVersion)) {
35
+ return {
36
+ isOptionalUpdate: false,
37
+ isRequiredUpdate: false
38
+ };
39
+ }
40
+ const isOptionalUpdate = _semver.default.gt(latestVersion, currentAppVersion);
41
+ // eslint-disable-next-line @typescript-eslint/no-shadow
42
+ const isRequiredUpdate = _semver.default.gt(minimumSupportedVersion, currentAppVersion);
43
+ if (isRequiredUpdate || isOptionalUpdate) {
44
+ Alert.show({
45
+ isDismissable: !isRequiredUpdate,
46
+ // Allow dismissal only if the update is not required
47
+ title: 'New Update ✨',
48
+ description: 'A new version of the app is available. Please update to the latest version for the best experience.',
49
+ buttons: isRequiredUpdate ? [{
50
+ label: 'Update',
51
+ onPress: () => storeUrl && _reactNative.Linking.openURL(storeUrl)
52
+ }] : [{
53
+ label: 'Cancel'
54
+ }, {
55
+ label: 'Update',
56
+ onPress: () => storeUrl && _reactNative.Linking.openURL(storeUrl)
57
+ }]
58
+ });
59
+ }
60
+ return {
61
+ isOptionalUpdate,
62
+ isRequiredUpdate
63
+ };
64
+ }, {
65
+ enabled: shouldCheckAppVersion,
66
+ staleTime: Infinity
67
+ });
68
+ (0, _react.useEffect)(() => {
69
+ // For required updates, checking if the app version meets the minimum requirement when the app comes to the foreground.
70
+ // This handles the scenario where the user navigates to the store and returns without updating the app.
71
+ const subscription = _reactNative.AppState.addEventListener('change', state => {
72
+ if (state === 'active' && isRequiredUpdate) {
73
+ refetch();
74
+ }
75
+ });
76
+ return subscription.remove;
77
+ }, [isRequiredUpdate, refetch]);
78
+ };
79
+ exports.useAppVersionCheck = useAppVersionCheck;
80
+ //# sourceMappingURL=useAppVersionCheck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactQuery","require","_firestore","_interopRequireDefault","_reactNativeConfig","_reactNative","_reactNativeDeviceInfo","_react","_semver","obj","__esModule","default","useAppVersionCheck","Alert","storeUrl","Platform","OS","Config","PLAY_STORE_URL","APP_STORE_URL","shouldCheckAppVersion","Boolean","__DEV__","data","isRequiredUpdate","refetch","useQuery","firestore","doc","get","currentAppVersion","getVersion","minimumSupportedVersion","latestVersion","BUNDLE_IDENTIFIER","semver","valid","isOptionalUpdate","gt","show","isDismissable","title","description","buttons","label","onPress","Linking","openURL","enabled","staleTime","Infinity","useEffect","subscription","AppState","addEventListener","state","remove","exports"],"sourceRoot":"../../../src","sources":["hooks/useAppVersionCheck.ts"],"mappings":"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"}
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  var _exportNames = {
7
+ useAppVersionCheck: true,
7
8
  AssetManager: true,
8
9
  Currency: true,
9
10
  useCustomerQueries: true,
@@ -51,6 +52,12 @@ Object.defineProperty(exports, "TSingleSnapBottomSheetRef", {
51
52
  return _useSingleSnapBottomSheetRef.TSingleSnapBottomSheetRef;
52
53
  }
53
54
  });
55
+ Object.defineProperty(exports, "useAppVersionCheck", {
56
+ enumerable: true,
57
+ get: function () {
58
+ return _useAppVersionCheck.useAppVersionCheck;
59
+ }
60
+ });
54
61
  Object.defineProperty(exports, "useCheckCustomer", {
55
62
  enumerable: true,
56
63
  get: function () {
@@ -75,6 +82,7 @@ Object.defineProperty(exports, "useSingleSnapBottomSheetRef", {
75
82
  return _useSingleSnapBottomSheetRef.useSingleSnapBottomSheetRef;
76
83
  }
77
84
  });
85
+ var _useAppVersionCheck = require("./hooks/useAppVersionCheck");
78
86
  var _AssetManager = require("./helpers/AssetManager");
79
87
  var _currency = require("./utils/currency");
80
88
  var _useCustomer = require("./hooks/useCustomer");
@@ -1 +1 @@
1
- {"version":3,"names":["_AssetManager","require","_currency","_useCustomer","_useCheckCustomer","_SavedCards","_useMultiSnapBottomSheetRef","_useSingleSnapBottomSheetRef","_components","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_auth","_selectBusiness","_analytics"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AAEA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AAEA,IAAAK,2BAAA,GAAAL,OAAA;AAIA,IAAAM,4BAAA,GAAAN,OAAA;AAKA,IAAAO,WAAA,GAAAP,OAAA;AAAAQ,MAAA,CAAAC,IAAA,CAAAF,WAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,WAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,WAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,KAAA,GAAApB,OAAA;AAAAQ,MAAA,CAAAC,IAAA,CAAAW,KAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,KAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,KAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AACA,IAAAU,eAAA,GAAArB,OAAA;AAAAQ,MAAA,CAAAC,IAAA,CAAAY,eAAA,EAAAX,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAU,eAAA,CAAAV,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,eAAA,CAAAV,GAAA;IAAA;EAAA;AAAA;AAEA,IAAAW,UAAA,GAAAtB,OAAA"}
1
+ {"version":3,"names":["_useAppVersionCheck","require","_AssetManager","_currency","_useCustomer","_useCheckCustomer","_SavedCards","_useMultiSnapBottomSheetRef","_useSingleSnapBottomSheetRef","_components","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_auth","_selectBusiness","_analytics"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,mBAAA,GAAAC,OAAA;AAEA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAEA,IAAAG,YAAA,GAAAH,OAAA;AACA,IAAAI,iBAAA,GAAAJ,OAAA;AACA,IAAAK,WAAA,GAAAL,OAAA;AAEA,IAAAM,2BAAA,GAAAN,OAAA;AAIA,IAAAO,4BAAA,GAAAP,OAAA;AAKA,IAAAQ,WAAA,GAAAR,OAAA;AAAAS,MAAA,CAAAC,IAAA,CAAAF,WAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,WAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,WAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,KAAA,GAAArB,OAAA;AAAAS,MAAA,CAAAC,IAAA,CAAAW,KAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,KAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,KAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AACA,IAAAU,eAAA,GAAAtB,OAAA;AAAAS,MAAA,CAAAC,IAAA,CAAAY,eAAA,EAAAX,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAU,eAAA,CAAAV,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,eAAA,CAAAV,GAAA;IAAA;EAAA;AAAA;AAEA,IAAAW,UAAA,GAAAvB,OAAA"}
@@ -1,19 +1,21 @@
1
1
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
2
  import React, { useEffect, useState } from 'react';
3
3
  import FastImage from 'react-native-fast-image';
4
- import PlaceHolderImage from '../assets/icons/placeholderImage.svg';
4
+ import { Icon } from 'react-native-paper';
5
5
  import VideoOriginal from 'react-native-video';
6
+ import { StyleSheet } from 'react-native';
7
+ import PlaceHolderImage from '../assets/icons/placeholderImage.svg';
6
8
  import { AssetManager } from '../helpers/AssetManager';
7
9
  import { View } from './View';
8
10
  import { IconButton } from './IconButton';
9
11
  import { ContentLoaderList } from './ContentLoaderList';
10
- import { StyleSheet } from 'react-native';
11
12
  import { Card } from './Card';
12
13
  export const FirebaseMedia = /*#__PURE__*/React.memo(({
13
14
  uri,
14
15
  borderRadius = '10',
15
16
  borderWidth = 1,
16
17
  borderColor = 'onBackground',
18
+ placeholderIcon,
17
19
  onPress,
18
20
  ...rest
19
21
  }) => {
@@ -94,7 +96,10 @@ export const FirebaseMedia = /*#__PURE__*/React.memo(({
94
96
  style: styles.placeholder,
95
97
  height: "100%",
96
98
  width: "100%"
97
- }, /*#__PURE__*/React.createElement(PlaceHolderImage, {
99
+ }, placeholderIcon ? /*#__PURE__*/React.createElement(Icon, {
100
+ source: placeholderIcon,
101
+ size: 24
102
+ }) : /*#__PURE__*/React.createElement(PlaceHolderImage, {
98
103
  height: "100%",
99
104
  width: "100%"
100
105
  }))))));
@@ -105,7 +110,9 @@ const styles = StyleSheet.create({
105
110
  width: '100%'
106
111
  },
107
112
  placeholder: {
108
- backgroundColor: '#DBDCDF'
113
+ backgroundColor: '#DBDCDF',
114
+ alignItems: 'center',
115
+ justifyContent: 'center'
109
116
  }
110
117
  });
111
118
  //# sourceMappingURL=FirebaseMedia.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useState","FastImage","PlaceHolderImage","VideoOriginal","AssetManager","View","IconButton","ContentLoaderList","StyleSheet","Card","FirebaseMedia","memo","uri","borderRadius","borderWidth","borderColor","onPress","rest","status","setStatus","firebaseURI","type","setFirebaseURI","getAssetURL","then","assetDetails","catch","createElement","_extends","bg","mode","overflow","height","width","style","styles","fullWidthHeight","source","onLoad","onError","top","bottom","right","left","position","alignItems","justifyContent","count","radius","icon","placeholder","create","backgroundColor"],"sourceRoot":"../../../src","sources":["components/FirebaseMedia.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["React","useEffect","useState","FastImage","Icon","VideoOriginal","StyleSheet","PlaceHolderImage","AssetManager","View","IconButton","ContentLoaderList","Card","FirebaseMedia","memo","uri","borderRadius","borderWidth","borderColor","placeholderIcon","onPress","rest","status","setStatus","firebaseURI","type","setFirebaseURI","getAssetURL","then","assetDetails","catch","createElement","_extends","bg","mode","overflow","height","width","style","styles","fullWidthHeight","source","onLoad","onError","top","bottom","right","left","position","alignItems","justifyContent","count","radius","icon","placeholder","size","create","backgroundColor"],"sourceRoot":"../../../src","sources":["components/FirebaseMedia.tsx"],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ import { useQuery } from '@tanstack/react-query';
2
+ import firestore from '@react-native-firebase/firestore';
3
+ import Config from 'react-native-config';
4
+ import { AppState, Linking, Platform } from 'react-native';
5
+ import { getVersion } from 'react-native-device-info';
6
+ import { useEffect } from 'react';
7
+ import semver from 'semver';
8
+ export const useAppVersionCheck = ({
9
+ Alert
10
+ }) => {
11
+ const storeUrl = Platform.OS === 'android' ? Config.PLAY_STORE_URL : Config.APP_STORE_URL;
12
+
13
+ // Check app version only for production builds running in non release mode.
14
+ const shouldCheckAppVersion = Boolean(storeUrl) && !__DEV__;
15
+ const {
16
+ data: {
17
+ isRequiredUpdate
18
+ } = {},
19
+ refetch
20
+ } = useQuery(['APP_VERSION'], async () => {
21
+ const data = (await firestore().doc('_firebase_ext_/softwareVersions').get()).data();
22
+ const currentAppVersion = getVersion();
23
+ const {
24
+ minimumSupportedVersion,
25
+ latestVersion
26
+ } = data?.[Config.BUNDLE_IDENTIFIER || '']?.[Platform.OS] || {};
27
+ if (!semver.valid(currentAppVersion) || !semver.valid(minimumSupportedVersion) || !semver.valid(latestVersion)) {
28
+ return {
29
+ isOptionalUpdate: false,
30
+ isRequiredUpdate: false
31
+ };
32
+ }
33
+ const isOptionalUpdate = semver.gt(latestVersion, currentAppVersion);
34
+ // eslint-disable-next-line @typescript-eslint/no-shadow
35
+ const isRequiredUpdate = semver.gt(minimumSupportedVersion, currentAppVersion);
36
+ if (isRequiredUpdate || isOptionalUpdate) {
37
+ Alert.show({
38
+ isDismissable: !isRequiredUpdate,
39
+ // Allow dismissal only if the update is not required
40
+ title: 'New Update ✨',
41
+ description: 'A new version of the app is available. Please update to the latest version for the best experience.',
42
+ buttons: isRequiredUpdate ? [{
43
+ label: 'Update',
44
+ onPress: () => storeUrl && Linking.openURL(storeUrl)
45
+ }] : [{
46
+ label: 'Cancel'
47
+ }, {
48
+ label: 'Update',
49
+ onPress: () => storeUrl && Linking.openURL(storeUrl)
50
+ }]
51
+ });
52
+ }
53
+ return {
54
+ isOptionalUpdate,
55
+ isRequiredUpdate
56
+ };
57
+ }, {
58
+ enabled: shouldCheckAppVersion,
59
+ staleTime: Infinity
60
+ });
61
+ useEffect(() => {
62
+ // For required updates, checking if the app version meets the minimum requirement when the app comes to the foreground.
63
+ // This handles the scenario where the user navigates to the store and returns without updating the app.
64
+ const subscription = AppState.addEventListener('change', state => {
65
+ if (state === 'active' && isRequiredUpdate) {
66
+ refetch();
67
+ }
68
+ });
69
+ return subscription.remove;
70
+ }, [isRequiredUpdate, refetch]);
71
+ };
72
+ //# sourceMappingURL=useAppVersionCheck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useQuery","firestore","Config","AppState","Linking","Platform","getVersion","useEffect","semver","useAppVersionCheck","Alert","storeUrl","OS","PLAY_STORE_URL","APP_STORE_URL","shouldCheckAppVersion","Boolean","__DEV__","data","isRequiredUpdate","refetch","doc","get","currentAppVersion","minimumSupportedVersion","latestVersion","BUNDLE_IDENTIFIER","valid","isOptionalUpdate","gt","show","isDismissable","title","description","buttons","label","onPress","openURL","enabled","staleTime","Infinity","subscription","addEventListener","state","remove"],"sourceRoot":"../../../src","sources":["hooks/useAppVersionCheck.ts"],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ export { useAppVersionCheck } from './hooks/useAppVersionCheck';
1
2
  export { AssetManager } from './helpers/AssetManager';
2
3
  export { Currency } from './utils/currency';
3
4
  export { useCustomerQueries } from './hooks/useCustomer';
@@ -1 +1 @@
1
- {"version":3,"names":["AssetManager","Currency","useCustomerQueries","useCheckCustomer","SavedCards","useMultiSnapBottomSheetRef","TMultiSnapBottomSheetRef","useSingleSnapBottomSheetRef","TSingleSnapBottomSheetRef","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,cAAc,cAAc;AAC5B,cAAc,QAAQ;AACtB,cAAc,kBAAkB;AAEhC,SAASC,SAAS,QAAQ,mBAAmB"}
1
+ {"version":3,"names":["useAppVersionCheck","AssetManager","Currency","useCustomerQueries","useCheckCustomer","SavedCards","useMultiSnapBottomSheetRef","TMultiSnapBottomSheetRef","useSingleSnapBottomSheetRef","TSingleSnapBottomSheetRef","Analytics"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,SAASA,kBAAkB,QAAQ,4BAA4B;AAE/D,SAASC,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,cAAc,cAAc;AAC5B,cAAc,QAAQ;AACtB,cAAc,kBAAkB;AAEhC,SAASC,SAAS,QAAQ,mBAAmB"}
@@ -6,9 +6,10 @@ import { ThemeType } from '../theme';
6
6
  type RestyleProps = SpacingProps<ThemeType> & SpacingShorthandProps<ThemeType> & LayoutProps<ThemeType> & PositionProps<ThemeType> & BorderProps<ThemeType> & BackgroundColorProps<ThemeType> & BackgroundColorShorthandProps<ThemeType>;
7
7
  type TFirebaseMedia = {
8
8
  uri: string;
9
+ placeholderIcon?: string;
9
10
  onPress?: () => void;
10
11
  };
11
12
  type Props = Omit<RestyleProps & FastImageProps & TFirebaseMedia & VideoProperties, 'source'>;
12
- export declare const FirebaseMedia: React.MemoExoticComponent<({ uri, borderRadius, borderWidth, borderColor, onPress, ...rest }: Props) => JSX.Element>;
13
+ export declare const FirebaseMedia: React.MemoExoticComponent<({ uri, borderRadius, borderWidth, borderColor, placeholderIcon, onPress, ...rest }: Props) => JSX.Element>;
13
14
  export {};
14
15
  //# sourceMappingURL=FirebaseMedia.d.ts.map
@@ -1 +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;AAQrC,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;IACZ,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,KAAK,KAAK,GAAG,IAAI,CACf,YAAY,GAAG,cAAc,GAAG,cAAc,GAAG,eAAe,EAChE,QAAQ,CACT,CAAC;AAEF,eAAO,MAAM,aAAa,gGAQrB,KAAK,iBAkGT,CAAC"}
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;AAMrD,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;IACZ,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,KAAK,KAAK,GAAG,IAAI,CACf,YAAY,GAAG,cAAc,GAAG,cAAc,GAAG,eAAe,EAChE,QAAQ,CACT,CAAC;AAEF,eAAO,MAAM,aAAa,iHASrB,KAAK,iBAsGT,CAAC"}
@@ -3,7 +3,7 @@ import { FirebaseStorageTypes } from '@react-native-firebase/storage';
3
3
  type TaskSnapshot = FirebaseStorageTypes.TaskSnapshot;
4
4
  export declare class AssetManager {
5
5
  private static assetCache;
6
- static detectTypeFromPath(path: string): "video" | "image" | null;
6
+ static detectTypeFromPath(path: string): "image" | "video" | null;
7
7
  static clearCache(): Promise<void>;
8
8
  static uploadImage({ uri, base64, path, type, setProgress, }: {
9
9
  uri: string;
@@ -0,0 +1,5 @@
1
+ import { Alert as AlertFromLibrary } from '../components';
2
+ export declare const useAppVersionCheck: ({ Alert, }: {
3
+ Alert: typeof AlertFromLibrary;
4
+ }) => void;
5
+ //# sourceMappingURL=useAppVersionCheck.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAppVersionCheck.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useAppVersionCheck.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,IAAI,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAE1D,eAAO,MAAM,kBAAkB;WAGtB,uBAAuB;UAiF/B,CAAC"}
@@ -1,3 +1,4 @@
1
+ export { useAppVersionCheck } from './hooks/useAppVersionCheck';
1
2
  export { AssetManager } from './helpers/AssetManager';
2
3
  export { Currency } from './utils/currency';
3
4
  export { useCustomerQueries } from './hooks/useCustomer';
@@ -1 +1 @@
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,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,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,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,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.80",
3
+ "version": "0.1.82",
4
4
  "description": "Common Code",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -67,6 +67,7 @@
67
67
  "@types/react": "~17.0.21",
68
68
  "@types/react-native": "0.70.0",
69
69
  "@types/react-native-video": "^5.0.18",
70
+ "@types/semver": "^7",
70
71
  "commitlint": "^17.0.2",
71
72
  "del-cli": "^5.0.0",
72
73
  "eslint": "^8.4.1",
@@ -205,6 +206,7 @@
205
206
  "react-native-size-matters": "^0.4.2",
206
207
  "react-native-uuid": "^2.0.2",
207
208
  "react-native-video": "^5.2.1",
209
+ "semver": "^7.6.3",
208
210
  "yup": "^1.3.2"
209
211
  }
210
212
  }
@@ -10,14 +10,16 @@ import {
10
10
  BackgroundColorShorthandProps,
11
11
  } from '@shopify/restyle';
12
12
  import { VideoProperties } from 'react-native-video';
13
- import PlaceHolderImage from '../assets/icons/placeholderImage.svg';
13
+ import { Icon } from 'react-native-paper';
14
14
  import VideoOriginal from 'react-native-video';
15
+ import { StyleSheet } from 'react-native';
16
+
17
+ import PlaceHolderImage from '../assets/icons/placeholderImage.svg';
15
18
  import { ThemeType } from '../theme';
16
19
  import { AssetManager } from '../helpers/AssetManager';
17
20
  import { View } from './View';
18
21
  import { IconButton } from './IconButton';
19
22
  import { ContentLoaderList } from './ContentLoaderList';
20
- import { StyleSheet } from 'react-native';
21
23
  import { Card } from './Card';
22
24
 
23
25
  type RestyleProps = SpacingProps<ThemeType> &
@@ -30,6 +32,7 @@ type RestyleProps = SpacingProps<ThemeType> &
30
32
 
31
33
  type TFirebaseMedia = {
32
34
  uri: string;
35
+ placeholderIcon?: string;
33
36
  onPress?: () => void;
34
37
  };
35
38
 
@@ -44,6 +47,7 @@ export const FirebaseMedia = React.memo(
44
47
  borderRadius = '10',
45
48
  borderWidth = 1,
46
49
  borderColor = 'onBackground',
50
+ placeholderIcon,
47
51
  onPress,
48
52
  ...rest
49
53
  }: Props) => {
@@ -136,7 +140,11 @@ export const FirebaseMedia = React.memo(
136
140
  <IconButton icon="image-broken-variant" />
137
141
  ) : (
138
142
  <View style={styles.placeholder} height="100%" width="100%">
139
- <PlaceHolderImage height="100%" width="100%" />
143
+ {placeholderIcon ? (
144
+ <Icon source={placeholderIcon} size={24} />
145
+ ) : (
146
+ <PlaceHolderImage height="100%" width="100%" />
147
+ )}
140
148
  </View>
141
149
  ))}
142
150
  </View>
@@ -153,5 +161,7 @@ const styles = StyleSheet.create({
153
161
  },
154
162
  placeholder: {
155
163
  backgroundColor: '#DBDCDF',
164
+ alignItems: 'center',
165
+ justifyContent: 'center',
156
166
  },
157
167
  });
@@ -0,0 +1,94 @@
1
+ import { useQuery } from '@tanstack/react-query';
2
+ import firestore from '@react-native-firebase/firestore';
3
+ import Config from 'react-native-config';
4
+ import { AppState, Linking, Platform } from 'react-native';
5
+ import { getVersion } from 'react-native-device-info';
6
+ import { useEffect } from 'react';
7
+ import semver from 'semver';
8
+ import { Alert as AlertFromLibrary } from '../components';
9
+
10
+ export const useAppVersionCheck = ({
11
+ Alert,
12
+ }: {
13
+ Alert: typeof AlertFromLibrary;
14
+ }) => {
15
+ const storeUrl =
16
+ Platform.OS === 'android' ? Config.PLAY_STORE_URL : Config.APP_STORE_URL;
17
+
18
+ // Check app version only for production builds running in non release mode.
19
+ const shouldCheckAppVersion = Boolean(storeUrl) && !__DEV__;
20
+
21
+ const { data: { isRequiredUpdate } = {}, refetch } = useQuery(
22
+ ['APP_VERSION'],
23
+ async () => {
24
+ const data = (
25
+ await firestore().doc('_firebase_ext_/softwareVersions').get()
26
+ ).data();
27
+
28
+ const currentAppVersion = getVersion();
29
+ const { minimumSupportedVersion, latestVersion } =
30
+ data?.[Config.BUNDLE_IDENTIFIER || '']?.[Platform.OS] || {};
31
+
32
+ if (
33
+ !semver.valid(currentAppVersion) ||
34
+ !semver.valid(minimumSupportedVersion) ||
35
+ !semver.valid(latestVersion)
36
+ ) {
37
+ return {
38
+ isOptionalUpdate: false,
39
+ isRequiredUpdate: false,
40
+ };
41
+ }
42
+
43
+ const isOptionalUpdate = semver.gt(latestVersion, currentAppVersion);
44
+ // eslint-disable-next-line @typescript-eslint/no-shadow
45
+ const isRequiredUpdate = semver.gt(
46
+ minimumSupportedVersion,
47
+ currentAppVersion
48
+ );
49
+
50
+ if (isRequiredUpdate || isOptionalUpdate) {
51
+ Alert.show({
52
+ isDismissable: !isRequiredUpdate, // Allow dismissal only if the update is not required
53
+ title: 'New Update ✨',
54
+ description:
55
+ 'A new version of the app is available. Please update to the latest version for the best experience.',
56
+ buttons: isRequiredUpdate
57
+ ? [
58
+ {
59
+ label: 'Update',
60
+ onPress: () => storeUrl && Linking.openURL(storeUrl),
61
+ },
62
+ ]
63
+ : [
64
+ {
65
+ label: 'Cancel',
66
+ },
67
+ {
68
+ label: 'Update',
69
+ onPress: () => storeUrl && Linking.openURL(storeUrl),
70
+ },
71
+ ],
72
+ });
73
+ }
74
+
75
+ return { isOptionalUpdate, isRequiredUpdate };
76
+ },
77
+ {
78
+ enabled: shouldCheckAppVersion,
79
+ staleTime: Infinity,
80
+ }
81
+ );
82
+
83
+ useEffect(() => {
84
+ // For required updates, checking if the app version meets the minimum requirement when the app comes to the foreground.
85
+ // This handles the scenario where the user navigates to the store and returns without updating the app.
86
+ const subscription = AppState.addEventListener('change', (state) => {
87
+ if (state === 'active' && isRequiredUpdate) {
88
+ refetch();
89
+ }
90
+ });
91
+
92
+ return subscription.remove;
93
+ }, [isRequiredUpdate, refetch]);
94
+ };
package/src/index.tsx CHANGED
@@ -1,3 +1,5 @@
1
+ export { useAppVersionCheck } from './hooks/useAppVersionCheck';
2
+
1
3
  export { AssetManager } from './helpers/AssetManager';
2
4
  export { Currency } from './utils/currency';
3
5