@kiosinc/commons-rn 0.15.7 → 0.16.0
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 +20 -0
- package/lib/commonjs/constants/index.js +1 -1
- package/lib/commonjs/constants/index.js.map +1 -1
- package/lib/commonjs/hooks/index.js +0 -7
- package/lib/commonjs/hooks/index.js.map +1 -1
- package/lib/commonjs/hooks/useCustomer.js +0 -86
- package/lib/commonjs/hooks/useCustomer.js.map +1 -1
- package/lib/commonjs/providers/customer/CustomerProvider.js +214 -0
- package/lib/commonjs/providers/customer/CustomerProvider.js.map +1 -0
- package/lib/commonjs/providers/customer/README.md +122 -0
- package/lib/commonjs/providers/customer/classifyLoyaltyError.js +19 -0
- package/lib/commonjs/providers/customer/classifyLoyaltyError.js.map +1 -0
- package/lib/commonjs/providers/customer/index.js +27 -0
- package/lib/commonjs/providers/customer/index.js.map +1 -0
- package/lib/commonjs/providers/customer/types.js +2 -0
- package/lib/commonjs/providers/customer/types.js.map +1 -0
- package/lib/commonjs/providers/customer/useLoyalty.js +25 -0
- package/lib/commonjs/providers/customer/useLoyalty.js.map +1 -0
- package/lib/commonjs/providers/customer/useSquareCustomer.js +21 -0
- package/lib/commonjs/providers/customer/useSquareCustomer.js.map +1 -0
- package/lib/commonjs/providers/index.js +19 -0
- package/lib/commonjs/providers/index.js.map +1 -1
- package/lib/commonjs/screens/SavedCards/SavedCards.js +9 -4
- package/lib/commonjs/screens/SavedCards/SavedCards.js.map +1 -1
- package/lib/module/constants/index.js +1 -1
- package/lib/module/constants/index.js.map +1 -1
- package/lib/module/hooks/index.js +0 -1
- package/lib/module/hooks/index.js.map +1 -1
- package/lib/module/hooks/useCustomer.js +1 -87
- package/lib/module/hooks/useCustomer.js.map +1 -1
- package/lib/module/providers/customer/CustomerProvider.js +204 -0
- package/lib/module/providers/customer/CustomerProvider.js.map +1 -0
- package/lib/module/providers/customer/README.md +122 -0
- package/lib/module/providers/customer/classifyLoyaltyError.js +13 -0
- package/lib/module/providers/customer/classifyLoyaltyError.js.map +1 -0
- package/lib/module/providers/customer/index.js +4 -0
- package/lib/module/providers/customer/index.js.map +1 -0
- package/lib/module/providers/customer/types.js +2 -0
- package/lib/module/providers/customer/types.js.map +1 -0
- package/lib/module/providers/customer/useLoyalty.js +18 -0
- package/lib/module/providers/customer/useLoyalty.js.map +1 -0
- package/lib/module/providers/customer/useSquareCustomer.js +14 -0
- package/lib/module/providers/customer/useSquareCustomer.js.map +1 -0
- package/lib/module/providers/index.js +1 -0
- package/lib/module/providers/index.js.map +1 -1
- package/lib/module/screens/SavedCards/SavedCards.js +10 -5
- package/lib/module/screens/SavedCards/SavedCards.js.map +1 -1
- package/lib/typescript/src/constants/index.d.ts.map +1 -1
- package/lib/typescript/src/hooks/index.d.ts +0 -1
- package/lib/typescript/src/hooks/index.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useCustomer.d.ts +0 -13
- package/lib/typescript/src/hooks/useCustomer.d.ts.map +1 -1
- package/lib/typescript/src/providers/customer/CustomerProvider.d.ts +9 -0
- package/lib/typescript/src/providers/customer/CustomerProvider.d.ts.map +1 -0
- package/lib/typescript/src/providers/customer/classifyLoyaltyError.d.ts +3 -0
- package/lib/typescript/src/providers/customer/classifyLoyaltyError.d.ts.map +1 -0
- package/lib/typescript/src/providers/customer/index.d.ts +5 -0
- package/lib/typescript/src/providers/customer/index.d.ts.map +1 -0
- package/lib/typescript/src/providers/customer/types.d.ts +25 -0
- package/lib/typescript/src/providers/customer/types.d.ts.map +1 -0
- package/lib/typescript/src/providers/customer/useLoyalty.d.ts +11 -0
- package/lib/typescript/src/providers/customer/useLoyalty.d.ts.map +1 -0
- package/lib/typescript/src/providers/customer/useSquareCustomer.d.ts +7 -0
- package/lib/typescript/src/providers/customer/useSquareCustomer.d.ts.map +1 -0
- package/lib/typescript/src/providers/index.d.ts +2 -0
- package/lib/typescript/src/providers/index.d.ts.map +1 -1
- package/lib/typescript/src/screens/SavedCards/SavedCards.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/constants/index.ts +1 -1
- package/src/hooks/index.ts +0 -1
- package/src/hooks/useCustomer.ts +0 -129
- package/src/providers/customer/CustomerProvider.tsx +272 -0
- package/src/providers/customer/README.md +122 -0
- package/src/providers/customer/classifyLoyaltyError.ts +25 -0
- package/src/providers/customer/index.ts +4 -0
- package/src/providers/customer/types.ts +34 -0
- package/src/providers/customer/useLoyalty.ts +27 -0
- package/src/providers/customer/useSquareCustomer.ts +19 -0
- package/src/providers/index.ts +6 -0
- package/src/screens/SavedCards/SavedCards.tsx +10 -3
- package/lib/commonjs/hooks/useCheckCustomer.js +0 -57
- package/lib/commonjs/hooks/useCheckCustomer.js.map +0 -1
- package/lib/module/hooks/useCheckCustomer.js +0 -49
- package/lib/module/hooks/useCheckCustomer.js.map +0 -1
- package/lib/typescript/src/hooks/useCheckCustomer.d.ts +0 -5
- package/lib/typescript/src/hooks/useCheckCustomer.d.ts.map +0 -1
- package/src/hooks/useCheckCustomer.ts +0 -49
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useLoyalty = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _CustomerProvider = require("./CustomerProvider");
|
|
9
|
+
const useLoyalty = () => {
|
|
10
|
+
const ctx = (0, _react.useContext)(_CustomerProvider.CustomerContext);
|
|
11
|
+
if (!ctx) {
|
|
12
|
+
throw new Error('useLoyalty must be used within CustomerProvider');
|
|
13
|
+
}
|
|
14
|
+
return {
|
|
15
|
+
loyaltyStatus: ctx.loyaltyStatus,
|
|
16
|
+
isReady: ctx.loyaltyStatus === 'ready',
|
|
17
|
+
loyalty: ctx.loyalty,
|
|
18
|
+
points: ctx.points,
|
|
19
|
+
loyaltyError: ctx.loyaltyError,
|
|
20
|
+
enroll: ctx.enroll,
|
|
21
|
+
refetchLoyalty: ctx.refetchLoyalty
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
exports.useLoyalty = useLoyalty;
|
|
25
|
+
//# sourceMappingURL=useLoyalty.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_CustomerProvider","useLoyalty","ctx","useContext","CustomerContext","Error","loyaltyStatus","isReady","loyalty","points","loyaltyError","enroll","refetchLoyalty","exports"],"sourceRoot":"../../../../src","sources":["providers/customer/useLoyalty.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AAGO,MAAME,UAAU,GAAGA,CAAA,KAQrB;EACH,MAAMC,GAAG,GAAG,IAAAC,iBAAU,EAACC,iCAAe,CAAC;EACvC,IAAI,CAACF,GAAG,EAAE;IACR,MAAM,IAAIG,KAAK,CAAC,iDAAiD,CAAC;EACpE;EACA,OAAO;IACLC,aAAa,EAAEJ,GAAG,CAACI,aAAa;IAChCC,OAAO,EAAEL,GAAG,CAACI,aAAa,KAAK,OAAO;IACtCE,OAAO,EAAEN,GAAG,CAACM,OAAO;IACpBC,MAAM,EAAEP,GAAG,CAACO,MAAM;IAClBC,YAAY,EAAER,GAAG,CAACQ,YAAY;IAC9BC,MAAM,EAAET,GAAG,CAACS,MAAM;IAClBC,cAAc,EAAEV,GAAG,CAACU;EACtB,CAAC;AACH,CAAC;AAACC,OAAA,CAAAZ,UAAA,GAAAA,UAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useSquareCustomer = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _CustomerProvider = require("./CustomerProvider");
|
|
9
|
+
const useSquareCustomer = () => {
|
|
10
|
+
const ctx = (0, _react.useContext)(_CustomerProvider.CustomerContext);
|
|
11
|
+
if (!ctx) {
|
|
12
|
+
throw new Error('useSquareCustomer must be used within CustomerProvider');
|
|
13
|
+
}
|
|
14
|
+
return {
|
|
15
|
+
customerStatus: ctx.customerStatus,
|
|
16
|
+
squareCustomerId: ctx.squareCustomerId,
|
|
17
|
+
customerError: ctx.customerError
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
exports.useSquareCustomer = useSquareCustomer;
|
|
21
|
+
//# sourceMappingURL=useSquareCustomer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_CustomerProvider","useSquareCustomer","ctx","useContext","CustomerContext","Error","customerStatus","squareCustomerId","customerError","exports"],"sourceRoot":"../../../../src","sources":["providers/customer/useSquareCustomer.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AAGO,MAAME,iBAAiB,GAAGA,CAAA,KAI5B;EACH,MAAMC,GAAG,GAAG,IAAAC,iBAAU,EAACC,iCAAe,CAAC;EACvC,IAAI,CAACF,GAAG,EAAE;IACR,MAAM,IAAIG,KAAK,CAAC,wDAAwD,CAAC;EAC3E;EACA,OAAO;IACLC,cAAc,EAAEJ,GAAG,CAACI,cAAc;IAClCC,gBAAgB,EAAEL,GAAG,CAACK,gBAAgB;IACtCC,aAAa,EAAEN,GAAG,CAACM;EACrB,CAAC;AACH,CAAC;AAACC,OAAA,CAAAR,iBAAA,GAAAA,iBAAA"}
|
|
@@ -9,6 +9,12 @@ Object.defineProperty(exports, "AuthenticationProvider", {
|
|
|
9
9
|
return _AuthenticationProvider.AuthenticationProvider;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
+
Object.defineProperty(exports, "CustomerProvider", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _customer.CustomerProvider;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
12
18
|
Object.defineProperty(exports, "changeUser", {
|
|
13
19
|
enumerable: true,
|
|
14
20
|
get: function () {
|
|
@@ -27,6 +33,19 @@ Object.defineProperty(exports, "useAuthenticationDispatch", {
|
|
|
27
33
|
return _AuthenticationProvider.useAuthenticationDispatch;
|
|
28
34
|
}
|
|
29
35
|
});
|
|
36
|
+
Object.defineProperty(exports, "useLoyalty", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function () {
|
|
39
|
+
return _customer.useLoyalty;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
Object.defineProperty(exports, "useSquareCustomer", {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
get: function () {
|
|
45
|
+
return _customer.useSquareCustomer;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
30
48
|
var _authentication = require("./authentication/actions/authentication.actions");
|
|
31
49
|
var _AuthenticationProvider = require("./authentication/AuthenticationProvider");
|
|
50
|
+
var _customer = require("./customer");
|
|
32
51
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_authentication","require","_AuthenticationProvider"],"sourceRoot":"../../../src","sources":["providers/index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_authentication","require","_AuthenticationProvider","_customer"],"sourceRoot":"../../../src","sources":["providers/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAD,OAAA;AAKA,IAAAE,SAAA,GAAAF,OAAA"}
|
|
@@ -12,7 +12,7 @@ var _reactI18next = require("react-i18next");
|
|
|
12
12
|
var _reactNative = require("react-native");
|
|
13
13
|
var _square = require("../../utils/square");
|
|
14
14
|
var _useCustomer = require("../../hooks/useCustomer");
|
|
15
|
-
var
|
|
15
|
+
var _CustomerProvider = require("../../providers/customer/CustomerProvider");
|
|
16
16
|
var _CardRow = require("./CardRow");
|
|
17
17
|
var _useApplePay = require("./useApplePay");
|
|
18
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -27,15 +27,20 @@ const SavedCards = ({
|
|
|
27
27
|
t
|
|
28
28
|
} = (0, _reactI18next.useTranslation)();
|
|
29
29
|
const theme = (0, _reactNativePaper.useTheme)();
|
|
30
|
+
const customerCtx = (0, _react.useContext)(_CustomerProvider.CustomerContext);
|
|
31
|
+
if (__DEV__ && !customerCtx) {
|
|
32
|
+
console.warn('SavedCards: CustomerProvider not found in tree — customer setup will not run');
|
|
33
|
+
}
|
|
30
34
|
const {
|
|
31
|
-
|
|
32
|
-
} = (0, _useCheckCustomer.useCheckCustomer)();
|
|
33
|
-
const {
|
|
35
|
+
useFetchCustomer,
|
|
34
36
|
useSaveCustomerCard,
|
|
35
37
|
useFetchSavedCards,
|
|
36
38
|
useDisableCard,
|
|
37
39
|
useUpdateCustomer
|
|
38
40
|
} = (0, _useCustomer.useCustomerQueries)();
|
|
41
|
+
const {
|
|
42
|
+
data: customer
|
|
43
|
+
} = useFetchCustomer();
|
|
39
44
|
const {
|
|
40
45
|
saveCard,
|
|
41
46
|
saveCardLoading
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_components","_reactNativePaper","_reactNativeUuid","_interopRequireDefault","_reactI18next","_reactNative","_square","_useCustomer","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_components","_reactNativePaper","_reactNativeUuid","_interopRequireDefault","_reactI18next","_reactNative","_square","_useCustomer","_CustomerProvider","_CardRow","_useApplePay","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","SavedCards","onCheckout","showApplePay","total","useTranslation","theme","useTheme","customerCtx","useContext","CustomerContext","__DEV__","console","warn","useFetchCustomer","useSaveCustomerCard","useFetchSavedCards","useDisableCard","useUpdateCustomer","useCustomerQueries","data","customer","saveCard","saveCardLoading","disableCard","disableCardLoading","selectedPaymentId","setSelectedPaymentId","useState","updateCustomer","updateCustomerLoading","hasApplePay","useApplePay","useEffect","paymentId","cards","isFetching","isLoading","refetch","handleAddCard","onStartCardEntry","cardDetails","sourceId","nonce","idempotentKey","uuid","v4","Alert","show","title","description","handleUseCard","length","Platform","OS","selectedCard","find","card","linkedObjectId","paymentMethods","isApplePay","createElement","ActivityIndicator","View","flex","px","bg","LineLoader","FlatList","extraData","refreshControl","RefreshControl","refreshing","onRefresh","showsVerticalScrollIndicator","renderItem","item","CardRow","isDisabled","isSelected","isSelectable","onDelete","id","onSelect","addressId","squareCustomerId","ListHeaderComponent","Text","mb","variant","color","ListFooterComponent","alignItems","Button","pt","loading","onPress","icon","mode","height","padding","justifyContent","flexDirection","width","alignSelf","labelStyle","colors","background","exports"],"sourceRoot":"../../../../src","sources":["screens/SavedCards/SavedCards.tsx"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export const EMAIL_REGEX = /^[a-zA-Z0-9.!#$%&'
|
|
1
|
+
export const EMAIL_REGEX = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$|^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[^@\s]+\.[^@\s]+$/;
|
|
2
2
|
export const MMKV_KEYS = {
|
|
3
3
|
BUSINESS_ID: 'BUSINESS_ID'
|
|
4
4
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["EMAIL_REGEX","MMKV_KEYS","BUSINESS_ID","PRIVACY_POLICY","TERMS_OF_SERVICE"],"sourceRoot":"../../../src","sources":["constants/index.ts"],"mappings":"AAAA,OAAO,MAAMA,WAAW,GACtB,
|
|
1
|
+
{"version":3,"names":["EMAIL_REGEX","MMKV_KEYS","BUSINESS_ID","PRIVACY_POLICY","TERMS_OF_SERVICE"],"sourceRoot":"../../../src","sources":["constants/index.ts"],"mappings":"AAAA,OAAO,MAAMA,WAAW,GACtB,0LAA0L;AAE5L,OAAO,MAAMC,SAAS,GAAG;EACvBC,WAAW,EAAE;AACf,CAAC;AAED,OAAO,MAAMC,cAAc,GAAG,wCAAwC;AACtE,OAAO,MAAMC,gBAAgB,GAAG,oCAAoC"}
|
|
@@ -2,7 +2,6 @@ export { useDeactivateAccount } from './useDeactivateAccount';
|
|
|
2
2
|
export { useTermsOfService, acceptTOS } from './useTermsOfService';
|
|
3
3
|
export { useAuth } from './useAuth';
|
|
4
4
|
export { useCustomerQueries } from './useCustomer';
|
|
5
|
-
export { useCheckCustomer } from './useCheckCustomer';
|
|
6
5
|
export { useAppVersionCheck } from './useAppVersionCheck';
|
|
7
6
|
export { useBusinesses } from './useBusinesses';
|
|
8
7
|
export { useLogout } from './useLogout';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useDeactivateAccount","useTermsOfService","acceptTOS","useAuth","useCustomerQueries","
|
|
1
|
+
{"version":3,"names":["useDeactivateAccount","useTermsOfService","acceptTOS","useAuth","useCustomerQueries","useAppVersionCheck","useBusinesses","useLogout","useCreateBusiness","useSaveDeviceDetails","useFirebaseMediaUrl"],"sourceRoot":"../../../src","sources":["hooks/index.ts"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,wBAAwB;AAC7D,SAASC,iBAAiB,EAAEC,SAAS,QAAQ,qBAAqB;AAClE,SAASC,OAAO,QAAQ,WAAW;AACnC,SAASC,kBAAkB,QAAQ,eAAe;AAClD,SAASC,kBAAkB,QAAQ,sBAAsB;AACzD,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,oBAAoB,QAAQ,iBAAiB;AACtD,SAASC,mBAAmB,QAAQ,uBAAuB"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import { useEffect } from 'react';
|
|
2
1
|
import { Alert } from '../components';
|
|
3
2
|
import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';
|
|
4
3
|
import firestore from '@react-native-firebase/firestore';
|
|
5
|
-
import
|
|
6
|
-
import { connectSquareCustomer, connectSquareLoyalty, createCustomer, fetchLoyaltyRewards, fetchSquareLoyalty, getCustomer, saveCustomerAddress, saveCustomerCard, updateCustomerProfile } from '../api/customer';
|
|
4
|
+
import { createCustomer, fetchLoyaltyRewards, getCustomer, saveCustomerAddress, saveCustomerCard, updateCustomerProfile } from '../api/customer';
|
|
7
5
|
import { useMMKVString } from 'react-native-mmkv';
|
|
8
6
|
import { MMKV_KEYS } from '../constants';
|
|
9
7
|
import { queryKeys } from './queryKeys';
|
|
@@ -13,11 +11,6 @@ export const useCustomerQueries = () => {
|
|
|
13
11
|
const user = firebase().currentUser;
|
|
14
12
|
const [selectedBusinessId] = useMMKVString(MMKV_KEYS.BUSINESS_ID);
|
|
15
13
|
const isLoggedIn = user && !user.isAnonymous;
|
|
16
|
-
useEffect(() => {
|
|
17
|
-
if (!isLoggedIn) {
|
|
18
|
-
queryClient.invalidateQueries([queryKeys.LOYALTY, user?.uid]);
|
|
19
|
-
}
|
|
20
|
-
}, [isLoggedIn, queryClient, user?.uid]);
|
|
21
14
|
return {
|
|
22
15
|
useFetchCustomer: () => useQuery([queryKeys.CUSTOMER, user?.uid], async () => {
|
|
23
16
|
if (isLoggedIn) {
|
|
@@ -112,38 +105,6 @@ export const useCustomerQueries = () => {
|
|
|
112
105
|
}, {
|
|
113
106
|
enabled: Boolean(isLoggedIn)
|
|
114
107
|
}),
|
|
115
|
-
useFetchSquareProgram: queryOptions => useQuery([queryKeys.PROGRAM, user?.uid, selectedBusinessId], async () => {
|
|
116
|
-
if (isLoggedIn) {
|
|
117
|
-
const programs = await firestore().collection(`customers/${user?.uid}/programs`).where('type', '==', 'customer').where('businessId', '==', selectedBusinessId).orderBy('updated', 'asc').get();
|
|
118
|
-
if (programs.docs.length > 0) {
|
|
119
|
-
return programs.docs.map(program => program.data())[0];
|
|
120
|
-
} else {
|
|
121
|
-
return null;
|
|
122
|
-
}
|
|
123
|
-
} else {
|
|
124
|
-
return null;
|
|
125
|
-
}
|
|
126
|
-
}, {
|
|
127
|
-
enabled: Boolean(isLoggedIn && selectedBusinessId),
|
|
128
|
-
...queryOptions
|
|
129
|
-
}),
|
|
130
|
-
useFetchSquareLoyalty: queryOptions => useQuery([queryKeys.LOYALTY, user?.uid ?? 'no-user', selectedBusinessId ?? 'no-biz'], async () => {
|
|
131
|
-
const response = await fetchSquareLoyalty(user.uid, selectedBusinessId);
|
|
132
|
-
if (response?.data?.error) {
|
|
133
|
-
throw new Error(response.data.error.message || 'Unknown error occurred');
|
|
134
|
-
}
|
|
135
|
-
return response;
|
|
136
|
-
}, {
|
|
137
|
-
enabled: Boolean(isLoggedIn && user?.uid && selectedBusinessId),
|
|
138
|
-
refetchOnWindowFocus: false,
|
|
139
|
-
refetchOnReconnect: false,
|
|
140
|
-
refetchOnMount: false,
|
|
141
|
-
staleTime: 5 * 60 * 1000,
|
|
142
|
-
cacheTime: 30 * 60 * 1000,
|
|
143
|
-
retry: 0,
|
|
144
|
-
select: res => res?.data,
|
|
145
|
-
...(queryOptions || {})
|
|
146
|
-
}),
|
|
147
108
|
useSaveCustomerCard: () => {
|
|
148
109
|
const mutation = useMutation(async data => {
|
|
149
110
|
if (isLoggedIn) {
|
|
@@ -187,53 +148,6 @@ export const useCustomerQueries = () => {
|
|
|
187
148
|
disableCardLoading: mutation.isLoading
|
|
188
149
|
};
|
|
189
150
|
},
|
|
190
|
-
useConnectSquareLoyalty: () => {
|
|
191
|
-
const mutation = useMutation(async () => {
|
|
192
|
-
if (isLoggedIn && selectedBusinessId) {
|
|
193
|
-
const response = await connectSquareLoyalty(user?.uid, {
|
|
194
|
-
businessId: selectedBusinessId,
|
|
195
|
-
idempotentKey: uuid.v4(),
|
|
196
|
-
uid: user?.uid
|
|
197
|
-
});
|
|
198
|
-
if (response?.data?.error) {
|
|
199
|
-
throw new Error(response.data.error.message || 'Unknown error occurred');
|
|
200
|
-
}
|
|
201
|
-
return response;
|
|
202
|
-
}
|
|
203
|
-
return null;
|
|
204
|
-
}, {
|
|
205
|
-
onSuccess: () => {
|
|
206
|
-
queryClient.invalidateQueries([queryKeys.LOYALTY, user?.uid]);
|
|
207
|
-
}
|
|
208
|
-
});
|
|
209
|
-
return {
|
|
210
|
-
connectSquareLoyalty: mutation.mutate,
|
|
211
|
-
connectLoyaltyLoading: mutation.isLoading
|
|
212
|
-
};
|
|
213
|
-
},
|
|
214
|
-
useConnectSquareCustomer: () => {
|
|
215
|
-
const mutation = useMutation(async () => {
|
|
216
|
-
if (isLoggedIn && selectedBusinessId) {
|
|
217
|
-
await connectSquareCustomer(user?.uid, {
|
|
218
|
-
businessId: selectedBusinessId,
|
|
219
|
-
idempotentKey: uuid.v4(),
|
|
220
|
-
uid: user?.uid
|
|
221
|
-
});
|
|
222
|
-
}
|
|
223
|
-
}, {
|
|
224
|
-
onError: err => Alert.show({
|
|
225
|
-
title: 'Code ' + err?.code,
|
|
226
|
-
description: err?.message
|
|
227
|
-
}),
|
|
228
|
-
onSuccess: () => {
|
|
229
|
-
queryClient.invalidateQueries([queryKeys.PROGRAM, user?.uid]);
|
|
230
|
-
}
|
|
231
|
-
});
|
|
232
|
-
return {
|
|
233
|
-
connectSquare: mutation.mutate,
|
|
234
|
-
connectSquareLoading: mutation.isLoading
|
|
235
|
-
};
|
|
236
|
-
},
|
|
237
151
|
useFetchLoyaltyRewards: options => useQuery([queryKeys.REWARDS, selectedBusinessId], async () => {
|
|
238
152
|
if (selectedBusinessId) return await fetchLoyaltyRewards(selectedBusinessId);else {
|
|
239
153
|
return {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["Alert","useMutation","useQuery","useQueryClient","firestore","createCustomer","fetchLoyaltyRewards","getCustomer","saveCustomerAddress","saveCustomerCard","updateCustomerProfile","useMMKVString","MMKV_KEYS","queryKeys","firebase","useCustomerQueries","queryClient","user","currentUser","selectedBusinessId","BUSINESS_ID","isLoggedIn","isAnonymous","useFetchCustomer","CUSTOMER","uid","select","data","customer","useCreateCustomer","mutation","response","invalidateQueries","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","useSaveCustomerCard","onSuccess","saveCard","saveCardLoading","useDisableCard","documentId","doc","update","isActive","disableCard","disableCardLoading","useFetchLoyaltyRewards","options","REWARDS"],"sourceRoot":"../../../src","sources":["hooks/useCustomer.ts"],"mappings":"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"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import React, { createContext, useCallback, useEffect, useState } from 'react';
|
|
2
|
+
import auth from '@react-native-firebase/auth';
|
|
3
|
+
import firestore from '@react-native-firebase/firestore';
|
|
4
|
+
import { useMMKVString } from 'react-native-mmkv';
|
|
5
|
+
import { useQueryClient } from '@tanstack/react-query';
|
|
6
|
+
import uuid from 'react-native-uuid';
|
|
7
|
+
import { connectSquareCustomer, connectSquareLoyalty, createCustomer, fetchSquareLoyalty, getCustomer } from '../../api/customer';
|
|
8
|
+
import { MMKV_KEYS } from '../../constants';
|
|
9
|
+
import { queryKeys } from '../../hooks/queryKeys';
|
|
10
|
+
import { classifyLoyaltyError } from './classifyLoyaltyError';
|
|
11
|
+
const customerSetupAttempted = new Set();
|
|
12
|
+
export const CustomerContext = /*#__PURE__*/createContext(null);
|
|
13
|
+
export const CustomerProvider = ({
|
|
14
|
+
children,
|
|
15
|
+
autoEnroll,
|
|
16
|
+
loyaltyEnabled
|
|
17
|
+
}) => {
|
|
18
|
+
const queryClient = useQueryClient();
|
|
19
|
+
const [selectedBusinessId] = useMMKVString(MMKV_KEYS.BUSINESS_ID);
|
|
20
|
+
const [uid, setUid] = useState(null);
|
|
21
|
+
const uidRef = React.useRef(null);
|
|
22
|
+
const [customerStatus, setCustomerStatus] = useState('idle');
|
|
23
|
+
const [squareCustomerId, setSquareCustomerId] = useState(null);
|
|
24
|
+
const [customerError, setCustomerError] = useState(null);
|
|
25
|
+
const [loyaltyStatus, setLoyaltyStatus] = useState('idle');
|
|
26
|
+
const [loyalty, setLoyaltyData] = useState(null);
|
|
27
|
+
const [loyaltyError, setLoyaltyError] = useState(null);
|
|
28
|
+
const resetState = useCallback(userId => {
|
|
29
|
+
setCustomerStatus('idle');
|
|
30
|
+
setSquareCustomerId(null);
|
|
31
|
+
setCustomerError(null);
|
|
32
|
+
setLoyaltyStatus('idle');
|
|
33
|
+
setLoyaltyData(null);
|
|
34
|
+
setLoyaltyError(null);
|
|
35
|
+
if (userId) {
|
|
36
|
+
for (const key of [...customerSetupAttempted]) {
|
|
37
|
+
if (key.startsWith(`${userId}:`)) {
|
|
38
|
+
customerSetupAttempted.delete(key);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
queryClient.removeQueries([queryKeys.LOYALTY]);
|
|
43
|
+
queryClient.removeQueries([queryKeys.PROGRAM]);
|
|
44
|
+
}, [queryClient]);
|
|
45
|
+
useEffect(() => {
|
|
46
|
+
const unsubscribe = auth().onAuthStateChanged(user => {
|
|
47
|
+
const loggedIn = Boolean(user && !user.isAnonymous);
|
|
48
|
+
if (loggedIn && user) {
|
|
49
|
+
setUid(user.uid);
|
|
50
|
+
uidRef.current = user.uid;
|
|
51
|
+
} else {
|
|
52
|
+
resetState(uidRef.current);
|
|
53
|
+
setUid(null);
|
|
54
|
+
uidRef.current = null;
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
return unsubscribe;
|
|
58
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
59
|
+
}, []);
|
|
60
|
+
useEffect(() => {
|
|
61
|
+
if (!uid || !selectedBusinessId) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
const key = `${uid}:${selectedBusinessId}`;
|
|
65
|
+
if (customerSetupAttempted.has(key)) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
customerSetupAttempted.add(key);
|
|
69
|
+
runCustomerSetup(uid, selectedBusinessId);
|
|
70
|
+
}, [uid, selectedBusinessId]);
|
|
71
|
+
const runCustomerSetup = async (userId, businessId) => {
|
|
72
|
+
const key = `${userId}:${businessId}`;
|
|
73
|
+
setCustomerStatus('loading');
|
|
74
|
+
try {
|
|
75
|
+
const customerRes = await getCustomer(userId);
|
|
76
|
+
if (customerRes?.data?.customer === null) {
|
|
77
|
+
await createCustomer({
|
|
78
|
+
uid: userId
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
const programs = await firestore().collection(`customers/${userId}/programs`).where('type', '==', 'customer').where('businessId', '==', businessId).get();
|
|
82
|
+
let custId = null;
|
|
83
|
+
if (programs.empty) {
|
|
84
|
+
await connectSquareCustomer(userId, {
|
|
85
|
+
businessId,
|
|
86
|
+
uid: userId,
|
|
87
|
+
idempotentKey: uuid.v4()
|
|
88
|
+
});
|
|
89
|
+
const updated = await firestore().collection(`customers/${userId}/programs`).where('type', '==', 'customer').where('businessId', '==', businessId).get();
|
|
90
|
+
if (!updated.empty) {
|
|
91
|
+
custId = updated.docs[0].data().linkedObjectId ?? null;
|
|
92
|
+
}
|
|
93
|
+
} else {
|
|
94
|
+
custId = programs.docs[0].data().linkedObjectId ?? null;
|
|
95
|
+
}
|
|
96
|
+
setSquareCustomerId(custId);
|
|
97
|
+
setCustomerStatus('ready');
|
|
98
|
+
console.log(`[CustomerProvider] Customer ready for ${key}`);
|
|
99
|
+
} catch (err) {
|
|
100
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
101
|
+
console.warn(`[CustomerProvider] Customer setup failed for ${key}: ${msg}`);
|
|
102
|
+
customerSetupAttempted.delete(key);
|
|
103
|
+
setCustomerError(msg);
|
|
104
|
+
setCustomerStatus('error');
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
const fetchLoyaltyData = useCallback(async (userId, businessId) => {
|
|
108
|
+
try {
|
|
109
|
+
const response = await fetchSquareLoyalty(userId, businessId);
|
|
110
|
+
if (response?.data?.error) {
|
|
111
|
+
throw new Error(response.data.error.message || 'Unknown loyalty error');
|
|
112
|
+
}
|
|
113
|
+
setLoyaltyData(response?.data ?? null);
|
|
114
|
+
setLoyaltyStatus('ready');
|
|
115
|
+
setLoyaltyError(null);
|
|
116
|
+
} catch (err) {
|
|
117
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
118
|
+
console.log(`[CustomerProvider] Loyalty fetch failed: ${msg}`);
|
|
119
|
+
if (msg.includes('does not have loyalty')) {
|
|
120
|
+
if (autoEnroll) {
|
|
121
|
+
await attemptEnroll(userId, businessId);
|
|
122
|
+
} else {
|
|
123
|
+
setLoyaltyStatus('not_enrolled');
|
|
124
|
+
}
|
|
125
|
+
} else {
|
|
126
|
+
setLoyaltyError(msg);
|
|
127
|
+
setLoyaltyStatus('error');
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
132
|
+
[autoEnroll]);
|
|
133
|
+
const attemptEnroll = useCallback(async (userId, businessId) => {
|
|
134
|
+
setLoyaltyStatus('enrolling');
|
|
135
|
+
try {
|
|
136
|
+
const response = await connectSquareLoyalty(userId, {
|
|
137
|
+
businessId,
|
|
138
|
+
uid: userId,
|
|
139
|
+
idempotentKey: uuid.v4()
|
|
140
|
+
});
|
|
141
|
+
if (response?.data?.error) {
|
|
142
|
+
throw new Error(response.data.error.message || 'Unknown connect error');
|
|
143
|
+
}
|
|
144
|
+
await fetchLoyaltyData(userId, businessId);
|
|
145
|
+
} catch (err) {
|
|
146
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
147
|
+
console.log(`[CustomerProvider] Loyalty connect failed: ${msg}`);
|
|
148
|
+
const outcome = classifyLoyaltyError(msg);
|
|
149
|
+
if (outcome === 'refetch') {
|
|
150
|
+
await fetchLoyaltyData(userId, businessId);
|
|
151
|
+
} else if (outcome === 'duplicate') {
|
|
152
|
+
setLoyaltyError('Multiple account records found. Contact support.');
|
|
153
|
+
setLoyaltyStatus('error');
|
|
154
|
+
} else if (outcome === 'no_loyalty') {
|
|
155
|
+
setLoyaltyStatus('no_loyalty');
|
|
156
|
+
} else {
|
|
157
|
+
setLoyaltyError(msg);
|
|
158
|
+
setLoyaltyStatus('error');
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}, [fetchLoyaltyData]);
|
|
162
|
+
const runLoyaltySetup = useCallback(async (userId, businessId) => {
|
|
163
|
+
setLoyaltyStatus('loading');
|
|
164
|
+
await fetchLoyaltyData(userId, businessId);
|
|
165
|
+
}, [fetchLoyaltyData]);
|
|
166
|
+
useEffect(() => {
|
|
167
|
+
if (customerStatus !== 'ready' || !uid || !selectedBusinessId) {
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
if (!loyaltyEnabled) {
|
|
171
|
+
setLoyaltyStatus('no_loyalty');
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
runLoyaltySetup(uid, selectedBusinessId);
|
|
175
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
176
|
+
}, [customerStatus, loyaltyEnabled, uid, selectedBusinessId]);
|
|
177
|
+
const enroll = useCallback(() => {
|
|
178
|
+
if (!uid || !selectedBusinessId || loyaltyStatus === 'enrolling') {
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
attemptEnroll(uid, selectedBusinessId);
|
|
182
|
+
}, [uid, selectedBusinessId, loyaltyStatus, attemptEnroll]);
|
|
183
|
+
const refetchLoyalty = useCallback(() => {
|
|
184
|
+
if (!uid || !selectedBusinessId) {
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
fetchLoyaltyData(uid, selectedBusinessId);
|
|
188
|
+
}, [uid, selectedBusinessId, fetchLoyaltyData]);
|
|
189
|
+
const value = {
|
|
190
|
+
customerStatus,
|
|
191
|
+
squareCustomerId,
|
|
192
|
+
customerError,
|
|
193
|
+
loyaltyStatus,
|
|
194
|
+
loyalty,
|
|
195
|
+
points: loyalty?.program?.loyaltyDetails?.points ?? 0,
|
|
196
|
+
loyaltyError,
|
|
197
|
+
enroll,
|
|
198
|
+
refetchLoyalty
|
|
199
|
+
};
|
|
200
|
+
return /*#__PURE__*/React.createElement(CustomerContext.Provider, {
|
|
201
|
+
value: value
|
|
202
|
+
}, children);
|
|
203
|
+
};
|
|
204
|
+
//# sourceMappingURL=CustomerProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","createContext","useCallback","useEffect","useState","auth","firestore","useMMKVString","useQueryClient","uuid","connectSquareCustomer","connectSquareLoyalty","createCustomer","fetchSquareLoyalty","getCustomer","MMKV_KEYS","queryKeys","classifyLoyaltyError","customerSetupAttempted","Set","CustomerContext","CustomerProvider","children","autoEnroll","loyaltyEnabled","queryClient","selectedBusinessId","BUSINESS_ID","uid","setUid","uidRef","useRef","customerStatus","setCustomerStatus","squareCustomerId","setSquareCustomerId","customerError","setCustomerError","loyaltyStatus","setLoyaltyStatus","loyalty","setLoyaltyData","loyaltyError","setLoyaltyError","resetState","userId","key","startsWith","delete","removeQueries","LOYALTY","PROGRAM","unsubscribe","onAuthStateChanged","user","loggedIn","Boolean","isAnonymous","current","has","add","runCustomerSetup","businessId","customerRes","data","customer","programs","collection","where","get","custId","empty","idempotentKey","v4","updated","docs","linkedObjectId","console","log","err","msg","Error","message","String","warn","fetchLoyaltyData","response","error","includes","attemptEnroll","outcome","runLoyaltySetup","enroll","refetchLoyalty","value","points","program","loyaltyDetails","createElement","Provider"],"sourceRoot":"../../../../src","sources":["providers/customer/CustomerProvider.tsx"],"mappings":"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"}
|