@kiosinc/commons-rn 0.1.61 → 0.1.62

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.
Files changed (88) hide show
  1. package/lib/commonjs/api/customer.js +75 -0
  2. package/lib/commonjs/api/customer.js.map +1 -0
  3. package/lib/commonjs/auth/hooks/useAuthentication.js +6 -0
  4. package/lib/commonjs/auth/hooks/useAuthentication.js.map +1 -1
  5. package/lib/commonjs/auth/hooks/useTermsOfService.js +8 -10
  6. package/lib/commonjs/auth/hooks/useTermsOfService.js.map +1 -1
  7. package/lib/commonjs/hooks/useCheckCustomer.js +57 -0
  8. package/lib/commonjs/hooks/useCheckCustomer.js.map +1 -0
  9. package/lib/commonjs/hooks/useCustomer.js +251 -0
  10. package/lib/commonjs/hooks/useCustomer.js.map +1 -0
  11. package/lib/commonjs/index.js +32 -0
  12. package/lib/commonjs/index.js.map +1 -1
  13. package/lib/commonjs/screens/SavedCards/CardRow.js +79 -0
  14. package/lib/commonjs/screens/SavedCards/CardRow.js.map +1 -0
  15. package/lib/commonjs/screens/SavedCards/SavedCards.js +180 -0
  16. package/lib/commonjs/screens/SavedCards/SavedCards.js.map +1 -0
  17. package/lib/commonjs/selectBusiness/queryKeys.js +6 -1
  18. package/lib/commonjs/selectBusiness/queryKeys.js.map +1 -1
  19. package/lib/commonjs/types/customer.d.js +7 -0
  20. package/lib/commonjs/types/customer.d.js.map +1 -0
  21. package/lib/commonjs/utils/checkout.js +11 -0
  22. package/lib/commonjs/utils/checkout.js.map +1 -0
  23. package/lib/commonjs/utils/currency.js +17 -0
  24. package/lib/commonjs/utils/currency.js.map +1 -0
  25. package/lib/commonjs/utils/square.js +39 -0
  26. package/lib/commonjs/utils/square.js.map +1 -0
  27. package/lib/module/api/customer.js +59 -0
  28. package/lib/module/api/customer.js.map +1 -0
  29. package/lib/module/auth/hooks/useAuthentication.js +6 -0
  30. package/lib/module/auth/hooks/useAuthentication.js.map +1 -1
  31. package/lib/module/auth/hooks/useTermsOfService.js +8 -10
  32. package/lib/module/auth/hooks/useTermsOfService.js.map +1 -1
  33. package/lib/module/hooks/useCheckCustomer.js +50 -0
  34. package/lib/module/hooks/useCheckCustomer.js.map +1 -0
  35. package/lib/module/hooks/useCustomer.js +243 -0
  36. package/lib/module/hooks/useCustomer.js.map +1 -0
  37. package/lib/module/index.js +4 -0
  38. package/lib/module/index.js.map +1 -1
  39. package/lib/module/screens/SavedCards/CardRow.js +71 -0
  40. package/lib/module/screens/SavedCards/CardRow.js.map +1 -0
  41. package/lib/module/screens/SavedCards/SavedCards.js +170 -0
  42. package/lib/module/screens/SavedCards/SavedCards.js.map +1 -0
  43. package/lib/module/selectBusiness/queryKeys.js +6 -1
  44. package/lib/module/selectBusiness/queryKeys.js.map +1 -1
  45. package/lib/module/types/customer.d.js +5 -0
  46. package/lib/module/types/customer.d.js.map +1 -0
  47. package/lib/module/utils/checkout.js +4 -0
  48. package/lib/module/utils/checkout.js.map +1 -0
  49. package/lib/module/utils/currency.js +10 -0
  50. package/lib/module/utils/currency.js.map +1 -0
  51. package/lib/module/utils/square.js +36 -0
  52. package/lib/module/utils/square.js.map +1 -0
  53. package/lib/typescript/src/api/customer.d.ts +23 -0
  54. package/lib/typescript/src/api/customer.d.ts.map +1 -0
  55. package/lib/typescript/src/auth/hooks/useAuthentication.d.ts.map +1 -1
  56. package/lib/typescript/src/auth/hooks/useTermsOfService.d.ts.map +1 -1
  57. package/lib/typescript/src/hooks/useCheckCustomer.d.ts +4 -0
  58. package/lib/typescript/src/hooks/useCheckCustomer.d.ts.map +1 -0
  59. package/lib/typescript/src/hooks/useCustomer.d.ts +58 -0
  60. package/lib/typescript/src/hooks/useCustomer.d.ts.map +1 -0
  61. package/lib/typescript/src/index.d.ts +4 -0
  62. package/lib/typescript/src/index.d.ts.map +1 -1
  63. package/lib/typescript/src/screens/SavedCards/CardRow.d.ts +11 -0
  64. package/lib/typescript/src/screens/SavedCards/CardRow.d.ts.map +1 -0
  65. package/lib/typescript/src/screens/SavedCards/SavedCards.d.ts +7 -0
  66. package/lib/typescript/src/screens/SavedCards/SavedCards.d.ts.map +1 -0
  67. package/lib/typescript/src/selectBusiness/queryKeys.d.ts +5 -0
  68. package/lib/typescript/src/selectBusiness/queryKeys.d.ts.map +1 -1
  69. package/lib/typescript/src/utils/checkout.d.ts +3 -0
  70. package/lib/typescript/src/utils/checkout.d.ts.map +1 -0
  71. package/lib/typescript/src/utils/currency.d.ts +5 -0
  72. package/lib/typescript/src/utils/currency.d.ts.map +1 -0
  73. package/lib/typescript/src/utils/square.d.ts +6 -0
  74. package/lib/typescript/src/utils/square.d.ts.map +1 -0
  75. package/package.json +3 -1
  76. package/src/api/customer.ts +112 -0
  77. package/src/auth/hooks/useAuthentication.ts +4 -0
  78. package/src/auth/hooks/useTermsOfService.ts +8 -11
  79. package/src/hooks/useCheckCustomer.ts +42 -0
  80. package/src/hooks/useCustomer.ts +331 -0
  81. package/src/index.tsx +6 -0
  82. package/src/screens/SavedCards/CardRow.tsx +94 -0
  83. package/src/screens/SavedCards/SavedCards.tsx +197 -0
  84. package/src/selectBusiness/queryKeys.ts +5 -0
  85. package/src/types/customer.d.ts +70 -0
  86. package/src/utils/checkout.ts +5 -0
  87. package/src/utils/currency.ts +10 -0
  88. package/src/utils/square.ts +50 -0
@@ -0,0 +1,243 @@
1
+ import { useEffect } from 'react';
2
+ import { useAuthentication } from '../auth';
3
+ import { Alert } from '../components';
4
+ import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';
5
+ import firestore from '@react-native-firebase/firestore';
6
+ import uuid from 'react-native-uuid';
7
+ import { connectSquareCustomer, connectSquareLoyalty, createCustomer, fetchLoyaltyRewards, fetchSquareLoyalty, getCustomer, saveCustomerAddress, saveCustomerCard, updateCustomerProfile } from '../api/customer';
8
+ import { useMMKVString } from 'react-native-mmkv';
9
+ import { MMKV_KEYS } from '../constants';
10
+ import { queryKeys } from '../selectBusiness/queryKeys';
11
+ export const useCustomerQueries = () => {
12
+ const queryClient = useQueryClient();
13
+ const {
14
+ user
15
+ } = useAuthentication();
16
+ const [selectedBusinessId] = useMMKVString(MMKV_KEYS.BUSINESS_ID);
17
+ const isLoggedIn = user && !user.isAnonymous;
18
+ useEffect(() => {
19
+ if (!isLoggedIn) {
20
+ queryClient.invalidateQueries([queryKeys.LOYALTY, user?.uid]);
21
+ }
22
+ }, [isLoggedIn, queryClient, user?.uid]);
23
+ return {
24
+ useFetchCustomer: () => useQuery([queryKeys.CUSTOMER, user?.uid], async () => {
25
+ if (isLoggedIn) {
26
+ return await getCustomer(user.uid);
27
+ } else {
28
+ return null;
29
+ }
30
+ }, {
31
+ select: data => data?.data?.customer
32
+ }),
33
+ useCreateCustomer: () => {
34
+ const mutation = useMutation(async () => {
35
+ if (isLoggedIn) {
36
+ const response = await createCustomer({
37
+ uid: user.uid
38
+ });
39
+ if (response?.data?.customer) {
40
+ await queryClient.invalidateQueries([queryKeys.CUSTOMER, user?.uid]);
41
+ }
42
+ }
43
+ }, {
44
+ onError: err => Alert.show({
45
+ title: 'Code ' + err?.code,
46
+ description: err?.message
47
+ })
48
+ });
49
+ return {
50
+ createCustomerHook: mutation.mutateAsync,
51
+ createCustomerLoading: mutation.isLoading
52
+ };
53
+ },
54
+ useUpdateCustomer: () => {
55
+ const mutation = useMutation(async props => {
56
+ if (isLoggedIn) {
57
+ const response = await updateCustomerProfile({
58
+ uid: user.uid,
59
+ props
60
+ });
61
+ if (response?.data?.customer) {
62
+ queryClient.invalidateQueries([queryKeys.CUSTOMER, user?.uid]);
63
+ }
64
+ }
65
+ }, {
66
+ onError: err => Alert.show({
67
+ title: 'Code ' + err?.code,
68
+ description: err?.message
69
+ })
70
+ });
71
+ return {
72
+ updateCustomer: mutation.mutate,
73
+ updateCustomerLoading: mutation.isLoading
74
+ };
75
+ },
76
+ useSaveCustomerAddress: () => {
77
+ const mutation = useMutation(async address => {
78
+ if (isLoggedIn) {
79
+ const response = await saveCustomerAddress({
80
+ uid: user.uid,
81
+ address
82
+ });
83
+ if (response?.data?.customer) {
84
+ queryClient.invalidateQueries([queryKeys.CUSTOMER, user?.uid]);
85
+ }
86
+ }
87
+ }, {
88
+ onError: err => Alert.show({
89
+ title: 'Code ' + err?.code,
90
+ description: err?.message
91
+ })
92
+ });
93
+ return {
94
+ useSaveAddress: mutation.mutate,
95
+ saveAddressLoading: mutation.isLoading
96
+ };
97
+ },
98
+ useFetchSavedCards: () => useQuery([queryKeys.CARDS, user?.uid], async () => {
99
+ if (isLoggedIn) {
100
+ const payments = await firestore().collection(`customers/${user?.uid}/payments`).orderBy('updated', 'desc').where('isActive', '==', true).get();
101
+ if (payments.docs.length > 0) {
102
+ return payments.docs.map(payment => {
103
+ return {
104
+ ...payment.data(),
105
+ id: payment.id
106
+ };
107
+ });
108
+ } else {
109
+ return [];
110
+ }
111
+ } else {
112
+ return [];
113
+ }
114
+ }, {
115
+ enabled: Boolean(isLoggedIn)
116
+ }),
117
+ useFetchSquareProgram: queryOptions => useQuery([queryKeys.PROGRAM, user?.uid, selectedBusinessId], async () => {
118
+ if (isLoggedIn) {
119
+ const programs = await firestore().collection(`customers/${user?.uid}/programs`).where('type', '==', 'customer').where('businessId', '==', selectedBusinessId).orderBy('updated', 'asc').get();
120
+ if (programs.docs.length > 0) {
121
+ return programs.docs.map(program => program.data())[0];
122
+ } else {
123
+ return null;
124
+ }
125
+ } else {
126
+ return null;
127
+ }
128
+ }, {
129
+ ...queryOptions
130
+ }),
131
+ useFetchSquareLoyalty: queryOptions => useQuery([queryKeys.LOYALTY, user?.uid, selectedBusinessId], async () => {
132
+ if (isLoggedIn && selectedBusinessId) {
133
+ return await fetchSquareLoyalty(user.uid, selectedBusinessId);
134
+ } else {
135
+ return {
136
+ data: null
137
+ };
138
+ }
139
+ }, {
140
+ select: res => res?.data,
141
+ ...queryOptions
142
+ }),
143
+ useSaveCustomerCard: () => {
144
+ const mutation = useMutation(async data => {
145
+ if (isLoggedIn) {
146
+ console.log('here in useSaveCustomerCard');
147
+ const response = await saveCustomerCard({
148
+ uid: user?.uid,
149
+ props: data
150
+ });
151
+ console.log('here in useSaveCustomerCard response', response.data);
152
+ }
153
+ }, {
154
+ onError: err => Alert.show({
155
+ title: 'Code ' + err?.code,
156
+ description: err?.message
157
+ }),
158
+ onSuccess: () => {
159
+ queryClient.invalidateQueries([queryKeys.CARDS, user?.uid]);
160
+ }
161
+ });
162
+ return {
163
+ saveCard: mutation.mutate,
164
+ saveCardLoading: mutation.isLoading
165
+ };
166
+ },
167
+ useDisableCard: () => {
168
+ const mutation = useMutation(async documentId => {
169
+ if (isLoggedIn) {
170
+ return await firestore().collection(`customers/${user?.uid}/payments`).doc(documentId).update({
171
+ isActive: false
172
+ });
173
+ }
174
+ }, {
175
+ onError: err => Alert.show({
176
+ title: 'Code ' + err?.code,
177
+ description: err?.message
178
+ }),
179
+ onSuccess: () => {
180
+ queryClient.invalidateQueries([queryKeys.CARDS, user?.uid]);
181
+ }
182
+ });
183
+ return {
184
+ disableCard: mutation.mutate,
185
+ disableCardLoading: mutation.isLoading
186
+ };
187
+ },
188
+ useConnectSquareLoyalty: () => {
189
+ const mutation = useMutation(async () => {
190
+ if (isLoggedIn && selectedBusinessId) {
191
+ await connectSquareLoyalty(user?.uid, {
192
+ businessId: selectedBusinessId,
193
+ idempotentKey: uuid.v4(),
194
+ uid: user?.uid
195
+ });
196
+ }
197
+ }, {
198
+ onError: err => Alert.show({
199
+ title: 'Code ' + err?.code,
200
+ description: err?.message
201
+ }),
202
+ onSuccess: () => {
203
+ queryClient.invalidateQueries([queryKeys.LOYALTY, user?.uid]);
204
+ }
205
+ });
206
+ return {
207
+ connectSquareLoyalty: mutation.mutate,
208
+ connectLoyaltyLoading: mutation.isLoading
209
+ };
210
+ },
211
+ useConnectSquareCustomer: () => {
212
+ const mutation = useMutation(async () => {
213
+ if (isLoggedIn && selectedBusinessId) {
214
+ await connectSquareCustomer(user?.uid, {
215
+ businessId: selectedBusinessId,
216
+ idempotentKey: uuid.v4(),
217
+ uid: user?.uid
218
+ });
219
+ }
220
+ }, {
221
+ onError: err => Alert.show({
222
+ title: 'Code ' + err?.code,
223
+ description: err?.message
224
+ }),
225
+ onSuccess: () => {
226
+ queryClient.invalidateQueries([queryKeys.PROGRAM, user?.uid]);
227
+ }
228
+ });
229
+ return {
230
+ connectSquare: mutation.mutate,
231
+ connectSquareLoading: mutation.isLoading
232
+ };
233
+ },
234
+ useFetchLoyaltyRewards: () => useQuery([queryKeys.REWARDS, selectedBusinessId], async () => {
235
+ if (selectedBusinessId) return await fetchLoyaltyRewards(selectedBusinessId);else {
236
+ return {};
237
+ }
238
+ }, {
239
+ select: data => data?.data
240
+ })
241
+ };
242
+ };
243
+ //# sourceMappingURL=useCustomer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useAuthentication","Alert","useMutation","useQuery","useQueryClient","firestore","uuid","connectSquareCustomer","connectSquareLoyalty","createCustomer","fetchLoyaltyRewards","fetchSquareLoyalty","getCustomer","saveCustomerAddress","saveCustomerCard","updateCustomerProfile","useMMKVString","MMKV_KEYS","queryKeys","useCustomerQueries","queryClient","user","selectedBusinessId","BUSINESS_ID","isLoggedIn","isAnonymous","invalidateQueries","LOYALTY","uid","useFetchCustomer","CUSTOMER","select","data","customer","useCreateCustomer","mutation","response","onError","err","show","title","code","description","message","createCustomerHook","mutateAsync","createCustomerLoading","isLoading","useUpdateCustomer","props","updateCustomer","mutate","updateCustomerLoading","useSaveCustomerAddress","address","useSaveAddress","saveAddressLoading","useFetchSavedCards","CARDS","payments","collection","orderBy","where","get","docs","length","map","payment","id","enabled","Boolean","useFetchSquareProgram","queryOptions","PROGRAM","programs","program","useFetchSquareLoyalty","res","useSaveCustomerCard","console","log","onSuccess","saveCard","saveCardLoading","useDisableCard","documentId","doc","update","isActive","disableCard","disableCardLoading","useConnectSquareLoyalty","businessId","idempotentKey","v4","connectLoyaltyLoading","useConnectSquareCustomer","connectSquare","connectSquareLoading","useFetchLoyaltyRewards","REWARDS"],"sourceRoot":"../../../src","sources":["hooks/useCustomer.ts"],"mappings":"AAAA,SAASA,SAAS,QAAQ,OAAO;AACjC,SAASC,iBAAiB,QAAQ,SAAS;AAC3C,SAASC,KAAK,QAAQ,eAAe;AACrC,SAASC,WAAW,EAAEC,QAAQ,EAAEC,cAAc,QAAQ,uBAAuB;AAC7E,OAAOC,SAAS,MAAM,kCAAkC;AACxD,OAAOC,IAAI,MAAM,mBAAmB;AAEpC,SACEC,qBAAqB,EACrBC,oBAAoB,EACpBC,cAAc,EACdC,mBAAmB,EACnBC,kBAAkB,EAClBC,WAAW,EACXC,mBAAmB,EACnBC,gBAAgB,EAChBC,qBAAqB,QAChB,iBAAiB;AAMxB,SAASC,aAAa,QAAQ,mBAAmB;AACjD,SAASC,SAAS,QAAQ,cAAc;AACxC,SAASC,SAAS,QAAQ,6BAA6B;AAEvD,OAAO,MAAMC,kBAAkB,GAAGA,CAAA,KAAM;EACtC,MAAMC,WAAW,GAAGhB,cAAc,CAAC,CAAC;EACpC,MAAM;IAAEiB;EAAK,CAAC,GAAGrB,iBAAiB,CAAC,CAAC;EACpC,MAAM,CAACsB,kBAAkB,CAAC,GAAGN,aAAa,CAACC,SAAS,CAACM,WAAW,CAAC;EACjE,MAAMC,UAAU,GAAGH,IAAI,IAAI,CAACA,IAAI,CAACI,WAAW;EAE5C1B,SAAS,CAAC,MAAM;IACd,IAAI,CAACyB,UAAU,EAAE;MACfJ,WAAW,CAACM,iBAAiB,CAAC,CAACR,SAAS,CAACS,OAAO,EAAEN,IAAI,EAAEO,GAAG,CAAC,CAAC;IAC/D;EACF,CAAC,EAAE,CAACJ,UAAU,EAAEJ,WAAW,EAAEC,IAAI,EAAEO,GAAG,CAAC,CAAC;EAExC,OAAO;IACLC,gBAAgB,EAAEA,CAAA,KAChB1B,QAAQ,CACN,CAACe,SAAS,CAACY,QAAQ,EAAET,IAAI,EAAEO,GAAG,CAAC,EAC/B,YAAY;MACV,IAAIJ,UAAU,EAAE;QACd,OAAO,MAAMZ,WAAW,CAACS,IAAI,CAAEO,GAAG,CAAC;MACrC,CAAC,MAAM;QACL,OAAO,IAAI;MACb;IACF,CAAC,EACD;MACEG,MAAM,EAAGC,IAAI,IAAKA,IAAI,EAAEA,IAAI,EAAEC;IAChC,CACF,CAAC;IACHC,iBAAiB,EAAEA,CAAA,KAAM;MACvB,MAAMC,QAAQ,GAAGjC,WAAW,CAC1B,YAAY;QACV,IAAIsB,UAAU,EAAE;UACd,MAAMY,QAAQ,GAAG,MAAM3B,cAAc,CAAC;YAAEmB,GAAG,EAAEP,IAAI,CAAEO;UAAI,CAAC,CAAC;UACzD,IAAIQ,QAAQ,EAAEJ,IAAI,EAAEC,QAAQ,EAAE;YAC5B,MAAMb,WAAW,CAACM,iBAAiB,CAAC,CAClCR,SAAS,CAACY,QAAQ,EAClBT,IAAI,EAAEO,GAAG,CACV,CAAC;UACJ;QACF;MACF,CAAC,EACD;QACES,OAAO,EAAGC,GAAsC,IAC9CrC,KAAK,CAACsC,IAAI,CAAC;UACTC,KAAK,EAAE,OAAO,GAAGF,GAAG,EAAEG,IAAI;UAC1BC,WAAW,EAAEJ,GAAG,EAAEK;QACpB,CAAC;MACL,CACF,CAAC;MAED,OAAO;QACLC,kBAAkB,EAAET,QAAQ,CAACU,WAAW;QACxCC,qBAAqB,EAAEX,QAAQ,CAACY;MAClC,CAAC;IACH,CAAC;IACDC,iBAAiB,EAAEA,CAAA,KAAM;MACvB,MAAMb,QAAQ,GAAGjC,WAAW,CAC1B,MAAO+C,KAA2B,IAAK;QACrC,IAAIzB,UAAU,EAAE;UACd,MAAMY,QAAQ,GAAG,MAAMrB,qBAAqB,CAAC;YAC3Ca,GAAG,EAAEP,IAAI,CAACO,GAAG;YACbqB;UACF,CAAC,CAAC;UAEF,IAAIb,QAAQ,EAAEJ,IAAI,EAAEC,QAAQ,EAAE;YAC5Bb,WAAW,CAACM,iBAAiB,CAAC,CAACR,SAAS,CAACY,QAAQ,EAAET,IAAI,EAAEO,GAAG,CAAC,CAAC;UAChE;QACF;MACF,CAAC,EACD;QACES,OAAO,EAAGC,GAAsC,IAC9CrC,KAAK,CAACsC,IAAI,CAAC;UACTC,KAAK,EAAE,OAAO,GAAGF,GAAG,EAAEG,IAAI;UAC1BC,WAAW,EAAEJ,GAAG,EAAEK;QACpB,CAAC;MACL,CACF,CAAC;MAED,OAAO;QACLO,cAAc,EAAEf,QAAQ,CAACgB,MAAM;QAC/BC,qBAAqB,EAAEjB,QAAQ,CAACY;MAClC,CAAC;IACH,CAAC;IACDM,sBAAsB,EAAEA,CAAA,KAAM;MAC5B,MAAMlB,QAAQ,GAAGjC,WAAW,CAC1B,MAAOoD,OAAgB,IAAK;QAC1B,IAAI9B,UAAU,EAAE;UACd,MAAMY,QAAQ,GAAG,MAAMvB,mBAAmB,CAAC;YACzCe,GAAG,EAAEP,IAAI,CAACO,GAAG;YACb0B;UACF,CAAC,CAAC;UAEF,IAAIlB,QAAQ,EAAEJ,IAAI,EAAEC,QAAQ,EAAE;YAC5Bb,WAAW,CAACM,iBAAiB,CAAC,CAACR,SAAS,CAACY,QAAQ,EAAET,IAAI,EAAEO,GAAG,CAAC,CAAC;UAChE;QACF;MACF,CAAC,EACD;QACES,OAAO,EAAGC,GAAsC,IAC9CrC,KAAK,CAACsC,IAAI,CAAC;UACTC,KAAK,EAAE,OAAO,GAAGF,GAAG,EAAEG,IAAI;UAC1BC,WAAW,EAAEJ,GAAG,EAAEK;QACpB,CAAC;MACL,CACF,CAAC;MAED,OAAO;QACLY,cAAc,EAAEpB,QAAQ,CAACgB,MAAM;QAC/BK,kBAAkB,EAAErB,QAAQ,CAACY;MAC/B,CAAC;IACH,CAAC;IACDU,kBAAkB,EAAEA,CAAA,KAClBtD,QAAQ,CACN,CAACe,SAAS,CAACwC,KAAK,EAAErC,IAAI,EAAEO,GAAG,CAAC,EAC5B,YAAY;MACV,IAAIJ,UAAU,EAAE;QACd,MAAMmC,QAAQ,GAAG,MAAMtD,SAAS,CAAC,CAAC,CAC/BuD,UAAU,CAAE,aAAYvC,IAAI,EAAEO,GAAI,WAAU,CAAC,CAC7CiC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAC1BC,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAC7BC,GAAG,CAAC,CAAC;QACR,IAAIJ,QAAQ,CAACK,IAAI,CAACC,MAAM,GAAG,CAAC,EAAE;UAC5B,OAAON,QAAQ,CAACK,IAAI,CAACE,GAAG,CAAEC,OAAY,IAAK;YACzC,OAAO;cAAE,GAAGA,OAAO,CAACnC,IAAI,CAAC,CAAC;cAAEoC,EAAE,EAAED,OAAO,CAACC;YAAG,CAAC;UAC9C,CAAC,CAAC;QACJ,CAAC,MAAM;UACL,OAAO,EAAE;QACX;MACF,CAAC,MAAM;QACL,OAAO,EAAE;MACX;IACF,CAAC,EACD;MACEC,OAAO,EAAEC,OAAO,CAAC9C,UAAU;IAC7B,CACF,CAAC;IACH+C,qBAAqB,EAAGC,YAAqB,IAC3CrE,QAAQ,CACN,CAACe,SAAS,CAACuD,OAAO,EAAEpD,IAAI,EAAEO,GAAG,EAAEN,kBAAkB,CAAC,EAClD,YAAY;MACV,IAAIE,UAAU,EAAE;QACd,MAAMkD,QAAQ,GAAG,MAAMrE,SAAS,CAAC,CAAC,CAC/BuD,UAAU,CAAE,aAAYvC,IAAI,EAAEO,GAAI,WAAU,CAAC,CAC7CkC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,CAC/BA,KAAK,CAAC,YAAY,EAAE,IAAI,EAAExC,kBAAkB,CAAC,CAC7CuC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CACzBE,GAAG,CAAC,CAAC;QACR,IAAIW,QAAQ,CAACV,IAAI,CAACC,MAAM,GAAG,CAAC,EAAE;UAC5B,OAAOS,QAAQ,CAACV,IAAI,CAACE,GAAG,CAAES,OAAY,IAAKA,OAAO,CAAC3C,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,CAAC,MAAM;UACL,OAAO,IAAI;QACb;MACF,CAAC,MAAM;QACL,OAAO,IAAI;MACb;IACF,CAAC,EACD;MACE,GAAGwC;IACL,CACF,CAAC;IACHI,qBAAqB,EAAGJ,YAAqB,IAC3CrE,QAAQ,CACN,CAACe,SAAS,CAACS,OAAO,EAAEN,IAAI,EAAEO,GAAG,EAAEN,kBAAkB,CAAC,EAClD,YAAY;MACV,IAAIE,UAAU,IAAIF,kBAAkB,EAAE;QACpC,OAAO,MAAMX,kBAAkB,CAACU,IAAI,CAACO,GAAG,EAAEN,kBAAkB,CAAC;MAC/D,CAAC,MAAM;QACL,OAAO;UAAEU,IAAI,EAAE;QAAK,CAAC;MACvB;IACF,CAAC,EACD;MACED,MAAM,EAAG8C,GAAG,IAAKA,GAAG,EAAE7C,IAAI;MAC1B,GAAGwC;IACL,CACF,CAAC;IACHM,mBAAmB,EAAEA,CAAA,KAAM;MACzB,MAAM3C,QAAQ,GAAGjC,WAAW,CAC1B,MAAO8B,IAAqB,IAAK;QAC/B,IAAIR,UAAU,EAAE;UACduD,OAAO,CAACC,GAAG,CAAC,6BAA6B,CAAC;UAC1C,MAAM5C,QAAQ,GAAG,MAAMtB,gBAAgB,CAAC;YACtCc,GAAG,EAAEP,IAAI,EAAEO,GAAG;YACdqB,KAAK,EAAEjB;UACT,CAAC,CAAC;UACF+C,OAAO,CAACC,GAAG,CAAC,sCAAsC,EAAE5C,QAAQ,CAACJ,IAAI,CAAC;QACpE;MACF,CAAC,EACD;QACEK,OAAO,EAAGC,GAAsC,IAC9CrC,KAAK,CAACsC,IAAI,CAAC;UACTC,KAAK,EAAE,OAAO,GAAGF,GAAG,EAAEG,IAAI;UAC1BC,WAAW,EAAEJ,GAAG,EAAEK;QACpB,CAAC,CAAC;QACJsC,SAAS,EAAEA,CAAA,KAAM;UACf7D,WAAW,CAACM,iBAAiB,CAAC,CAACR,SAAS,CAACwC,KAAK,EAAErC,IAAI,EAAEO,GAAG,CAAC,CAAC;QAC7D;MACF,CACF,CAAC;MAED,OAAO;QACLsD,QAAQ,EAAE/C,QAAQ,CAACgB,MAAM;QACzBgC,eAAe,EAAEhD,QAAQ,CAACY;MAC5B,CAAC;IACH,CAAC;IACDqC,cAAc,EAAEA,CAAA,KAAM;MACpB,MAAMjD,QAAQ,GAAGjC,WAAW,CAC1B,MAAOmF,UAAkB,IAAK;QAC5B,IAAI7D,UAAU,EAAE;UACd,OAAO,MAAMnB,SAAS,CAAC,CAAC,CACrBuD,UAAU,CAAE,aAAYvC,IAAI,EAAEO,GAAI,WAAU,CAAC,CAC7C0D,GAAG,CAACD,UAAU,CAAC,CACfE,MAAM,CAAC;YACNC,QAAQ,EAAE;UACZ,CAAC,CAAC;QACN;MACF,CAAC,EACD;QACEnD,OAAO,EAAGC,GAAsC,IAC9CrC,KAAK,CAACsC,IAAI,CAAC;UACTC,KAAK,EAAE,OAAO,GAAGF,GAAG,EAAEG,IAAI;UAC1BC,WAAW,EAAEJ,GAAG,EAAEK;QACpB,CAAC,CAAC;QACJsC,SAAS,EAAEA,CAAA,KAAM;UACf7D,WAAW,CAACM,iBAAiB,CAAC,CAACR,SAAS,CAACwC,KAAK,EAAErC,IAAI,EAAEO,GAAG,CAAC,CAAC;QAC7D;MACF,CACF,CAAC;MAED,OAAO;QACL6D,WAAW,EAAEtD,QAAQ,CAACgB,MAAM;QAC5BuC,kBAAkB,EAAEvD,QAAQ,CAACY;MAC/B,CAAC;IACH,CAAC;IACD4C,uBAAuB,EAAEA,CAAA,KAAM;MAC7B,MAAMxD,QAAQ,GAAGjC,WAAW,CAC1B,YAAY;QACV,IAAIsB,UAAU,IAAIF,kBAAkB,EAAE;UACpC,MAAMd,oBAAoB,CAACa,IAAI,EAAEO,GAAG,EAAE;YACpCgE,UAAU,EAAEtE,kBAAkB;YAC9BuE,aAAa,EAAEvF,IAAI,CAACwF,EAAE,CAAC,CAAW;YAClClE,GAAG,EAAEP,IAAI,EAAEO;UACb,CAAC,CAAC;QACJ;MACF,CAAC,EACD;QACES,OAAO,EAAGC,GAAsC,IAC9CrC,KAAK,CAACsC,IAAI,CAAC;UACTC,KAAK,EAAE,OAAO,GAAGF,GAAG,EAAEG,IAAI;UAC1BC,WAAW,EAAEJ,GAAG,EAAEK;QACpB,CAAC,CAAC;QACJsC,SAAS,EAAEA,CAAA,KAAM;UACf7D,WAAW,CAACM,iBAAiB,CAAC,CAACR,SAAS,CAACS,OAAO,EAAEN,IAAI,EAAEO,GAAG,CAAC,CAAC;QAC/D;MACF,CACF,CAAC;MAED,OAAO;QACLpB,oBAAoB,EAAE2B,QAAQ,CAACgB,MAAM;QACrC4C,qBAAqB,EAAE5D,QAAQ,CAACY;MAClC,CAAC;IACH,CAAC;IACDiD,wBAAwB,EAAEA,CAAA,KAAM;MAC9B,MAAM7D,QAAQ,GAAGjC,WAAW,CAC1B,YAAY;QACV,IAAIsB,UAAU,IAAIF,kBAAkB,EAAE;UACpC,MAAMf,qBAAqB,CAACc,IAAI,EAAEO,GAAG,EAAE;YACrCgE,UAAU,EAAEtE,kBAAkB;YAC9BuE,aAAa,EAAEvF,IAAI,CAACwF,EAAE,CAAC,CAAW;YAClClE,GAAG,EAAEP,IAAI,EAAEO;UACb,CAAC,CAAC;QACJ;MACF,CAAC,EACD;QACES,OAAO,EAAGC,GAAsC,IAC9CrC,KAAK,CAACsC,IAAI,CAAC;UACTC,KAAK,EAAE,OAAO,GAAGF,GAAG,EAAEG,IAAI;UAC1BC,WAAW,EAAEJ,GAAG,EAAEK;QACpB,CAAC,CAAC;QACJsC,SAAS,EAAEA,CAAA,KAAM;UACf7D,WAAW,CAACM,iBAAiB,CAAC,CAACR,SAAS,CAACuD,OAAO,EAAEpD,IAAI,EAAEO,GAAG,CAAC,CAAC;QAC/D;MACF,CACF,CAAC;MAED,OAAO;QACLqE,aAAa,EAAE9D,QAAQ,CAACgB,MAAM;QAC9B+C,oBAAoB,EAAE/D,QAAQ,CAACY;MACjC,CAAC;IACH,CAAC;IACDoD,sBAAsB,EAAEA,CAAA,KACtBhG,QAAQ,CACN,CAACe,SAAS,CAACkF,OAAO,EAAE9E,kBAAkB,CAAC,EACvC,YAAY;MACV,IAAIA,kBAAkB,EACpB,OAAO,MAAMZ,mBAAmB,CAACY,kBAAkB,CAAC,CAAC,KAClD;QACH,OAAO,CAAC,CAAC;MACX;IACF,CAAC,EACD;MACES,MAAM,EAAGC,IAAI,IAAKA,IAAI,EAAEA;IAC1B,CACF;EACJ,CAAC;AACH,CAAC"}
@@ -1,3 +1,7 @@
1
+ export { Currency } from './utils/currency';
2
+ export { useCustomerQueries } from './hooks/useCustomer';
3
+ export { useCheckCustomer } from './hooks/useCheckCustomer';
4
+ export { SavedCards } from './screens/SavedCards/SavedCards';
1
5
  export { useMultiSnapBottomSheetRef, TMultiSnapBottomSheetRef } from './utils/useMultiSnapBottomSheetRef';
2
6
  export { useSingleSnapBottomSheetRef, TSingleSnapBottomSheetRef } from './utils/useSingleSnapBottomSheetRef';
3
7
  export function multiply(a, b) {
@@ -1 +1 @@
1
- {"version":3,"names":["useMultiSnapBottomSheetRef","TMultiSnapBottomSheetRef","useSingleSnapBottomSheetRef","TSingleSnapBottomSheetRef","multiply","a","b","Promise","resolve","analytics"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,SACEA,0BAA0B,EAC1BC,wBAAwB,QACnB,oCAAoC;AAC3C,SACEC,2BAA2B,EAC3BC,yBAAyB,QACpB,qCAAqC;AAE5C,OAAO,SAASC,QAAQA,CAACC,CAAS,EAAEC,CAAS,EAAmB;EAC9D,OAAOC,OAAO,CAACC,OAAO,CAACH,CAAC,GAAGC,CAAC,CAAC;AAC/B;AACA,cAAc,cAAc;AAC5B,cAAc,QAAQ;AACtB,cAAc,kBAAkB;AAEhC,SAASG,SAAS,QAAQ,mBAAmB"}
1
+ {"version":3,"names":["Currency","useCustomerQueries","useCheckCustomer","SavedCards","useMultiSnapBottomSheetRef","TMultiSnapBottomSheetRef","useSingleSnapBottomSheetRef","TSingleSnapBottomSheetRef","multiply","a","b","Promise","resolve","analytics"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,kBAAkB;AAE3C,SAASC,kBAAkB,QAAQ,qBAAqB;AACxD,SAASC,gBAAgB,QAAQ,0BAA0B;AAC3D,SAASC,UAAU,QAAQ,iCAAiC;AAE5D,SACEC,0BAA0B,EAC1BC,wBAAwB,QACnB,oCAAoC;AAC3C,SACEC,2BAA2B,EAC3BC,yBAAyB,QACpB,qCAAqC;AAE5C,OAAO,SAASC,QAAQA,CAACC,CAAS,EAAEC,CAAS,EAAmB;EAC9D,OAAOC,OAAO,CAACC,OAAO,CAACH,CAAC,GAAGC,CAAC,CAAC;AAC/B;AACA,cAAc,cAAc;AAC5B,cAAc,QAAQ;AACtB,cAAc,kBAAkB;AAEhC,SAASG,SAAS,QAAQ,mBAAmB"}
@@ -0,0 +1,71 @@
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
+ import React from 'react';
3
+ import { Alert, Card, IconButton, Text, View } from '../../components';
4
+ import { RadioButton, useTheme } from 'react-native-paper';
5
+ import { useTranslation } from 'react-i18next';
6
+ import { getCardName } from '../../utils/checkout';
7
+ export const CardRow = ({
8
+ card,
9
+ onDelete,
10
+ onSelect,
11
+ isSelectable,
12
+ isSelected,
13
+ isDisabled
14
+ }) => {
15
+ const name = getCardName(card);
16
+ const {
17
+ t
18
+ } = useTranslation();
19
+ const theme = useTheme();
20
+ const onDeleteCard = () => {
21
+ Alert.show({
22
+ title: t('checkout.confirmCardDelete'),
23
+ description: t('checkout.cardDeleteDesc', {
24
+ card: card.cardDetails.last4
25
+ }),
26
+ buttons: [{
27
+ label: t('delete'),
28
+ textColor: theme.colors.error,
29
+ onPress: () => onDelete(card.id)
30
+ }, {
31
+ label: t('cancel'),
32
+ textColor: theme.colors.onSurface
33
+ }]
34
+ });
35
+ };
36
+ return /*#__PURE__*/React.createElement(Card, _extends({
37
+ disabled: isDisabled,
38
+ mode: "outlined",
39
+ borderRadius: "4",
40
+ mb: "8"
41
+ }, isSelectable ? {
42
+ onPress: () => {
43
+ onSelect(card.linkedObjectId);
44
+ }
45
+ } : {}), /*#__PURE__*/React.createElement(View, {
46
+ flexDirection: "row",
47
+ px: "8",
48
+ alignItems: "center",
49
+ justifyContent: "space-between"
50
+ }, isSelectable && /*#__PURE__*/React.createElement(RadioButton.Android, {
51
+ value: card.linkedObjectId,
52
+ status: isSelected ? 'checked' : 'unchecked',
53
+ onPress: () => {
54
+ onSelect(card.linkedObjectId);
55
+ }
56
+ }), /*#__PURE__*/React.createElement(View, {
57
+ paddingStart: "8",
58
+ flexDirection: "row",
59
+ flex: 1,
60
+ alignItems: "center",
61
+ justifyContent: "space-between"
62
+ }, /*#__PURE__*/React.createElement(Text, {
63
+ variant: "bodyMedium"
64
+ }, name), /*#__PURE__*/React.createElement(IconButton, {
65
+ disabled: isDisabled,
66
+ icon: "trash-can-outline",
67
+ bg: "background",
68
+ onPress: onDeleteCard
69
+ }))));
70
+ };
71
+ //# sourceMappingURL=CardRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Alert","Card","IconButton","Text","View","RadioButton","useTheme","useTranslation","getCardName","CardRow","card","onDelete","onSelect","isSelectable","isSelected","isDisabled","name","t","theme","onDeleteCard","show","title","description","cardDetails","last4","buttons","label","textColor","colors","error","onPress","id","onSurface","createElement","_extends","disabled","mode","borderRadius","mb","linkedObjectId","flexDirection","px","alignItems","justifyContent","Android","value","status","paddingStart","flex","variant","icon","bg"],"sourceRoot":"../../../../src","sources":["screens/SavedCards/CardRow.tsx"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,KAAK,EAAEC,IAAI,EAAEC,UAAU,EAAEC,IAAI,EAAEC,IAAI,QAAQ,kBAAkB;AACtE,SAASC,WAAW,EAAEC,QAAQ,QAAQ,oBAAoB;AAC1D,SAASC,cAAc,QAAQ,eAAe;AAC9C,SAASC,WAAW,QAAQ,sBAAsB;AAGlD,OAAO,MAAMC,OAAO,GAAGA,CAAC;EACtBC,IAAI;EACJC,QAAQ;EACRC,QAAQ;EACRC,YAAY;EACZC,UAAU;EACVC;AAQF,CAAC,KAAK;EACJ,MAAMC,IAAI,GAAGR,WAAW,CAACE,IAAI,CAAC;EAC9B,MAAM;IAAEO;EAAE,CAAC,GAAGV,cAAc,CAAC,CAAC;EAC9B,MAAMW,KAAK,GAAGZ,QAAQ,CAAC,CAAC;EAExB,MAAMa,YAAY,GAAGA,CAAA,KAAM;IACzBnB,KAAK,CAACoB,IAAI,CAAC;MACTC,KAAK,EAAEJ,CAAC,CAAC,4BAA4B,CAAC;MACtCK,WAAW,EAAEL,CAAC,CAAC,yBAAyB,EAAE;QACxCP,IAAI,EAAEA,IAAI,CAACa,WAAW,CAACC;MACzB,CAAC,CAAC;MACFC,OAAO,EAAE,CACP;QACEC,KAAK,EAAET,CAAC,CAAC,QAAQ,CAAC;QAClBU,SAAS,EAAET,KAAK,CAACU,MAAM,CAACC,KAAK;QAC7BC,OAAO,EAAEA,CAAA,KAAMnB,QAAQ,CAACD,IAAI,CAACqB,EAAE;MACjC,CAAC,EACD;QACEL,KAAK,EAAET,CAAC,CAAC,QAAQ,CAAC;QAClBU,SAAS,EAAET,KAAK,CAACU,MAAM,CAACI;MAC1B,CAAC;IAEL,CAAC,CAAC;EACJ,CAAC;EAED,oBACEjC,KAAA,CAAAkC,aAAA,CAAChC,IAAI,EAAAiC,QAAA;IACHC,QAAQ,EAAEpB,UAAW;IACrBqB,IAAI,EAAC,UAAU;IACfC,YAAY,EAAC,GAAG;IAChBC,EAAE,EAAC;EAAG,GACDzB,YAAY,GACb;IACEiB,OAAO,EAAEA,CAAA,KAAM;MACblB,QAAQ,CAACF,IAAI,CAAC6B,cAAc,CAAC;IAC/B;EACF,CAAC,GACD,CAAC,CAAC,gBAENxC,KAAA,CAAAkC,aAAA,CAAC7B,IAAI;IACHoC,aAAa,EAAC,KAAK;IACnBC,EAAE,EAAC,GAAG;IACNC,UAAU,EAAC,QAAQ;IACnBC,cAAc,EAAC;EAAe,GAE7B9B,YAAY,iBACXd,KAAA,CAAAkC,aAAA,CAAC5B,WAAW,CAACuC,OAAO;IAClBC,KAAK,EAAEnC,IAAI,CAAC6B,cAAe;IAC3BO,MAAM,EAAEhC,UAAU,GAAG,SAAS,GAAG,WAAY;IAC7CgB,OAAO,EAAEA,CAAA,KAAM;MACblB,QAAQ,CAACF,IAAI,CAAC6B,cAAc,CAAC;IAC/B;EAAE,CACH,CACF,eACDxC,KAAA,CAAAkC,aAAA,CAAC7B,IAAI;IACH2C,YAAY,EAAC,GAAG;IAChBP,aAAa,EAAC,KAAK;IACnBQ,IAAI,EAAE,CAAE;IACRN,UAAU,EAAC,QAAQ;IACnBC,cAAc,EAAC;EAAe,gBAE9B5C,KAAA,CAAAkC,aAAA,CAAC9B,IAAI;IAAC8C,OAAO,EAAC;EAAY,GAAEjC,IAAW,CAAC,eACxCjB,KAAA,CAAAkC,aAAA,CAAC/B,UAAU;IACTiC,QAAQ,EAAEpB,UAAW;IACrBmC,IAAI,EAAC,mBAAmB;IACxBC,EAAE,EAAC,YAAY;IACfrB,OAAO,EAAEX;EAAa,CACvB,CACG,CACF,CACF,CAAC;AAEX,CAAC"}
@@ -0,0 +1,170 @@
1
+ import React, { useEffect, useState } from 'react';
2
+ import { Alert, Button, LineLoader, RefreshControl, Text, View } from '../../components';
3
+ import { ActivityIndicator, useTheme } from 'react-native-paper';
4
+ import uuid from 'react-native-uuid';
5
+ import { useTranslation } from 'react-i18next';
6
+ import { FlatList } from 'react-native';
7
+ import { onStartCardEntry } from '../../utils/square';
8
+ import { useCustomerQueries } from '../../hooks/useCustomer';
9
+ import { useCheckCustomer } from '../../hooks/useCheckCustomer';
10
+ import { CardRow } from './CardRow';
11
+ export const SavedCards = ({
12
+ onCheckout,
13
+ total
14
+ }) => {
15
+ const {
16
+ t
17
+ } = useTranslation();
18
+ const theme = useTheme();
19
+ const {
20
+ customer
21
+ } = useCheckCustomer();
22
+ const {
23
+ useSaveCustomerCard,
24
+ useFetchSavedCards,
25
+ useDisableCard,
26
+ useUpdateCustomer
27
+ } = useCustomerQueries();
28
+ const {
29
+ saveCard,
30
+ saveCardLoading
31
+ } = useSaveCustomerCard();
32
+ const {
33
+ disableCard,
34
+ disableCardLoading
35
+ } = useDisableCard();
36
+ const [selectedPaymentId, onSelectPaymentId] = useState('');
37
+ const {
38
+ updateCustomer,
39
+ updateCustomerLoading
40
+ } = useUpdateCustomer();
41
+ useEffect(() => {
42
+ if (customer?.paymentId) {
43
+ onSelectPaymentId(customer.paymentId);
44
+ }
45
+ }, [customer?.paymentId, onSelectPaymentId]);
46
+ const {
47
+ data: cards = [],
48
+ isFetching,
49
+ isLoading,
50
+ refetch
51
+ } = useFetchSavedCards();
52
+ const onAddPress = () => {
53
+ onStartCardEntry(cardDetails => {
54
+ saveCard({
55
+ sourceId: cardDetails.nonce,
56
+ idempotentKey: uuid.v4()
57
+ });
58
+ }, () => {});
59
+ };
60
+ const label = cards.length > 0 ? t('checkout.payAndPlaceOrder') : t('checkout.payByCard');
61
+ if (isLoading) {
62
+ return /*#__PURE__*/React.createElement(ActivityIndicator, null);
63
+ }
64
+ const onUseCard = () => {
65
+ if (cards.length === 0) {
66
+ // If no cards then initiate add card flow.
67
+ onStartCardEntry(cardDetails => {
68
+ saveCard({
69
+ sourceId: cardDetails.nonce,
70
+ idempotentKey: uuid.v4()
71
+ });
72
+ }, () => {});
73
+ } else if (!customer.paymentId) {
74
+ Alert.show({
75
+ title: 'Select a card'
76
+ });
77
+ } else {
78
+ // Make payment
79
+ const selectedCard = cards.find(card => card.linkedObjectId === customer.paymentId);
80
+ if (selectedCard) {
81
+ onCheckout?.(selectedCard);
82
+ } else {
83
+ Alert.show({
84
+ title: 'Select a card'
85
+ });
86
+ }
87
+ }
88
+ };
89
+ return /*#__PURE__*/React.createElement(View, {
90
+ flex: 1
91
+ }, /*#__PURE__*/React.createElement(View, {
92
+ px: "16",
93
+ bg: "background",
94
+ flex: 1
95
+ }, /*#__PURE__*/React.createElement(LineLoader, {
96
+ isLoading: isFetching || disableCardLoading || updateCustomerLoading
97
+ }), /*#__PURE__*/React.createElement(FlatList, {
98
+ extraData: {
99
+ selectedPaymentId,
100
+ disableCardLoading
101
+ },
102
+ refreshControl: /*#__PURE__*/React.createElement(RefreshControl, {
103
+ refreshing: false,
104
+ onRefresh: refetch
105
+ }),
106
+ data: cards,
107
+ showsVerticalScrollIndicator: false,
108
+ renderItem: ({
109
+ item: card,
110
+ index
111
+ }) => /*#__PURE__*/React.createElement(CardRow, {
112
+ isDisabled: disableCardLoading,
113
+ isSelected: selectedPaymentId === card.linkedObjectId,
114
+ isSelectable: !!onCheckout,
115
+ key: index,
116
+ card: card,
117
+ onDelete: id => {
118
+ disableCard(id);
119
+ },
120
+ onSelect: linkedObjectId => {
121
+ onSelectPaymentId(linkedObjectId);
122
+ updateCustomer({
123
+ paymentId: linkedObjectId,
124
+ addressId: customer.addressId,
125
+ squareCustomerId: customer.squareCustomerId
126
+ });
127
+ }
128
+ }),
129
+ ListHeaderComponent: /*#__PURE__*/React.createElement(React.Fragment, null, cards.length > 0 ? /*#__PURE__*/React.createElement(Text, {
130
+ mb: "8",
131
+ variant: "titleMedium"
132
+ }, t('checkout.paymentMethods')) : /*#__PURE__*/React.createElement(Text, {
133
+ variant: "bodyLarge",
134
+ color: "outline"
135
+ }, t('checkout.noSavedCards'))),
136
+ ListFooterComponent: /*#__PURE__*/React.createElement(View, {
137
+ alignItems: "flex-start"
138
+ }, /*#__PURE__*/React.createElement(Button, {
139
+ pt: '16',
140
+ loading: saveCardLoading,
141
+ onPress: onAddPress,
142
+ icon: "plus",
143
+ mode: "text"
144
+ }, t('checkout.addCard')))
145
+ })), !!onCheckout && /*#__PURE__*/React.createElement(View, {
146
+ bg: "secondaryContainer",
147
+ height: 84,
148
+ padding: "16",
149
+ justifyContent: "space-between",
150
+ flexDirection: "row",
151
+ width: "100%"
152
+ }, /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(Text, {
153
+ variant: "bodyLarge",
154
+ color: "onSurface"
155
+ }, t('order.total')), /*#__PURE__*/React.createElement(Text, {
156
+ variant: "titleLarge",
157
+ color: "onSurface"
158
+ }, total)), /*#__PURE__*/React.createElement(Button, {
159
+ mode: "contained",
160
+ height: 40,
161
+ width: 'auto',
162
+ alignSelf: "center",
163
+ bg: "primary",
164
+ labelStyle: [{
165
+ color: theme.colors.background
166
+ }],
167
+ onPress: onUseCard
168
+ }, label)));
169
+ };
170
+ //# sourceMappingURL=SavedCards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useEffect","useState","Alert","Button","LineLoader","RefreshControl","Text","View","ActivityIndicator","useTheme","uuid","useTranslation","FlatList","onStartCardEntry","useCustomerQueries","useCheckCustomer","CardRow","SavedCards","onCheckout","total","t","theme","customer","useSaveCustomerCard","useFetchSavedCards","useDisableCard","useUpdateCustomer","saveCard","saveCardLoading","disableCard","disableCardLoading","selectedPaymentId","onSelectPaymentId","updateCustomer","updateCustomerLoading","paymentId","data","cards","isFetching","isLoading","refetch","onAddPress","cardDetails","sourceId","nonce","idempotentKey","v4","label","length","createElement","onUseCard","show","title","selectedCard","find","card","linkedObjectId","flex","px","bg","extraData","refreshControl","refreshing","onRefresh","showsVerticalScrollIndicator","renderItem","item","index","isDisabled","isSelected","isSelectable","key","onDelete","id","onSelect","addressId","squareCustomerId","ListHeaderComponent","Fragment","mb","variant","color","ListFooterComponent","alignItems","pt","loading","onPress","icon","mode","height","padding","justifyContent","flexDirection","width","alignSelf","labelStyle","colors","background"],"sourceRoot":"../../../../src","sources":["screens/SavedCards/SavedCards.tsx"],"mappings":"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"}
@@ -1,7 +1,12 @@
1
1
  export const queryKeys = {
2
2
  BUSINESSES: 'BUSINESSES',
3
3
  TERMS_AND_CONDITIONS: 'TERMS_AND_CONDITIONS',
4
- TERMS_AND_CONDITIONS_URL: 'TERMS_AND_CONDITIONS_URL'
4
+ TERMS_AND_CONDITIONS_URL: 'TERMS_AND_CONDITIONS_URL',
5
+ CARDS: 'CARDS',
6
+ CUSTOMER: 'CUSTOMER',
7
+ PROGRAM: 'PROGRAM',
8
+ LOYALTY: 'LOYALTY',
9
+ REWARDS: 'REWARDS'
5
10
  };
6
11
  export const DEFAULT_STALE_TIME = 60 * (60 * 1000); // 60 mins
7
12
  //# sourceMappingURL=queryKeys.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["queryKeys","BUSINESSES","TERMS_AND_CONDITIONS","TERMS_AND_CONDITIONS_URL","DEFAULT_STALE_TIME"],"sourceRoot":"../../../src","sources":["selectBusiness/queryKeys.ts"],"mappings":"AAAA,OAAO,MAAMA,SAAS,GAAG;EACvBC,UAAU,EAAE,YAAY;EACxBC,oBAAoB,EAAE,sBAAsB;EAC5CC,wBAAwB,EAAE;AAC5B,CAAC;AAED,OAAO,MAAMC,kBAAkB,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC"}
1
+ {"version":3,"names":["queryKeys","BUSINESSES","TERMS_AND_CONDITIONS","TERMS_AND_CONDITIONS_URL","CARDS","CUSTOMER","PROGRAM","LOYALTY","REWARDS","DEFAULT_STALE_TIME"],"sourceRoot":"../../../src","sources":["selectBusiness/queryKeys.ts"],"mappings":"AAAA,OAAO,MAAMA,SAAS,GAAG;EACvBC,UAAU,EAAE,YAAY;EACxBC,oBAAoB,EAAE,sBAAsB;EAC5CC,wBAAwB,EAAE,0BAA0B;EACpDC,KAAK,EAAE,OAAO;EACdC,QAAQ,EAAE,UAAU;EACpBC,OAAO,EAAE,SAAS;EAClBC,OAAO,EAAE,SAAS;EAClBC,OAAO,EAAE;AACX,CAAC;AAED,OAAO,MAAMC,kBAAkB,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ var PaymentType = /*#__PURE__*/function (PaymentType) {
2
+ PaymentType["card"] = "card";
3
+ return PaymentType;
4
+ }(PaymentType || {});
5
+ //# sourceMappingURL=customer.d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["PaymentType"],"sourceRoot":"../../../src","sources":["types/customer.d.ts"],"mappings":"IAwCKA,WAAW,0BAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA,EAAXA,WAAW"}
@@ -0,0 +1,4 @@
1
+ export const getCardName = card => {
2
+ return card.cardDetails.cardBrand + ' **** ' + card.cardDetails.last4;
3
+ };
4
+ //# sourceMappingURL=checkout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getCardName","card","cardDetails","cardBrand","last4"],"sourceRoot":"../../../src","sources":["utils/checkout.ts"],"mappings":"AAEA,OAAO,MAAMA,WAAW,GAAIC,IAAyB,IAAK;EACxD,OAAOA,IAAI,CAACC,WAAW,CAACC,SAAS,GAAG,QAAQ,GAAGF,IAAI,CAACC,WAAW,CAACE,KAAK;AACvE,CAAC"}
@@ -0,0 +1,10 @@
1
+ export class Currency {
2
+ static usdFormatter = new Intl.NumberFormat('en-US', {
3
+ style: 'currency',
4
+ currency: 'USD'
5
+ });
6
+ static formatToUsd(amount) {
7
+ return this.usdFormatter.format(amount / 100);
8
+ }
9
+ }
10
+ //# sourceMappingURL=currency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Currency","usdFormatter","Intl","NumberFormat","style","currency","formatToUsd","amount","format"],"sourceRoot":"../../../src","sources":["utils/currency.ts"],"mappings":"AAAA,OAAO,MAAMA,QAAQ,CAAC;EACpB,OAAOC,YAAY,GAAG,IAAIC,IAAI,CAACC,YAAY,CAAC,OAAO,EAAE;IACnDC,KAAK,EAAE,UAAU;IACjBC,QAAQ,EAAE;EACZ,CAAC,CAAC;EAEF,OAAOC,WAAWA,CAACC,MAAc,EAAE;IACjC,OAAO,IAAI,CAACN,YAAY,CAACO,MAAM,CAACD,MAAM,GAAG,GAAG,CAAC;EAC/C;AACF"}
@@ -0,0 +1,36 @@
1
+ import { SQIPCardEntry
2
+ // @ts-ignore
3
+ } from 'react-native-square-in-app-payments';
4
+
5
+ /**
6
+ * Callback when successfully get the card nonce details for processig
7
+ * card entry is still open and waiting for processing card nonce details
8
+ * @param {*} cardDetails
9
+ * @param onCompleteCallback
10
+ */
11
+ async function onCardNonceRequestSuccess(cardDetails, onCompleteCallback) {
12
+ try {
13
+ // take payment with the card details
14
+ // await chargeCard(cardDetails);
15
+
16
+ // payment finished successfully
17
+ // you must call this method to close card entry
18
+ await SQIPCardEntry.completeCardEntry(() => onCompleteCallback(cardDetails));
19
+ } catch (ex) {
20
+ // payment failed to complete due to error
21
+ // notify card entry to show processing error
22
+ // @ts-ignore
23
+ await SQIPCardEntry.showCardNonceProcessingError(ex.message);
24
+ }
25
+ }
26
+
27
+ /**
28
+ * An event listener to start card entry flow
29
+ */
30
+ export async function onStartCardEntry(onSuccessCallback, onCancelCallback) {
31
+ const cardEntryConfig = {
32
+ collectPostalCode: false
33
+ };
34
+ await SQIPCardEntry.startCardEntryFlow(cardEntryConfig, cardDetails => onCardNonceRequestSuccess(cardDetails, onSuccessCallback), onCancelCallback);
35
+ }
36
+ //# sourceMappingURL=square.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SQIPCardEntry","onCardNonceRequestSuccess","cardDetails","onCompleteCallback","completeCardEntry","ex","showCardNonceProcessingError","message","onStartCardEntry","onSuccessCallback","onCancelCallback","cardEntryConfig","collectPostalCode","startCardEntryFlow"],"sourceRoot":"../../../src","sources":["utils/square.ts"],"mappings":"AAAA,SAEEA;AACA;AAAA,OACK,qCAAqC;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,eAAeC,yBAAyBA,CACtCC,WAAwB,EACxBC,kBAAsD,EACtD;EACA,IAAI;IACF;IACA;;IAEA;IACA;IACA,MAAMH,aAAa,CAACI,iBAAiB,CAAC,MACpCD,kBAAkB,CAACD,WAAW,CAChC,CAAC;EACH,CAAC,CAAC,OAAOG,EAAE,EAAE;IACX;IACA;IACA;IACA,MAAML,aAAa,CAACM,4BAA4B,CAACD,EAAE,CAACE,OAAO,CAAC;EAC9D;AACF;;AAEA;AACA;AACA;AACA,OAAO,eAAeC,gBAAgBA,CACpCC,iBAAqD,EACrDC,gBAA4B,EAC5B;EACA,MAAMC,eAAe,GAAG;IACtBC,iBAAiB,EAAE;EACrB,CAAC;EACD,MAAMZ,aAAa,CAACa,kBAAkB,CACpCF,eAAe,EACdT,WAAwB,IACvBD,yBAAyB,CAACC,WAAW,EAAEO,iBAAiB,CAAC,EAC3DC,gBACF,CAAC;AACH"}