@tagadapay/plugin-sdk 1.0.2
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 +475 -0
- package/dist/data/currencies.json +2410 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.js +37 -0
- package/dist/react/components/DebugDrawer.d.ts +7 -0
- package/dist/react/components/DebugDrawer.js +368 -0
- package/dist/react/components/OffersDemo.d.ts +1 -0
- package/dist/react/components/OffersDemo.js +50 -0
- package/dist/react/components/index.d.ts +1 -0
- package/dist/react/components/index.js +1 -0
- package/dist/react/config/environment.d.ts +22 -0
- package/dist/react/config/environment.js +132 -0
- package/dist/react/config/payment.d.ts +23 -0
- package/dist/react/config/payment.js +52 -0
- package/dist/react/hooks/useAuth.d.ts +4 -0
- package/dist/react/hooks/useAuth.js +12 -0
- package/dist/react/hooks/useCheckout.d.ts +262 -0
- package/dist/react/hooks/useCheckout.js +325 -0
- package/dist/react/hooks/useCurrency.d.ts +4 -0
- package/dist/react/hooks/useCurrency.js +640 -0
- package/dist/react/hooks/useCustomer.d.ts +7 -0
- package/dist/react/hooks/useCustomer.js +14 -0
- package/dist/react/hooks/useEnvironment.d.ts +7 -0
- package/dist/react/hooks/useEnvironment.js +18 -0
- package/dist/react/hooks/useLocale.d.ts +2 -0
- package/dist/react/hooks/useLocale.js +43 -0
- package/dist/react/hooks/useOffers.d.ts +99 -0
- package/dist/react/hooks/useOffers.js +115 -0
- package/dist/react/hooks/useOrder.d.ts +44 -0
- package/dist/react/hooks/useOrder.js +77 -0
- package/dist/react/hooks/usePayment.d.ts +60 -0
- package/dist/react/hooks/usePayment.js +343 -0
- package/dist/react/hooks/usePaymentPolling.d.ts +45 -0
- package/dist/react/hooks/usePaymentPolling.js +146 -0
- package/dist/react/hooks/useProducts.d.ts +95 -0
- package/dist/react/hooks/useProducts.js +120 -0
- package/dist/react/hooks/useSession.d.ts +10 -0
- package/dist/react/hooks/useSession.js +17 -0
- package/dist/react/hooks/useThreeds.d.ts +38 -0
- package/dist/react/hooks/useThreeds.js +162 -0
- package/dist/react/hooks/useThreedsModal.d.ts +16 -0
- package/dist/react/hooks/useThreedsModal.js +328 -0
- package/dist/react/index.d.ts +26 -0
- package/dist/react/index.js +27 -0
- package/dist/react/providers/TagadaProvider.d.ts +55 -0
- package/dist/react/providers/TagadaProvider.js +471 -0
- package/dist/react/services/apiService.d.ts +149 -0
- package/dist/react/services/apiService.js +168 -0
- package/dist/react/types.d.ts +151 -0
- package/dist/react/types.js +4 -0
- package/dist/react/utils/__tests__/urlUtils.test.d.ts +1 -0
- package/dist/react/utils/__tests__/urlUtils.test.js +189 -0
- package/dist/react/utils/deviceInfo.d.ts +39 -0
- package/dist/react/utils/deviceInfo.js +163 -0
- package/dist/react/utils/jwtDecoder.d.ts +14 -0
- package/dist/react/utils/jwtDecoder.js +86 -0
- package/dist/react/utils/money.d.ts +2273 -0
- package/dist/react/utils/money.js +104 -0
- package/dist/react/utils/tokenStorage.d.ts +16 -0
- package/dist/react/utils/tokenStorage.js +52 -0
- package/dist/react/utils/urlUtils.d.ts +239 -0
- package/dist/react/utils/urlUtils.js +449 -0
- package/package.json +64 -0
|
@@ -0,0 +1,640 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
/**
|
|
3
|
+
* useCurrency - Hook to access currency data
|
|
4
|
+
* Uses the same logic as the main codebase's localeCurrency.ts
|
|
5
|
+
*/
|
|
6
|
+
import { useEffect, useState } from 'react';
|
|
7
|
+
import { useTagadaContext } from '../providers/TagadaProvider';
|
|
8
|
+
import { useLocale } from './useLocale';
|
|
9
|
+
// Country to currency mapping (from main codebase)
|
|
10
|
+
const COUNTRY_CURRENCY_MAP = {
|
|
11
|
+
AD: 'EUR',
|
|
12
|
+
AE: 'AED',
|
|
13
|
+
AF: 'AFN',
|
|
14
|
+
AG: 'XCD',
|
|
15
|
+
AI: 'XCD',
|
|
16
|
+
AL: 'ALL',
|
|
17
|
+
AM: 'AMD',
|
|
18
|
+
AO: 'AOA',
|
|
19
|
+
AQ: 'EUR',
|
|
20
|
+
AR: 'ARS',
|
|
21
|
+
AS: 'USD',
|
|
22
|
+
AT: 'EUR',
|
|
23
|
+
AU: 'AUD',
|
|
24
|
+
AW: 'AWG',
|
|
25
|
+
AX: 'EUR',
|
|
26
|
+
AZ: 'AZN',
|
|
27
|
+
BA: 'BAM',
|
|
28
|
+
BB: 'BBD',
|
|
29
|
+
BD: 'BDT',
|
|
30
|
+
BE: 'EUR',
|
|
31
|
+
BF: 'XOF',
|
|
32
|
+
BG: 'BGN',
|
|
33
|
+
BH: 'BHD',
|
|
34
|
+
BI: 'BIF',
|
|
35
|
+
BJ: 'XOF',
|
|
36
|
+
BL: 'EUR',
|
|
37
|
+
BM: 'BMD',
|
|
38
|
+
BN: 'BND',
|
|
39
|
+
BO: 'BOB',
|
|
40
|
+
BQ: 'USD',
|
|
41
|
+
BR: 'BRL',
|
|
42
|
+
BS: 'BSD',
|
|
43
|
+
BT: 'BTN',
|
|
44
|
+
BV: 'NOK',
|
|
45
|
+
BW: 'BWP',
|
|
46
|
+
BY: 'BYN',
|
|
47
|
+
BZ: 'BZD',
|
|
48
|
+
CA: 'CAD',
|
|
49
|
+
CC: 'AUD',
|
|
50
|
+
CD: 'CDF',
|
|
51
|
+
CF: 'XAF',
|
|
52
|
+
CG: 'XAF',
|
|
53
|
+
CH: 'CHF',
|
|
54
|
+
CI: 'XOF',
|
|
55
|
+
CK: 'NZD',
|
|
56
|
+
CL: 'CLP',
|
|
57
|
+
CM: 'XAF',
|
|
58
|
+
CN: 'CNY',
|
|
59
|
+
CO: 'COP',
|
|
60
|
+
CR: 'CRC',
|
|
61
|
+
CU: 'CUP',
|
|
62
|
+
CV: 'CVE',
|
|
63
|
+
CW: 'ANG',
|
|
64
|
+
CX: 'AUD',
|
|
65
|
+
CY: 'EUR',
|
|
66
|
+
CZ: 'CZK',
|
|
67
|
+
DE: 'EUR',
|
|
68
|
+
DJ: 'DJF',
|
|
69
|
+
DK: 'DKK',
|
|
70
|
+
DM: 'XCD',
|
|
71
|
+
DO: 'DOP',
|
|
72
|
+
DZ: 'DZD',
|
|
73
|
+
EC: 'USD',
|
|
74
|
+
EE: 'EUR',
|
|
75
|
+
EG: 'EGP',
|
|
76
|
+
EH: 'MAD',
|
|
77
|
+
ER: 'ERN',
|
|
78
|
+
ES: 'EUR',
|
|
79
|
+
ET: 'ETB',
|
|
80
|
+
FI: 'EUR',
|
|
81
|
+
FJ: 'FJD',
|
|
82
|
+
FK: 'FKP',
|
|
83
|
+
FM: 'USD',
|
|
84
|
+
FO: 'DKK',
|
|
85
|
+
FR: 'EUR',
|
|
86
|
+
GA: 'XAF',
|
|
87
|
+
GB: 'GBP',
|
|
88
|
+
GD: 'XCD',
|
|
89
|
+
GE: 'GEL',
|
|
90
|
+
GF: 'EUR',
|
|
91
|
+
GG: 'GBP',
|
|
92
|
+
GH: 'GHS',
|
|
93
|
+
GI: 'GIP',
|
|
94
|
+
GL: 'DKK',
|
|
95
|
+
GM: 'GMD',
|
|
96
|
+
GN: 'GNF',
|
|
97
|
+
GP: 'EUR',
|
|
98
|
+
GQ: 'XAF',
|
|
99
|
+
GR: 'EUR',
|
|
100
|
+
GS: 'GBP',
|
|
101
|
+
GT: 'GTQ',
|
|
102
|
+
GU: 'USD',
|
|
103
|
+
GW: 'XOF',
|
|
104
|
+
GY: 'GYD',
|
|
105
|
+
HK: 'HKD',
|
|
106
|
+
HM: 'AUD',
|
|
107
|
+
HN: 'HNL',
|
|
108
|
+
HR: 'EUR',
|
|
109
|
+
HT: 'HTG',
|
|
110
|
+
HU: 'HUF',
|
|
111
|
+
ID: 'IDR',
|
|
112
|
+
IE: 'EUR',
|
|
113
|
+
IL: 'ILS',
|
|
114
|
+
IM: 'GBP',
|
|
115
|
+
IN: 'INR',
|
|
116
|
+
IO: 'USD',
|
|
117
|
+
IQ: 'IQD',
|
|
118
|
+
IR: 'IRR',
|
|
119
|
+
IS: 'ISK',
|
|
120
|
+
IT: 'EUR',
|
|
121
|
+
JE: 'GBP',
|
|
122
|
+
JM: 'JMD',
|
|
123
|
+
JO: 'JOD',
|
|
124
|
+
JP: 'JPY',
|
|
125
|
+
KE: 'KES',
|
|
126
|
+
KG: 'KGS',
|
|
127
|
+
KH: 'KHR',
|
|
128
|
+
KI: 'AUD',
|
|
129
|
+
KM: 'KMF',
|
|
130
|
+
KN: 'XCD',
|
|
131
|
+
KP: 'KPW',
|
|
132
|
+
KR: 'KRW',
|
|
133
|
+
KW: 'KWD',
|
|
134
|
+
KY: 'KYD',
|
|
135
|
+
KZ: 'KZT',
|
|
136
|
+
LA: 'LAK',
|
|
137
|
+
LB: 'LBP',
|
|
138
|
+
LC: 'XCD',
|
|
139
|
+
LI: 'CHF',
|
|
140
|
+
LK: 'LKR',
|
|
141
|
+
LR: 'LRD',
|
|
142
|
+
LS: 'LSL',
|
|
143
|
+
LT: 'EUR',
|
|
144
|
+
LU: 'EUR',
|
|
145
|
+
LV: 'EUR',
|
|
146
|
+
LY: 'LYD',
|
|
147
|
+
MA: 'MAD',
|
|
148
|
+
MC: 'EUR',
|
|
149
|
+
MD: 'MDL',
|
|
150
|
+
ME: 'EUR',
|
|
151
|
+
MF: 'EUR',
|
|
152
|
+
MG: 'MGA',
|
|
153
|
+
MH: 'USD',
|
|
154
|
+
MK: 'MKD',
|
|
155
|
+
ML: 'XOF',
|
|
156
|
+
MM: 'MMK',
|
|
157
|
+
MN: 'MNT',
|
|
158
|
+
MO: 'MOP',
|
|
159
|
+
MP: 'USD',
|
|
160
|
+
MQ: 'EUR',
|
|
161
|
+
MR: 'MRU',
|
|
162
|
+
MS: 'XCD',
|
|
163
|
+
MT: 'EUR',
|
|
164
|
+
MU: 'MUR',
|
|
165
|
+
MV: 'MVR',
|
|
166
|
+
MW: 'MWK',
|
|
167
|
+
MX: 'MXN',
|
|
168
|
+
MY: 'MYR',
|
|
169
|
+
MZ: 'MZN',
|
|
170
|
+
NA: 'NAD',
|
|
171
|
+
NC: 'XPF',
|
|
172
|
+
NE: 'XOF',
|
|
173
|
+
NF: 'AUD',
|
|
174
|
+
NG: 'NGN',
|
|
175
|
+
NI: 'NIO',
|
|
176
|
+
NL: 'EUR',
|
|
177
|
+
NO: 'NOK',
|
|
178
|
+
NP: 'NPR',
|
|
179
|
+
NR: 'AUD',
|
|
180
|
+
NU: 'NZD',
|
|
181
|
+
NZ: 'NZD',
|
|
182
|
+
OM: 'OMR',
|
|
183
|
+
PA: 'PAB',
|
|
184
|
+
PE: 'PEN',
|
|
185
|
+
PF: 'XPF',
|
|
186
|
+
PG: 'PGK',
|
|
187
|
+
PH: 'PHP',
|
|
188
|
+
PK: 'PKR',
|
|
189
|
+
PL: 'PLN',
|
|
190
|
+
PM: 'EUR',
|
|
191
|
+
PN: 'NZD',
|
|
192
|
+
PR: 'USD',
|
|
193
|
+
PS: 'ILS',
|
|
194
|
+
PT: 'EUR',
|
|
195
|
+
PW: 'USD',
|
|
196
|
+
PY: 'PYG',
|
|
197
|
+
QA: 'QAR',
|
|
198
|
+
RE: 'EUR',
|
|
199
|
+
RO: 'RON',
|
|
200
|
+
RS: 'RSD',
|
|
201
|
+
RU: 'RUB',
|
|
202
|
+
RW: 'RWF',
|
|
203
|
+
SA: 'SAR',
|
|
204
|
+
SB: 'SBD',
|
|
205
|
+
SC: 'SCR',
|
|
206
|
+
SD: 'SDG',
|
|
207
|
+
SE: 'SEK',
|
|
208
|
+
SG: 'SGD',
|
|
209
|
+
SH: 'SHP',
|
|
210
|
+
SI: 'EUR',
|
|
211
|
+
SJ: 'NOK',
|
|
212
|
+
SK: 'EUR',
|
|
213
|
+
SL: 'SLE',
|
|
214
|
+
SM: 'EUR',
|
|
215
|
+
SN: 'XOF',
|
|
216
|
+
SO: 'SOS',
|
|
217
|
+
SR: 'SRD',
|
|
218
|
+
SS: 'SSP',
|
|
219
|
+
ST: 'STN',
|
|
220
|
+
SV: 'SVC',
|
|
221
|
+
SX: 'ANG',
|
|
222
|
+
SY: 'SYP',
|
|
223
|
+
SZ: 'SZL',
|
|
224
|
+
TC: 'USD',
|
|
225
|
+
TD: 'XAF',
|
|
226
|
+
TF: 'EUR',
|
|
227
|
+
TG: 'XOF',
|
|
228
|
+
TH: 'THB',
|
|
229
|
+
TJ: 'TJS',
|
|
230
|
+
TK: 'NZD',
|
|
231
|
+
TL: 'USD',
|
|
232
|
+
TM: 'TMT',
|
|
233
|
+
TN: 'TND',
|
|
234
|
+
TO: 'TOP',
|
|
235
|
+
TR: 'TRY',
|
|
236
|
+
TT: 'TTD',
|
|
237
|
+
TV: 'AUD',
|
|
238
|
+
TW: 'TWD',
|
|
239
|
+
TZ: 'TZS',
|
|
240
|
+
UA: 'UAH',
|
|
241
|
+
UG: 'UGX',
|
|
242
|
+
UM: 'USD',
|
|
243
|
+
US: 'USD',
|
|
244
|
+
UY: 'UYU',
|
|
245
|
+
UZ: 'UZS',
|
|
246
|
+
VA: 'EUR',
|
|
247
|
+
VC: 'XCD',
|
|
248
|
+
VE: 'VED',
|
|
249
|
+
VG: 'USD',
|
|
250
|
+
VI: 'USD',
|
|
251
|
+
VN: 'VND',
|
|
252
|
+
VU: 'VUV',
|
|
253
|
+
WF: 'XPF',
|
|
254
|
+
WS: 'WST',
|
|
255
|
+
YE: 'YER',
|
|
256
|
+
YT: 'EUR',
|
|
257
|
+
ZA: 'ZAR',
|
|
258
|
+
ZM: 'ZMW',
|
|
259
|
+
ZW: 'ZWG',
|
|
260
|
+
};
|
|
261
|
+
// Currency symbols mapping
|
|
262
|
+
const CURRENCY_SYMBOLS = {
|
|
263
|
+
USD: '$',
|
|
264
|
+
EUR: '€',
|
|
265
|
+
GBP: '£',
|
|
266
|
+
JPY: '¥',
|
|
267
|
+
CAD: 'C$',
|
|
268
|
+
AUD: 'A$',
|
|
269
|
+
CHF: 'CHF',
|
|
270
|
+
CNY: '¥',
|
|
271
|
+
SEK: 'kr',
|
|
272
|
+
NOK: 'kr',
|
|
273
|
+
DKK: 'kr',
|
|
274
|
+
PLN: 'zł',
|
|
275
|
+
CZK: 'Kč',
|
|
276
|
+
HUF: 'Ft',
|
|
277
|
+
BGN: 'лв',
|
|
278
|
+
RON: 'lei',
|
|
279
|
+
HRK: 'kn',
|
|
280
|
+
RSD: 'RSD',
|
|
281
|
+
BAM: 'KM',
|
|
282
|
+
MKD: 'ден',
|
|
283
|
+
ALL: 'L',
|
|
284
|
+
MDL: 'L',
|
|
285
|
+
UAH: '₴',
|
|
286
|
+
RUB: '₽',
|
|
287
|
+
BYN: 'Br',
|
|
288
|
+
GEL: '₾',
|
|
289
|
+
AMD: '֏',
|
|
290
|
+
AZN: '₼',
|
|
291
|
+
KZT: '₸',
|
|
292
|
+
KGS: 'с',
|
|
293
|
+
TJS: 'SM',
|
|
294
|
+
TMT: 'm',
|
|
295
|
+
UZS: "so'm",
|
|
296
|
+
INR: '₹',
|
|
297
|
+
KRW: '₩',
|
|
298
|
+
THB: '฿',
|
|
299
|
+
VND: '₫',
|
|
300
|
+
SGD: 'S$',
|
|
301
|
+
MYR: 'RM',
|
|
302
|
+
PHP: '₱',
|
|
303
|
+
IDR: 'Rp',
|
|
304
|
+
HKD: 'HK$',
|
|
305
|
+
TWD: 'NT$',
|
|
306
|
+
NZD: 'NZ$',
|
|
307
|
+
BRL: 'R$',
|
|
308
|
+
MXN: '$',
|
|
309
|
+
ARS: '$',
|
|
310
|
+
CLP: '$',
|
|
311
|
+
COP: '$',
|
|
312
|
+
PEN: 'S/',
|
|
313
|
+
UYU: '$U',
|
|
314
|
+
VED: 'Bs',
|
|
315
|
+
BOB: 'Bs',
|
|
316
|
+
PYG: '₲',
|
|
317
|
+
GYD: '$',
|
|
318
|
+
SRD: '$',
|
|
319
|
+
FKP: '£',
|
|
320
|
+
ZAR: 'R',
|
|
321
|
+
EGP: '£',
|
|
322
|
+
MAD: 'د.م.',
|
|
323
|
+
TND: 'د.ت',
|
|
324
|
+
DZD: 'د.ج',
|
|
325
|
+
LYD: 'ل.د',
|
|
326
|
+
ETB: 'Br',
|
|
327
|
+
KES: 'KSh',
|
|
328
|
+
UGX: 'USh',
|
|
329
|
+
TZS: 'TSh',
|
|
330
|
+
RWF: 'RWF',
|
|
331
|
+
XOF: 'CFA',
|
|
332
|
+
XAF: 'FCFA',
|
|
333
|
+
NGN: '₦',
|
|
334
|
+
GHS: '₵',
|
|
335
|
+
XCD: 'EC$',
|
|
336
|
+
JMD: 'J$',
|
|
337
|
+
TTD: 'TT$',
|
|
338
|
+
BBD: 'Bds$',
|
|
339
|
+
BZD: 'BZ$',
|
|
340
|
+
HTG: 'G',
|
|
341
|
+
DOP: 'RD$',
|
|
342
|
+
CUP: '₱',
|
|
343
|
+
NIO: 'C$',
|
|
344
|
+
CRC: '₡',
|
|
345
|
+
GTQ: 'Q',
|
|
346
|
+
HNL: 'L',
|
|
347
|
+
SVC: '₡',
|
|
348
|
+
PAB: 'B/.',
|
|
349
|
+
AWG: 'ƒ',
|
|
350
|
+
ANG: 'ƒ',
|
|
351
|
+
SHP: '£',
|
|
352
|
+
GIP: '£',
|
|
353
|
+
ILS: '₪',
|
|
354
|
+
JOD: 'د.ا',
|
|
355
|
+
KWD: 'د.ك',
|
|
356
|
+
BHD: 'د.ب',
|
|
357
|
+
QAR: 'ر.ق',
|
|
358
|
+
OMR: 'ر.ع.',
|
|
359
|
+
SAR: 'ر.س',
|
|
360
|
+
AED: 'د.إ',
|
|
361
|
+
IRR: '﷼',
|
|
362
|
+
AFN: '؋',
|
|
363
|
+
PKR: '₨',
|
|
364
|
+
NPR: '₨',
|
|
365
|
+
LKR: '₨',
|
|
366
|
+
MVR: 'ރ.',
|
|
367
|
+
BDT: '৳',
|
|
368
|
+
BTN: 'Nu.',
|
|
369
|
+
MMK: 'K',
|
|
370
|
+
LAK: '₭',
|
|
371
|
+
KHR: '៛',
|
|
372
|
+
MOP: 'MOP$',
|
|
373
|
+
BND: 'B$',
|
|
374
|
+
FJD: 'FJ$',
|
|
375
|
+
TOP: 'T$',
|
|
376
|
+
WST: 'WS$',
|
|
377
|
+
VUV: 'VT',
|
|
378
|
+
SBD: 'SI$',
|
|
379
|
+
PGK: 'K',
|
|
380
|
+
XPF: 'F',
|
|
381
|
+
ISK: 'kr',
|
|
382
|
+
TRY: '₺',
|
|
383
|
+
IQD: 'ع.د',
|
|
384
|
+
SYP: '£',
|
|
385
|
+
LBP: '£',
|
|
386
|
+
ERN: 'Nfk',
|
|
387
|
+
DJF: 'Fdj',
|
|
388
|
+
SOS: 'S',
|
|
389
|
+
SCR: '₨',
|
|
390
|
+
MUR: '₨',
|
|
391
|
+
MWK: 'MK',
|
|
392
|
+
ZMW: 'ZK',
|
|
393
|
+
AOA: 'Kz',
|
|
394
|
+
MGA: 'Ar',
|
|
395
|
+
KMF: 'CF',
|
|
396
|
+
BIF: 'FBu',
|
|
397
|
+
CDF: 'FC',
|
|
398
|
+
STN: 'Db',
|
|
399
|
+
CVE: '$',
|
|
400
|
+
GMD: 'D',
|
|
401
|
+
GNF: 'FG',
|
|
402
|
+
LRD: '$',
|
|
403
|
+
SLE: 'Le',
|
|
404
|
+
BWP: 'P',
|
|
405
|
+
LSL: 'L',
|
|
406
|
+
NAD: '$',
|
|
407
|
+
SZL: 'L',
|
|
408
|
+
MZN: 'MT',
|
|
409
|
+
ZWG: 'ZiG',
|
|
410
|
+
SSP: '£',
|
|
411
|
+
SDG: 'ج.س.',
|
|
412
|
+
YER: '﷼',
|
|
413
|
+
KPW: '₩',
|
|
414
|
+
MNT: '₮',
|
|
415
|
+
NCX: 'F',
|
|
416
|
+
};
|
|
417
|
+
// Currency names mapping
|
|
418
|
+
const CURRENCY_NAMES = {
|
|
419
|
+
USD: 'US Dollar',
|
|
420
|
+
EUR: 'Euro',
|
|
421
|
+
GBP: 'British Pound',
|
|
422
|
+
JPY: 'Japanese Yen',
|
|
423
|
+
CAD: 'Canadian Dollar',
|
|
424
|
+
AUD: 'Australian Dollar',
|
|
425
|
+
CHF: 'Swiss Franc',
|
|
426
|
+
CNY: 'Chinese Yuan',
|
|
427
|
+
SEK: 'Swedish Krona',
|
|
428
|
+
NOK: 'Norwegian Krone',
|
|
429
|
+
DKK: 'Danish Krone',
|
|
430
|
+
PLN: 'Polish Złoty',
|
|
431
|
+
CZK: 'Czech Koruna',
|
|
432
|
+
HUF: 'Hungarian Forint',
|
|
433
|
+
BGN: 'Bulgarian Lev',
|
|
434
|
+
RON: 'Romanian Leu',
|
|
435
|
+
HRK: 'Croatian Kuna',
|
|
436
|
+
RSD: 'Serbian Dinar',
|
|
437
|
+
BAM: 'Bosnia and Herzegovina Convertible Mark',
|
|
438
|
+
MKD: 'Macedonian Denar',
|
|
439
|
+
ALL: 'Albanian Lek',
|
|
440
|
+
MDL: 'Moldovan Leu',
|
|
441
|
+
UAH: 'Ukrainian Hryvnia',
|
|
442
|
+
RUB: 'Russian Ruble',
|
|
443
|
+
BYN: 'Belarusian Ruble',
|
|
444
|
+
GEL: 'Georgian Lari',
|
|
445
|
+
AMD: 'Armenian Dram',
|
|
446
|
+
AZN: 'Azerbaijani Manat',
|
|
447
|
+
KZT: 'Kazakhstani Tenge',
|
|
448
|
+
KGS: 'Kyrgyzstani Som',
|
|
449
|
+
TJS: 'Tajikistani Somoni',
|
|
450
|
+
TMT: 'Turkmenistani Manat',
|
|
451
|
+
UZS: 'Uzbekistani Som',
|
|
452
|
+
INR: 'Indian Rupee',
|
|
453
|
+
KRW: 'South Korean Won',
|
|
454
|
+
THB: 'Thai Baht',
|
|
455
|
+
VND: 'Vietnamese Dong',
|
|
456
|
+
SGD: 'Singapore Dollar',
|
|
457
|
+
MYR: 'Malaysian Ringgit',
|
|
458
|
+
PHP: 'Philippine Peso',
|
|
459
|
+
IDR: 'Indonesian Rupiah',
|
|
460
|
+
HKD: 'Hong Kong Dollar',
|
|
461
|
+
TWD: 'Taiwan Dollar',
|
|
462
|
+
NZD: 'New Zealand Dollar',
|
|
463
|
+
BRL: 'Brazilian Real',
|
|
464
|
+
MXN: 'Mexican Peso',
|
|
465
|
+
ARS: 'Argentine Peso',
|
|
466
|
+
CLP: 'Chilean Peso',
|
|
467
|
+
COP: 'Colombian Peso',
|
|
468
|
+
PEN: 'Peruvian Sol',
|
|
469
|
+
UYU: 'Uruguayan Peso',
|
|
470
|
+
VED: 'Venezuelan Bolívar',
|
|
471
|
+
BOB: 'Bolivian Boliviano',
|
|
472
|
+
PYG: 'Paraguayan Guaraní',
|
|
473
|
+
GYD: 'Guyanese Dollar',
|
|
474
|
+
SRD: 'Surinamese Dollar',
|
|
475
|
+
FKP: 'Falkland Islands Pound',
|
|
476
|
+
ZAR: 'South African Rand',
|
|
477
|
+
EGP: 'Egyptian Pound',
|
|
478
|
+
MAD: 'Moroccan Dirham',
|
|
479
|
+
TND: 'Tunisian Dinar',
|
|
480
|
+
DZD: 'Algerian Dinar',
|
|
481
|
+
LYD: 'Libyan Dinar',
|
|
482
|
+
ETB: 'Ethiopian Birr',
|
|
483
|
+
KES: 'Kenyan Shilling',
|
|
484
|
+
UGX: 'Ugandan Shilling',
|
|
485
|
+
TZS: 'Tanzanian Shilling',
|
|
486
|
+
RWF: 'Rwandan Franc',
|
|
487
|
+
XOF: 'West African CFA Franc',
|
|
488
|
+
XAF: 'Central African CFA Franc',
|
|
489
|
+
NGN: 'Nigerian Naira',
|
|
490
|
+
GHS: 'Ghanaian Cedi',
|
|
491
|
+
XCD: 'East Caribbean Dollar',
|
|
492
|
+
JMD: 'Jamaican Dollar',
|
|
493
|
+
TTD: 'Trinidad and Tobago Dollar',
|
|
494
|
+
BBD: 'Barbadian Dollar',
|
|
495
|
+
BZD: 'Belize Dollar',
|
|
496
|
+
HTG: 'Haitian Gourde',
|
|
497
|
+
DOP: 'Dominican Peso',
|
|
498
|
+
CUP: 'Cuban Peso',
|
|
499
|
+
NIO: 'Nicaraguan Córdoba',
|
|
500
|
+
CRC: 'Costa Rican Colón',
|
|
501
|
+
GTQ: 'Guatemalan Quetzal',
|
|
502
|
+
HNL: 'Honduran Lempira',
|
|
503
|
+
SVC: 'Salvadoran Colón',
|
|
504
|
+
PAB: 'Panamanian Balboa',
|
|
505
|
+
AWG: 'Aruban Florin',
|
|
506
|
+
ANG: 'Netherlands Antillean Guilder',
|
|
507
|
+
SHP: 'Saint Helena Pound',
|
|
508
|
+
GIP: 'Gibraltar Pound',
|
|
509
|
+
ILS: 'Israeli New Shekel',
|
|
510
|
+
JOD: 'Jordanian Dinar',
|
|
511
|
+
KWD: 'Kuwaiti Dinar',
|
|
512
|
+
BHD: 'Bahraini Dinar',
|
|
513
|
+
QAR: 'Qatari Riyal',
|
|
514
|
+
OMR: 'Omani Rial',
|
|
515
|
+
SAR: 'Saudi Riyal',
|
|
516
|
+
AED: 'United Arab Emirates Dirham',
|
|
517
|
+
IRR: 'Iranian Rial',
|
|
518
|
+
AFN: 'Afghan Afghani',
|
|
519
|
+
PKR: 'Pakistani Rupee',
|
|
520
|
+
NPR: 'Nepalese Rupee',
|
|
521
|
+
LKR: 'Sri Lankan Rupee',
|
|
522
|
+
MVR: 'Maldivian Rufiyaa',
|
|
523
|
+
BDT: 'Bangladeshi Taka',
|
|
524
|
+
BTN: 'Bhutanese Ngultrum',
|
|
525
|
+
MMK: 'Myanmar Kyat',
|
|
526
|
+
LAK: 'Lao Kip',
|
|
527
|
+
KHR: 'Cambodian Riel',
|
|
528
|
+
MOP: 'Macanese Pataca',
|
|
529
|
+
BND: 'Brunei Dollar',
|
|
530
|
+
FJD: 'Fijian Dollar',
|
|
531
|
+
TOP: 'Tongan Paʻanga',
|
|
532
|
+
WST: 'Samoan Tala',
|
|
533
|
+
VUV: 'Vanuatu Vatu',
|
|
534
|
+
SBD: 'Solomon Islands Dollar',
|
|
535
|
+
PGK: 'Papua New Guinean Kina',
|
|
536
|
+
XPF: 'CFP Franc',
|
|
537
|
+
ISK: 'Icelandic Króna',
|
|
538
|
+
TRY: 'Turkish Lira',
|
|
539
|
+
IQD: 'Iraqi Dinar',
|
|
540
|
+
SYP: 'Syrian Pound',
|
|
541
|
+
LBP: 'Lebanese Pound',
|
|
542
|
+
ERN: 'Eritrean Nakfa',
|
|
543
|
+
DJF: 'Djiboutian Franc',
|
|
544
|
+
SOS: 'Somali Shilling',
|
|
545
|
+
SCR: 'Seychellois Rupee',
|
|
546
|
+
MUR: 'Mauritian Rupee',
|
|
547
|
+
MWK: 'Malawian Kwacha',
|
|
548
|
+
ZMW: 'Zambian Kwacha',
|
|
549
|
+
AOA: 'Angolan Kwanza',
|
|
550
|
+
MGA: 'Malagasy Ariary',
|
|
551
|
+
KMF: 'Comorian Franc',
|
|
552
|
+
BIF: 'Burundian Franc',
|
|
553
|
+
CDF: 'Congolese Franc',
|
|
554
|
+
STN: 'São Tomé and Príncipe Dobra',
|
|
555
|
+
CVE: 'Cape Verdean Escudo',
|
|
556
|
+
GMD: 'Gambian Dalasi',
|
|
557
|
+
GNF: 'Guinean Franc',
|
|
558
|
+
LRD: 'Liberian Dollar',
|
|
559
|
+
SLE: 'Sierra Leonean Leone',
|
|
560
|
+
BWP: 'Botswanan Pula',
|
|
561
|
+
LSL: 'Lesotho Loti',
|
|
562
|
+
NAD: 'Namibian Dollar',
|
|
563
|
+
SZL: 'Swazi Lilangeni',
|
|
564
|
+
MZN: 'Mozambican Metical',
|
|
565
|
+
ZWG: 'Zimbabwean Gold',
|
|
566
|
+
SSP: 'South Sudanese Pound',
|
|
567
|
+
SDG: 'Sudanese Pound',
|
|
568
|
+
YER: 'Yemeni Rial',
|
|
569
|
+
KPW: 'North Korean Won',
|
|
570
|
+
MNT: 'Mongolian Tugrik',
|
|
571
|
+
};
|
|
572
|
+
// Get country code from locale (supports both en_US and en-US formats)
|
|
573
|
+
function getCountryCodeFromLocale(localeString) {
|
|
574
|
+
let components = localeString.split('_'); // en_US
|
|
575
|
+
if (components.length === 2) {
|
|
576
|
+
return components.pop();
|
|
577
|
+
}
|
|
578
|
+
components = localeString.split('-'); // en-US
|
|
579
|
+
if (components.length === 2) {
|
|
580
|
+
return components.pop();
|
|
581
|
+
}
|
|
582
|
+
return localeString;
|
|
583
|
+
}
|
|
584
|
+
// Get currency from locale using country mapping
|
|
585
|
+
function getCurrencyFromLocale(locale) {
|
|
586
|
+
const countryCode = getCountryCodeFromLocale(locale).toUpperCase();
|
|
587
|
+
if (countryCode in COUNTRY_CURRENCY_MAP) {
|
|
588
|
+
return COUNTRY_CURRENCY_MAP[countryCode];
|
|
589
|
+
}
|
|
590
|
+
// Fallback to USD for unknown locales
|
|
591
|
+
return 'USD';
|
|
592
|
+
}
|
|
593
|
+
// Main currency selection logic (following main codebase pattern)
|
|
594
|
+
function getCurrencyFromPresentmentCurrencies(locale, presentmentCurrencies) {
|
|
595
|
+
const localeCurrency = getCurrencyFromLocale(locale);
|
|
596
|
+
// Check if the locale-based currency is supported by the store
|
|
597
|
+
if (presentmentCurrencies.map((c) => c.toLowerCase()).includes(localeCurrency.toLowerCase())) {
|
|
598
|
+
return localeCurrency;
|
|
599
|
+
}
|
|
600
|
+
// Fallback to first presentment currency
|
|
601
|
+
return presentmentCurrencies[0] ?? 'USD';
|
|
602
|
+
}
|
|
603
|
+
export function useCurrency() {
|
|
604
|
+
const { store } = useTagadaContext();
|
|
605
|
+
const { locale } = useLocale();
|
|
606
|
+
const [customerCurrency, setCustomerCurrency] = useState(null);
|
|
607
|
+
useEffect(() => {
|
|
608
|
+
// Get currency from cookie
|
|
609
|
+
const getCookie = (name) => {
|
|
610
|
+
const value = `; ${document.cookie}`;
|
|
611
|
+
const parts = value.split(`; ${name}=`);
|
|
612
|
+
if (parts.length === 2)
|
|
613
|
+
return parts.pop()?.split(';').shift();
|
|
614
|
+
return null;
|
|
615
|
+
};
|
|
616
|
+
const currencyFromCookie = getCookie('currency');
|
|
617
|
+
setCustomerCurrency(currencyFromCookie || null);
|
|
618
|
+
}, []);
|
|
619
|
+
// Get currency code using the main codebase logic
|
|
620
|
+
const getCurrencyCode = () => {
|
|
621
|
+
const presentmentCurrencies = store?.presentmentCurrencies ?? [];
|
|
622
|
+
// Priority: customer currency from cookie (if supported) > locale-based currency > first presentment currency
|
|
623
|
+
if (customerCurrency &&
|
|
624
|
+
presentmentCurrencies.map((c) => c.toLowerCase()).includes(customerCurrency.toLowerCase())) {
|
|
625
|
+
return customerCurrency;
|
|
626
|
+
}
|
|
627
|
+
return getCurrencyFromPresentmentCurrencies(locale, presentmentCurrencies);
|
|
628
|
+
};
|
|
629
|
+
const currencyCode = getCurrencyCode();
|
|
630
|
+
const format = (amount) => {
|
|
631
|
+
const symbol = CURRENCY_SYMBOLS[currencyCode] || currencyCode;
|
|
632
|
+
return `${symbol}${amount.toFixed(2)}`;
|
|
633
|
+
};
|
|
634
|
+
return {
|
|
635
|
+
code: currencyCode,
|
|
636
|
+
symbol: CURRENCY_SYMBOLS[currencyCode] || currencyCode,
|
|
637
|
+
name: CURRENCY_NAMES[currencyCode] || currencyCode,
|
|
638
|
+
format,
|
|
639
|
+
};
|
|
640
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
/**
|
|
3
|
+
* useCustomer - Hook to access current customer data
|
|
4
|
+
*/
|
|
5
|
+
import { useTagadaContext } from '../providers/TagadaProvider';
|
|
6
|
+
export function useCustomer() {
|
|
7
|
+
const { customer, isLoading } = useTagadaContext();
|
|
8
|
+
return {
|
|
9
|
+
customer,
|
|
10
|
+
isAuthenticated: customer?.isAuthenticated || false,
|
|
11
|
+
isLoading,
|
|
12
|
+
isAnonymous: customer?.role === 'anonymous',
|
|
13
|
+
};
|
|
14
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { EnvironmentConfig, Environment } from '../types';
|
|
2
|
+
export declare function useEnvironment(): {
|
|
3
|
+
environment: Environment;
|
|
4
|
+
config: EnvironmentConfig;
|
|
5
|
+
getEndpoint: (category: 'checkout' | 'customer' | 'store', endpoint: string) => string;
|
|
6
|
+
apiBaseUrl: string;
|
|
7
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
/**
|
|
3
|
+
* useEnvironment - Hook to access environment configuration and API endpoints
|
|
4
|
+
*/
|
|
5
|
+
import { useTagadaContext } from '../providers/TagadaProvider';
|
|
6
|
+
import { getEndpointUrl } from '../config/environment';
|
|
7
|
+
export function useEnvironment() {
|
|
8
|
+
const { environment: config } = useTagadaContext();
|
|
9
|
+
const getEndpoint = (category, endpoint) => {
|
|
10
|
+
return getEndpointUrl(config, category, endpoint);
|
|
11
|
+
};
|
|
12
|
+
return {
|
|
13
|
+
environment: config.environment,
|
|
14
|
+
config,
|
|
15
|
+
getEndpoint,
|
|
16
|
+
apiBaseUrl: config.apiConfig.baseUrl,
|
|
17
|
+
};
|
|
18
|
+
}
|