@kiosinc/commons-rn 0.15.7 → 0.17.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/useAuth.js +6 -0
- package/lib/commonjs/hooks/useAuth.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/commonjs/utils/analytics.js +21 -0
- package/lib/commonjs/utils/analytics.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/useAuth.js +6 -0
- package/lib/module/hooks/useAuth.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/module/utils/analytics.js +22 -0
- package/lib/module/utils/analytics.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/useAuth.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/lib/typescript/src/utils/analytics.d.ts +2 -0
- package/lib/typescript/src/utils/analytics.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/useAuth.ts +6 -0
- 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/src/utils/analytics.ts +20 -0
- 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,122 @@
|
|
|
1
|
+
# CustomerProvider
|
|
2
|
+
|
|
3
|
+
Owns the full customer + loyalty lifecycle. Replaces the old scattered hooks (`useCheckCustomer`, `useFetchSquareLoyalty`, `useConnectSquareLoyalty`, `useFetchSquareProgram`, `useConnectSquareCustomer`).
|
|
4
|
+
|
|
5
|
+
## What it does
|
|
6
|
+
|
|
7
|
+
1. Subscribes to Firebase auth — starts setup on login, clears state on logout
|
|
8
|
+
2. Ensures the customer record exists (`getCustomer` / `createCustomer`)
|
|
9
|
+
3. Ensures the Square customer program doc exists (`connectSquareCustomer`) — guarded by a module-level `Set` so it never fires twice for the same `uid:businessId`, even across remounts
|
|
10
|
+
4. Fetches loyalty data — on "does not have loyalty":
|
|
11
|
+
- `autoEnroll=true` (kiosk): calls `connectSquareLoyalty` automatically
|
|
12
|
+
- `autoEnroll=false` (Gusteau): sets `not_enrolled`, waits for `enroll()` call
|
|
13
|
+
5. Classifies all `connectSquareLoyalty` errors so checkout is never blocked
|
|
14
|
+
|
|
15
|
+
## Setup
|
|
16
|
+
|
|
17
|
+
Wrap your authenticated navigator with the provider:
|
|
18
|
+
|
|
19
|
+
```tsx
|
|
20
|
+
import { CustomerProvider } from '@kiosinc/commons-rn';
|
|
21
|
+
|
|
22
|
+
// autoEnroll=true for kiosk (auto-enroll on login)
|
|
23
|
+
// autoEnroll=false for Gusteau (manual enroll via button)
|
|
24
|
+
<CustomerProvider
|
|
25
|
+
autoEnroll
|
|
26
|
+
loyaltyEnabled={isSquareLoyaltyEnabled}>
|
|
27
|
+
<YourNavigator />
|
|
28
|
+
</CustomerProvider>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
`businessId` is read internally from MMKV (`MMKV_KEYS.BUSINESS_ID`) — no prop needed.
|
|
32
|
+
|
|
33
|
+
## Consumer hooks
|
|
34
|
+
|
|
35
|
+
### `useSquareCustomer()` — for checkout
|
|
36
|
+
|
|
37
|
+
```tsx
|
|
38
|
+
import { useSquareCustomer } from '@kiosinc/commons-rn';
|
|
39
|
+
|
|
40
|
+
const { squareCustomerId, customerStatus, customerError } = useSquareCustomer();
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
| Field | Type | Description |
|
|
44
|
+
|---|---|---|
|
|
45
|
+
| `squareCustomerId` | `string \| null` | Pass to `useOptimizedCheckout`. Available even if loyalty is broken. |
|
|
46
|
+
| `customerStatus` | `CustomerStatus` | `idle \| loading \| ready \| error` |
|
|
47
|
+
| `customerError` | `string \| null` | Error message if setup failed |
|
|
48
|
+
|
|
49
|
+
### `useLoyalty()` — for rewards screens
|
|
50
|
+
|
|
51
|
+
```tsx
|
|
52
|
+
import { useLoyalty } from '@kiosinc/commons-rn';
|
|
53
|
+
|
|
54
|
+
const {
|
|
55
|
+
loyaltyStatus,
|
|
56
|
+
isReady,
|
|
57
|
+
loyalty,
|
|
58
|
+
points,
|
|
59
|
+
loyaltyError,
|
|
60
|
+
enroll,
|
|
61
|
+
refetchLoyalty,
|
|
62
|
+
} = useLoyalty();
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
| Field | Type | Description |
|
|
66
|
+
|---|---|---|
|
|
67
|
+
| `loyaltyStatus` | `LoyaltyStatus` | See status machine below |
|
|
68
|
+
| `isReady` | `boolean` | `loyaltyStatus === 'ready'` |
|
|
69
|
+
| `loyalty` | `CustomerLoyalty \| null` | Full loyalty object |
|
|
70
|
+
| `points` | `number` | Available points (0 if not ready) |
|
|
71
|
+
| `loyaltyError` | `string \| null` | Show on error/no_loyalty screens |
|
|
72
|
+
| `enroll()` | `() => void` | Gusteau: call from "Join" button. Noop if already enrolling or autoEnroll=true. |
|
|
73
|
+
| `refetchLoyalty()` | `() => void` | Call after payment to refresh points |
|
|
74
|
+
|
|
75
|
+
## Status machines
|
|
76
|
+
|
|
77
|
+
### `customerStatus`
|
|
78
|
+
```
|
|
79
|
+
idle → loading → ready
|
|
80
|
+
→ error
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### `loyaltyStatus`
|
|
84
|
+
```
|
|
85
|
+
idle → loading → ready
|
|
86
|
+
→ not_enrolled (autoEnroll=false, no loyalty account)
|
|
87
|
+
→ enrolling → ready
|
|
88
|
+
→ error
|
|
89
|
+
→ no_loyalty (merchant has no loyalty program)
|
|
90
|
+
→ error (duplicate customer docs, etc.)
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Error handling
|
|
94
|
+
|
|
95
|
+
`connectSquareLoyalty` errors are classified automatically:
|
|
96
|
+
|
|
97
|
+
| Error message | Outcome |
|
|
98
|
+
|---|---|
|
|
99
|
+
| contains `already has` / `ALREADY_EXISTS` / `already exists` | Refetch → `ready` |
|
|
100
|
+
| contains `More than one` / `more than one` | `loyaltyStatus = 'error'`, message: "Multiple account records found. Contact support." |
|
|
101
|
+
| contains `Square Loyalty not enabled` / `not enabled` | `loyaltyStatus = 'no_loyalty'` |
|
|
102
|
+
| anything else | `loyaltyStatus = 'error'`, raw message shown |
|
|
103
|
+
|
|
104
|
+
## Session reset
|
|
105
|
+
|
|
106
|
+
Provider resets automatically on Firebase auth state change (logout). For kiosk sleep/wake cycles that don't sign out Firebase, sign the user out via `firebase().auth().signOut()` to trigger a full reset.
|
|
107
|
+
|
|
108
|
+
## Gusteau usage
|
|
109
|
+
|
|
110
|
+
```tsx
|
|
111
|
+
// In your business selector screen:
|
|
112
|
+
<CustomerProvider autoEnroll={false} loyaltyEnabled={true}>
|
|
113
|
+
<AppNavigator />
|
|
114
|
+
</CustomerProvider>
|
|
115
|
+
|
|
116
|
+
// In your loyalty join screen:
|
|
117
|
+
const { loyaltyStatus, enroll } = useLoyalty();
|
|
118
|
+
|
|
119
|
+
if (loyaltyStatus === 'not_enrolled') {
|
|
120
|
+
return <Button onPress={enroll} title="Join Loyalty Program" />;
|
|
121
|
+
}
|
|
122
|
+
```
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.classifyLoyaltyError = classifyLoyaltyError;
|
|
7
|
+
function classifyLoyaltyError(message) {
|
|
8
|
+
if (message.includes('already has') || message.includes('ALREADY_EXISTS') || message.toLowerCase().includes('already exists')) {
|
|
9
|
+
return 'refetch';
|
|
10
|
+
}
|
|
11
|
+
if (message.includes('More than one') || message.includes('more than one')) {
|
|
12
|
+
return 'duplicate';
|
|
13
|
+
}
|
|
14
|
+
if (message.includes('Square Loyalty not enabled') || message.toLowerCase().includes('not enabled')) {
|
|
15
|
+
return 'no_loyalty';
|
|
16
|
+
}
|
|
17
|
+
return 'error';
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=classifyLoyaltyError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["classifyLoyaltyError","message","includes","toLowerCase"],"sourceRoot":"../../../../src","sources":["providers/customer/classifyLoyaltyError.ts"],"mappings":";;;;;;AAMO,SAASA,oBAAoBA,CAACC,OAAe,EAAyB;EAC3E,IACEA,OAAO,CAACC,QAAQ,CAAC,aAAa,CAAC,IAC/BD,OAAO,CAACC,QAAQ,CAAC,gBAAgB,CAAC,IAClCD,OAAO,CAACE,WAAW,CAAC,CAAC,CAACD,QAAQ,CAAC,gBAAgB,CAAC,EAChD;IACA,OAAO,SAAS;EAClB;EACA,IAAID,OAAO,CAACC,QAAQ,CAAC,eAAe,CAAC,IAAID,OAAO,CAACC,QAAQ,CAAC,eAAe,CAAC,EAAE;IAC1E,OAAO,WAAW;EACpB;EACA,IACED,OAAO,CAACC,QAAQ,CAAC,4BAA4B,CAAC,IAC9CD,OAAO,CAACE,WAAW,CAAC,CAAC,CAACD,QAAQ,CAAC,aAAa,CAAC,EAC7C;IACA,OAAO,YAAY;EACrB;EACA,OAAO,OAAO;AAChB"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "CustomerProvider", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _CustomerProvider.CustomerProvider;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "useLoyalty", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _useLoyalty.useLoyalty;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "useSquareCustomer", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _useSquareCustomer.useSquareCustomer;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
var _CustomerProvider = require("./CustomerProvider");
|
|
25
|
+
var _useSquareCustomer = require("./useSquareCustomer");
|
|
26
|
+
var _useLoyalty = require("./useLoyalty");
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_CustomerProvider","require","_useSquareCustomer","_useLoyalty"],"sourceRoot":"../../../../src","sources":["providers/customer/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["providers/customer/types.ts"],"mappings":""}
|
|
@@ -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":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAQA,IAAAE,iBAAA,GAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAL,OAAA;AACA,IAAAM,YAAA,GAAAN,OAAA;AACA,IAAAO,OAAA,GAAAP,OAAA;AACA,IAAAQ,YAAA,GAAAR,OAAA;AACA,IAAAS,iBAAA,GAAAT,OAAA;AACA,IAAAU,QAAA,GAAAV,OAAA;AAEA,IAAAW,YAAA,GAAAX,OAAA;AAA4C,SAAAI,uBAAAQ,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAjB,wBAAAiB,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAH,UAAA,SAAAG,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAF,OAAA,EAAAE,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAC,GAAA,CAAAJ,CAAA,UAAAG,CAAA,CAAAE,GAAA,CAAAL,CAAA,OAAAM,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAZ,CAAA,oBAAAY,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAY,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAX,CAAA,EAAAY,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAZ,CAAA,CAAAY,CAAA,YAAAN,CAAA,CAAAR,OAAA,GAAAE,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAc,GAAA,CAAAjB,CAAA,EAAAM,CAAA,GAAAA,CAAA;AAErC,MAAMY,UAAU,GAAGA,CAAC;EACzBC,UAAU;EACVC,YAAY;EACZC;AAKF,CAAC,KAAK;EACJ,MAAM;IAAElB;EAAE,CAAC,GAAG,IAAAmB,4BAAc,EAAC,CAAC;EAC9B,MAAMC,KAAK,GAAG,IAAAC,0BAAQ,EAAC,CAAC;EACxB,MAAMC,WAAW,GAAG,IAAAC,iBAAU,EAACC,iCAAe,CAAC;EAC/C,IAAIC,OAAO,IAAI,CAACH,WAAW,EAAE;IAC3BI,OAAO,CAACC,IAAI,CACV,8EACF,CAAC;EACH;EACA,MAAM;IACJC,gBAAgB;IAChBC,mBAAmB;IACnBC,kBAAkB;IAClBC,cAAc;IACdC;EACF,CAAC,GAAG,IAAAC,+BAAkB,EAAC,CAAC;EACxB,MAAM;IAAEC,IAAI,EAAEC;EAAS,CAAC,GAAGP,gBAAgB,CAAC,CAAC;EAC7C,MAAM;IAAEQ,QAAQ;IAAEC;EAAgB,CAAC,GAAGR,mBAAmB,CAAC,CAAC;EAC3D,MAAM;IAAES,WAAW;IAAEC;EAAmB,CAAC,GAAGR,cAAc,CAAC,CAAC;EAC5D,MAAM,CAACS,iBAAiB,EAAEC,oBAAoB,CAAC,GAAG,IAAAC,eAAQ,EAAC,EAAE,CAAC;EAC9D,MAAM;IAAEC,cAAc;IAAEC;EAAsB,CAAC,GAAGZ,iBAAiB,CAAC,CAAC;EACrE,MAAM;IAAEa;EAAY,CAAC,GAAG,IAAAC,wBAAW,EAAC,CAAC;EAErC,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAIZ,QAAQ,EAAEa,SAAS,EAAE;MACvBP,oBAAoB,CAACN,QAAQ,CAACa,SAAS,CAAC;IAC1C;EACF,CAAC,EAAE,CAACb,QAAQ,EAAEa,SAAS,CAAC,CAAC;EAEzB,MAAM;IACJd,IAAI,EAAEe,KAAK,GAAG,EAAE;IAChBC,UAAU;IACVC,SAAS;IACTC;EACF,CAAC,GAAGtB,kBAAkB,CAAC,CAAC;EAExB,MAAMuB,aAAa,GAAGA,CAAA,KAAM;IAC1B,IAAAC,wBAAgB,EACbC,WAAW,IAAK;MACfnB,QAAQ,CAAC;QACPoB,QAAQ,EAAED,WAAW,CAACE,KAAK;QAC3BC,aAAa,EAAEC,wBAAI,CAACC,EAAE,CAAC;MACzB,CAAC,CAAC;IACJ,CAAC,EACD,MAAM;MACJC,iBAAK,CAACC,IAAI,CAAC;QACTC,KAAK,EAAE/D,CAAC,CAAC,eAAe,CAAC;QACzBgE,WAAW,EAAEhE,CAAC,CAAC,uBAAuB;MACxC,CAAC,CAAC;IACJ,CACF,CAAC;EACH,CAAC;EAED,MAAMiE,aAAa,GAAGA,CAAA,KAAM;IAC1B,IAAI,CAAChB,KAAK,CAACiB,MAAM,IAAI,EAAErB,WAAW,IAAIsB,qBAAQ,CAACC,EAAE,KAAK,KAAK,CAAC,EAAE;MAC5DP,iBAAK,CAACC,IAAI,CAAC;QAAEC,KAAK,EAAE/D,CAAC,CAAC,0BAA0B;MAAE,CAAC,CAAC;MACpD;IACF;IAEA,IAAI,CAACwC,iBAAiB,EAAE;MACtBqB,iBAAK,CAACC,IAAI,CAAC;QAAEC,KAAK,EAAE/D,CAAC,CAAC,6BAA6B;MAAE,CAAC,CAAC;MACvD;IACF;IAEA,IAAIwC,iBAAiB,KAAK,UAAU,EAAE;MACpCxB,UAAU,GAAG,UAAU,CAAC;IAC1B,CAAC,MAAM;MACL,MAAMqD,YAAY,GAAGpB,KAAK,CAACqB,IAAI,CAC5BC,IAAS,IAAKA,IAAI,CAACC,cAAc,KAAKhC,iBACzC,CAAC;MAED,IAAI6B,YAAY,EAAE;QAChBrD,UAAU,GAAGqD,YAAY,CAAC;MAC5B,CAAC,MAAM;QACLR,iBAAK,CAACC,IAAI,CAAC;UAAEC,KAAK,EAAE/D,CAAC,CAAC,kCAAkC;QAAE,CAAC,CAAC;MAC9D;IACF;EACF,CAAC;EAED,MAAMyE,cAAc,GAClB5B,WAAW,IAAI5B,YAAY,IAAIkD,qBAAQ,CAACC,EAAE,KAAK,KAAK,GAChD,CAAC;IAAEI,cAAc,EAAE,UAAU;IAAEE,UAAU,EAAE;EAAK,CAAC,EAAE,GAAGzB,KAAK,CAAC,GAC5DA,KAAK;EAEX,IAAIE,SAAS,EAAE;IACb,oBAAOxE,MAAA,CAAAgB,OAAA,CAAAgF,aAAA,CAAC5F,iBAAA,CAAA6F,iBAAiB,MAAE,CAAC;EAC9B;EAEA,oBACEjG,MAAA,CAAAgB,OAAA,CAAAgF,aAAA,CAAC7F,WAAA,CAAA+F,IAAI;IAACC,IAAI,EAAE;EAAE,gBACZnG,MAAA,CAAAgB,OAAA,CAAAgF,aAAA,CAAC7F,WAAA,CAAA+F,IAAI;IAACE,EAAE,EAAC,IAAI;IAACC,EAAE,EAAC,YAAY;IAACF,IAAI,EAAE;EAAE,gBACpCnG,MAAA,CAAAgB,OAAA,CAAAgF,aAAA,CAAC7F,WAAA,CAAAmG,UAAU;IACT9B,SAAS,EAAED,UAAU,IAAIX,kBAAkB,IAAIK;EAAsB,CACtE,CAAC,eACFjE,MAAA,CAAAgB,OAAA,CAAAgF,aAAA,CAACxF,YAAA,CAAA+F,QAAQ;IACPC,SAAS,EAAE;MAAE3C,iBAAiB;MAAED;IAAmB,CAAE;IACrD6C,cAAc,eACZzG,MAAA,CAAAgB,OAAA,CAAAgF,aAAA,CAAC7F,WAAA,CAAAuG,cAAc;MAACC,UAAU,EAAEpC,UAAW;MAACqC,SAAS,EAAEnC;IAAQ,CAAE,CAC9D;IACDlB,IAAI,EAAEuC,cAAe;IACrBe,4BAA4B,EAAE,KAAM;IACpCC,UAAU,EAAEA,CAAC;MAAEC,IAAI,EAAEnB;IAAK,CAAC,kBACzB5F,MAAA,CAAAgB,OAAA,CAAAgF,aAAA,CAACpF,QAAA,CAAAoG,OAAO;MACNC,UAAU,EAAErD,kBAAmB;MAC/BsD,UAAU,EAAErD,iBAAiB,KAAK+B,IAAI,CAACC,cAAe;MACtDsB,YAAY,EAAE,CAAC,CAAC9E,UAAW;MAC3B0D,UAAU,EAAEH,IAAI,CAACG,UAAW;MAC5BH,IAAI,EAAEA,IAAK;MACXwB,QAAQ,EAAGC,EAAU,IAAK;QACxB,IAAI,CAACzB,IAAI,CAACG,UAAU,EAAE;UACpBpC,WAAW,CAAC0D,EAAE,CAAC;QACjB;MACF,CAAE;MACFC,QAAQ,EAAGzB,cAAsB,IAAK;QACpC/B,oBAAoB,CAAC+B,cAAc,CAAC;QACpC,IAAI,CAACD,IAAI,CAACG,UAAU,EAAE;UACpB/B,cAAc,CAAC;YACbK,SAAS,EAAEwB,cAAc;YACzB0B,SAAS,EAAE/D,QAAQ,CAAC+D,SAAS;YAC7BC,gBAAgB,EAAEhE,QAAQ,CAACgE;UAC7B,CAAC,CAAC;QACJ;MACF;IAAE,CACH,CACD;IACFC,mBAAmB,EACjB3B,cAAc,CAACP,MAAM,GAAG,CAAC,gBACvBvF,MAAA,CAAAgB,OAAA,CAAAgF,aAAA,CAAC7F,WAAA,CAAAuH,IAAI;MAACC,EAAE,EAAC,GAAG;MAACC,OAAO,EAAC;IAAa,GAC/BvG,CAAC,CAAC,wBAAwB,CACvB,CAAC,gBAEPrB,MAAA,CAAAgB,OAAA,CAAAgF,aAAA,CAAC7F,WAAA,CAAAuH,IAAI;MAACE,OAAO,EAAC,WAAW;MAACC,KAAK,EAAC;IAAS,GACtCxG,CAAC,CAAC,sBAAsB,CACrB,CAET;IACDyG,mBAAmB,eACjB9H,MAAA,CAAAgB,OAAA,CAAAgF,aAAA,CAAC7F,WAAA,CAAA+F,IAAI;MAAC6B,UAAU,EAAC;IAAY,gBAC3B/H,MAAA,CAAAgB,OAAA,CAAAgF,aAAA,CAAC7F,WAAA,CAAA6H,MAAM;MACLC,EAAE,EAAC,IAAI;MACPC,OAAO,EAAExE,eAAgB;MACzByE,OAAO,EAAEzD,aAAc;MACvB0D,IAAI,EAAC,MAAM;MACXC,IAAI,EAAC;IAAM,GAEVhH,CAAC,CAAC,iBAAiB,CACd,CACJ;EACP,CACF,CACG,CAAC,EACN,CAAC,CAACgB,UAAU,iBACXrC,MAAA,CAAAgB,OAAA,CAAAgF,aAAA,CAAC7F,WAAA,CAAA+F,IAAI;IACHG,EAAE,EAAC,oBAAoB;IACvBiC,MAAM,EAAE,EAAG;IACXC,OAAO,EAAC,IAAI;IACZC,cAAc,EAAC,eAAe;IAC9BC,aAAa,EAAC,KAAK;IACnBC,KAAK,EAAC;EAAM,gBAEZ1I,MAAA,CAAAgB,OAAA,CAAAgF,aAAA,CAAC7F,WAAA,CAAA+F,IAAI,qBACHlG,MAAA,CAAAgB,OAAA,CAAAgF,aAAA,CAAC7F,WAAA,CAAAuH,IAAI;IAACE,OAAO,EAAC,WAAW;IAACC,KAAK,EAAC;EAAW,GACxCxG,CAAC,CAAC,eAAe,CACd,CAAC,eACPrB,MAAA,CAAAgB,OAAA,CAAAgF,aAAA,CAAC7F,WAAA,CAAAuH,IAAI;IAACE,OAAO,EAAC,YAAY;IAACC,KAAK,EAAC;EAAW,GACzCtF,KACG,CACF,CAAC,eACPvC,MAAA,CAAAgB,OAAA,CAAAgF,aAAA,CAAC7F,WAAA,CAAA6H,MAAM;IACLK,IAAI,EAAC,WAAW;IAChBC,MAAM,EAAE,EAAG;IACXI,KAAK,EAAC,MAAM;IACZC,SAAS,EAAC,QAAQ;IAClBtC,EAAE,EAAC,SAAS;IACZuC,UAAU,EAAE;MAAEf,KAAK,EAAEpF,KAAK,CAACoG,MAAM,CAACC;IAAW,CAAE;IAC/CX,OAAO,EAAE7C;EAAc,GAEtBhB,KAAK,CAACiB,MAAM,GAAG,CAAC,IAAIrB,WAAW,GAC5B7C,CAAC,CAAC,0BAA0B,CAAC,GAC7BA,CAAC,CAAC,mBAAmB,CACnB,CACJ,CAEJ,CAAC;AAEX,CAAC;AAAC0H,OAAA,CAAA3G,UAAA,GAAAA,UAAA"}
|
|
@@ -8,7 +8,13 @@ var _mixpanelReactNative = require("mixpanel-react-native");
|
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
9
|
var _reactNativeConfig = _interopRequireDefault(require("react-native-config"));
|
|
10
10
|
var _auth = _interopRequireDefault(require("@react-native-firebase/auth"));
|
|
11
|
+
var _reactNativeMmkv = require("react-native-mmkv");
|
|
11
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
// Persisted guard so alias fires at most once per install, even across restarts.
|
|
14
|
+
const aliasStorage = new _reactNativeMmkv.MMKV({
|
|
15
|
+
id: 'mixpanel-alias'
|
|
16
|
+
});
|
|
17
|
+
const ALIAS_DONE_KEY = 'mixpanel_alias_done';
|
|
12
18
|
const createTrackFunction = () => {
|
|
13
19
|
return params => {
|
|
14
20
|
if ('properties' in params && params.properties) {
|
|
@@ -41,6 +47,20 @@ const Analytics = exports.Analytics = {
|
|
|
41
47
|
// Registering super properties again on identification.
|
|
42
48
|
registerCustomSuperProperties();
|
|
43
49
|
};
|
|
50
|
+
|
|
51
|
+
// Links the current anonymous distinct_id to the signed-up user id exactly
|
|
52
|
+
// once per install, merging pre-sign-up activity into the authenticated
|
|
53
|
+
// profile. Must be awaited before identify so Mixpanel honors the merge.
|
|
54
|
+
const aliasOnce = async userId => {
|
|
55
|
+
if (!mixpanel || aliasStorage.getBoolean(ALIAS_DONE_KEY)) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
const distinctId = await mixpanel.getDistinctId();
|
|
59
|
+
if (distinctId && distinctId !== userId) {
|
|
60
|
+
mixpanel.alias(userId, distinctId);
|
|
61
|
+
aliasStorage.set(ALIAS_DONE_KEY, true);
|
|
62
|
+
}
|
|
63
|
+
};
|
|
44
64
|
const currentUser = (0, _auth.default)().currentUser;
|
|
45
65
|
if (currentUser?.isAnonymous) {
|
|
46
66
|
// Register custom super properties on app lunch before login/signup.
|
|
@@ -55,6 +75,7 @@ const Analytics = exports.Analytics = {
|
|
|
55
75
|
unregisterSuperProperty: propertyName => mixpanel.unregisterSuperProperty(propertyName),
|
|
56
76
|
track: createTrackFunction(),
|
|
57
77
|
identify,
|
|
78
|
+
aliasOnce,
|
|
58
79
|
profile: {
|
|
59
80
|
set: (key, value) => {
|
|
60
81
|
mixpanel?.getPeople()?.set(key, value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_mixpanelReactNative","require","_reactNative","_reactNativeConfig","_interopRequireDefault","_auth","obj","__esModule","default","createTrackFunction","params","properties","mixpanel","track","eventName","Analytics","exports","init","trackAutomaticEvents","Mixpanel","Config","MIXPANEL_TOKEN","registerCustomSuperProperties","registerSuperProperties","version","Platform","Version","now","Date","toISOString","registerSuperPropertiesOnce","app","URL_SCHEME","platform","OS","first_time_install","identify","userId","currentUser","auth","isAnonymous","uid","unregisterSuperProperty","propertyName","profile","
|
|
1
|
+
{"version":3,"names":["_mixpanelReactNative","require","_reactNative","_reactNativeConfig","_interopRequireDefault","_auth","_reactNativeMmkv","obj","__esModule","default","aliasStorage","MMKV","id","ALIAS_DONE_KEY","createTrackFunction","params","properties","mixpanel","track","eventName","Analytics","exports","init","trackAutomaticEvents","Mixpanel","Config","MIXPANEL_TOKEN","registerCustomSuperProperties","registerSuperProperties","version","Platform","Version","now","Date","toISOString","registerSuperPropertiesOnce","app","URL_SCHEME","platform","OS","first_time_install","identify","userId","aliasOnce","getBoolean","distinctId","getDistinctId","alias","set","currentUser","auth","isAnonymous","uid","unregisterSuperProperty","propertyName","profile","key","value","getPeople","reset","analytics"],"sourceRoot":"../../../src","sources":["utils/analytics.ts"],"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"}
|
|
@@ -46,6 +46,9 @@ export const useAuth = () => {
|
|
|
46
46
|
dispatch(changeUser(auth().currentUser));
|
|
47
47
|
|
|
48
48
|
// On completing sign up
|
|
49
|
+
// Alias before identify so pre-sign-up anonymous activity merges
|
|
50
|
+
// into the new user profile; aliasOnce is a no-op after the first call.
|
|
51
|
+
await analytics.aliasOnce(auth().currentUser.uid);
|
|
49
52
|
analytics.identify(auth().currentUser.uid);
|
|
50
53
|
const now = new Date().toISOString();
|
|
51
54
|
analytics.profile.set(analyticsKeys.registrationDate, now);
|
|
@@ -98,6 +101,9 @@ export const useAuth = () => {
|
|
|
98
101
|
}) => {
|
|
99
102
|
try {
|
|
100
103
|
await confirmationResult.confirm(code);
|
|
104
|
+
// Alias before identify so pre-sign-up anonymous activity merges into
|
|
105
|
+
// the user profile; aliasOnce is a no-op after the first call.
|
|
106
|
+
await analytics.aliasOnce(auth().currentUser.uid);
|
|
101
107
|
analytics.identify(auth().currentUser.uid);
|
|
102
108
|
analytics.profile.set(analyticsKeys.app, Config.URL_SCHEME);
|
|
103
109
|
analytics.track({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useMutation","useQueryClient","auth","changeUser","useAuthenticationDispatch","StackActions","useNavigation","useTranslation","Alert","checkIsRegisteredAPI","signUpAPI","Config","analytics","analyticsKeys","queryKeys","useMMKVString","MMKV_KEYS","acceptTOS","getBusinessData","confirmationResult","useAuth","dispatch","navigation","t","queryClient","setBusinessId","BUSINESS_ID","useSignUp","params","code","confirm","onError","error","show","title","console","log","onSuccess","data","payload","credential","EmailAuthProvider","email","password","currentUser","reauthenticateWithCredential","reload","
|
|
1
|
+
{"version":3,"names":["useMutation","useQueryClient","auth","changeUser","useAuthenticationDispatch","StackActions","useNavigation","useTranslation","Alert","checkIsRegisteredAPI","signUpAPI","Config","analytics","analyticsKeys","queryKeys","useMMKVString","MMKV_KEYS","acceptTOS","getBusinessData","confirmationResult","useAuth","dispatch","navigation","t","queryClient","setBusinessId","BUSINESS_ID","useSignUp","params","code","confirm","onError","error","show","title","console","log","onSuccess","data","payload","credential","EmailAuthProvider","email","password","currentUser","reauthenticateWithCredential","reload","aliasOnce","uid","identify","now","Date","toISOString","profile","set","registrationDate","app","URL_SCHEME","track","eventName","businessId","bizResponse","firstId","businesses","id","invalidateQueries","BUSINESSES","TERMS_AND_CONDITIONS","signOut","catch","popToTop","useIsCheckRegistered","response","isRegistered","navigate","useConfirmPhoneNumber","properties","method","e","useVerifyPhoneNumberForLogin","phoneNumber","signInWithPhoneNumber","description","emailOrPhoneNumber","message","useVerifyPhoneNumber","useResetPassword","sendPasswordResetEmail"],"sourceRoot":"../../../src","sources":["hooks/useAuth.ts"],"mappings":"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"}
|
|
@@ -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 {};
|