@clockpay/react-native 1.0.0 → 1.0.1

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 (50) hide show
  1. package/README.md +50 -13
  2. package/lib/commonjs/api/client.js +39 -0
  3. package/lib/commonjs/api/client.js.map +1 -1
  4. package/lib/commonjs/api/endpoints.js +3 -0
  5. package/lib/commonjs/api/endpoints.js.map +1 -1
  6. package/lib/commonjs/components/icons.js +19 -0
  7. package/lib/commonjs/components/icons.js.map +1 -1
  8. package/lib/commonjs/components/payment-button.js +53 -39
  9. package/lib/commonjs/components/payment-button.js.map +1 -1
  10. package/lib/commonjs/components/selection-sheet.js +393 -0
  11. package/lib/commonjs/components/selection-sheet.js.map +1 -0
  12. package/lib/commonjs/internal/format.js +11 -0
  13. package/lib/commonjs/internal/format.js.map +1 -1
  14. package/lib/module/api/client.js +39 -0
  15. package/lib/module/api/client.js.map +1 -1
  16. package/lib/module/api/endpoints.js +3 -0
  17. package/lib/module/api/endpoints.js.map +1 -1
  18. package/lib/module/components/icons.js +18 -0
  19. package/lib/module/components/icons.js.map +1 -1
  20. package/lib/module/components/payment-button.js +56 -42
  21. package/lib/module/components/payment-button.js.map +1 -1
  22. package/lib/module/components/selection-sheet.js +391 -0
  23. package/lib/module/components/selection-sheet.js.map +1 -0
  24. package/lib/module/internal/format.js +10 -0
  25. package/lib/module/internal/format.js.map +1 -1
  26. package/lib/typescript/api/client.d.ts +7 -1
  27. package/lib/typescript/api/client.d.ts.map +1 -1
  28. package/lib/typescript/api/endpoints.d.ts +3 -0
  29. package/lib/typescript/api/endpoints.d.ts.map +1 -1
  30. package/lib/typescript/components/icons.d.ts +1 -0
  31. package/lib/typescript/components/icons.d.ts.map +1 -1
  32. package/lib/typescript/components/payment-button.d.ts +3 -2
  33. package/lib/typescript/components/payment-button.d.ts.map +1 -1
  34. package/lib/typescript/components/selection-sheet.d.ts +25 -0
  35. package/lib/typescript/components/selection-sheet.d.ts.map +1 -0
  36. package/lib/typescript/index.d.ts +1 -1
  37. package/lib/typescript/index.d.ts.map +1 -1
  38. package/lib/typescript/internal/format.d.ts +2 -0
  39. package/lib/typescript/internal/format.d.ts.map +1 -1
  40. package/lib/typescript/types.d.ts +65 -2
  41. package/lib/typescript/types.d.ts.map +1 -1
  42. package/package.json +1 -1
  43. package/src/api/client.ts +45 -0
  44. package/src/api/endpoints.ts +3 -0
  45. package/src/components/icons.tsx +14 -0
  46. package/src/components/payment-button.tsx +54 -38
  47. package/src/components/selection-sheet.tsx +383 -0
  48. package/src/index.ts +10 -0
  49. package/src/internal/format.ts +8 -0
  50. package/src/types.ts +75 -2
@@ -0,0 +1,393 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SelectionSheet = SelectionSheet;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ var _reactNativeSvg = require("react-native-svg");
10
+ var _client = require("../api/client");
11
+ var _format = require("../internal/format");
12
+ var _bottomSheet = require("./bottom-sheet");
13
+ var _icons = require("./icons");
14
+ var _jsxRuntime = require("react/jsx-runtime");
15
+ /** Renders a coin's remote SVG logo. Falls back to a neutral placeholder circle. */function CoinLogo({
16
+ uri
17
+ }) {
18
+ if (!uri) return null;
19
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
20
+ style: styles.logo,
21
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.SvgUri, {
22
+ width: 20,
23
+ height: 20,
24
+ uri: uri
25
+ })
26
+ });
27
+ }
28
+ /** A lightweight inline dropdown — taps to expand a list of options in place. */
29
+ function Dropdown({
30
+ label,
31
+ placeholder,
32
+ value,
33
+ options,
34
+ disabled,
35
+ loading,
36
+ theme,
37
+ onSelect
38
+ }) {
39
+ const [open, setOpen] = (0, _react.useState)(false);
40
+ const selected = options.find(o => o.id === value);
41
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
42
+ style: [styles.field, open && styles.fieldOpen],
43
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
44
+ style: styles.label,
45
+ children: [label, " ", /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
46
+ style: styles.req,
47
+ children: "*"
48
+ })]
49
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
50
+ activeOpacity: 0.7,
51
+ disabled: disabled,
52
+ style: [styles.select, disabled && styles.selectDisabled],
53
+ onPress: () => setOpen(o => !o),
54
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
55
+ style: styles.selectValue,
56
+ children: [selected?.image && /*#__PURE__*/(0, _jsxRuntime.jsx)(CoinLogo, {
57
+ uri: selected.image
58
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
59
+ style: [styles.selectText, !selected && styles.placeholder],
60
+ children: loading ? 'Loading…' : selected ? selected.label : placeholder
61
+ })]
62
+ }), loading ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {
63
+ size: "small",
64
+ color: "#94a3b8"
65
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.ChevronDownIcon, {})]
66
+ }), open && !disabled && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
67
+ style: styles.options,
68
+ children: options.map(o => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
69
+ style: styles.option,
70
+ onPress: () => {
71
+ onSelect(o.id);
72
+ setOpen(false);
73
+ },
74
+ children: [o.image && /*#__PURE__*/(0, _jsxRuntime.jsx)(CoinLogo, {
75
+ uri: o.image
76
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
77
+ style: [styles.optionText, o.id === value && {
78
+ color: theme.accent,
79
+ fontWeight: '600'
80
+ }],
81
+ children: o.label
82
+ })]
83
+ }, o.id))
84
+ })]
85
+ });
86
+ }
87
+
88
+ /**
89
+ * First step of the payment flow: the buyer picks a coin and then a settlement
90
+ * network. On continue, a payment link is generated (`create-link`) and the
91
+ * resulting checkout initiated, handing a {@link CheckoutData} to the caller so
92
+ * the payment sheet can open.
93
+ */
94
+ function SelectionSheet({
95
+ visible,
96
+ publicKey,
97
+ apiBaseUrl,
98
+ theme,
99
+ amount,
100
+ currency,
101
+ reference,
102
+ meta,
103
+ onRequestClose,
104
+ onClosed,
105
+ onProceed,
106
+ onError
107
+ }) {
108
+ const client = (0, _react.useMemo)(() => new _client.ClockPayClient(publicKey, apiBaseUrl), [publicKey, apiBaseUrl]);
109
+ const [coins, setCoins] = (0, _react.useState)([]);
110
+ const [networks, setNetworks] = (0, _react.useState)([]);
111
+ const [coinId, setCoinId] = (0, _react.useState)('');
112
+ const [networkId, setNetworkId] = (0, _react.useState)('');
113
+ const [loadingCoins, setLoadingCoins] = (0, _react.useState)(false);
114
+ const [loadingNetworks, setLoadingNetworks] = (0, _react.useState)(false);
115
+ const [submitting, setSubmitting] = (0, _react.useState)(false);
116
+ const [error, setError] = (0, _react.useState)(null);
117
+
118
+ // Load the available coins once the sheet opens.
119
+ (0, _react.useEffect)(() => {
120
+ if (!visible) return;
121
+ let active = true;
122
+ setLoadingCoins(true);
123
+ setError(null);
124
+ client.getCoins().then(list => active && setCoins(list)).catch(e => active && setError(e.message)).finally(() => active && setLoadingCoins(false));
125
+ return () => {
126
+ active = false;
127
+ };
128
+ }, [visible, client]);
129
+
130
+ // Load the networks for the selected coin.
131
+ (0, _react.useEffect)(() => {
132
+ setNetworks([]);
133
+ setNetworkId('');
134
+ if (!coinId) return;
135
+ let active = true;
136
+ setLoadingNetworks(true);
137
+ setError(null);
138
+ client.getNetworks(coinId).then(list => active && setNetworks(list)).catch(e => active && setError(e.message)).finally(() => active && setLoadingNetworks(false));
139
+ return () => {
140
+ active = false;
141
+ };
142
+ }, [coinId, client]);
143
+ const canSubmit = Boolean(coinId && networkId && !submitting);
144
+ const proceed = async () => {
145
+ if (!canSubmit) return;
146
+ setSubmitting(true);
147
+ setError(null);
148
+ try {
149
+ const link = await client.createLink({
150
+ amount,
151
+ currency,
152
+ coinId,
153
+ networkId,
154
+ reference,
155
+ meta
156
+ });
157
+ const response = await client.initiatePayment(link.clientSecret);
158
+ onProceed(response.data);
159
+ } catch (e) {
160
+ const err = e instanceof Error ? e : new Error('Failed to start checkout.');
161
+ setError(err.message);
162
+ onError?.(err);
163
+ } finally {
164
+ setSubmitting(false);
165
+ }
166
+ };
167
+ const coinOptions = coins.map(c => ({
168
+ id: c.id,
169
+ label: c.name.toUpperCase(),
170
+ image: c.image
171
+ }));
172
+ const networkOptions = networks.map(n => ({
173
+ id: n.id,
174
+ label: n.name.toUpperCase()
175
+ }));
176
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_bottomSheet.BottomSheet, {
177
+ visible: visible,
178
+ onClose: onRequestClose,
179
+ onClosed: onClosed,
180
+ closeOnBackdropPress: false,
181
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
182
+ style: styles.header,
183
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.LogoIcon, {
184
+ size: 18
185
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
186
+ style: [styles.title, {
187
+ color: theme.accent
188
+ }],
189
+ children: "Pay with Clockpay"
190
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
191
+ onPress: onRequestClose,
192
+ style: styles.cancel,
193
+ hitSlop: 8,
194
+ accessibilityRole: "button",
195
+ accessibilityLabel: "Cancel",
196
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.CloseIcon, {
197
+ size: 22
198
+ })
199
+ })]
200
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.ScrollView, {
201
+ showsVerticalScrollIndicator: false,
202
+ keyboardShouldPersistTaps: "handled",
203
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
204
+ style: styles.card,
205
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
206
+ style: styles.muted,
207
+ children: "You are paying"
208
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
209
+ style: styles.amount,
210
+ children: (0, _format.formatMoney)(amount, currency)
211
+ })]
212
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(Dropdown, {
213
+ label: "Select coin",
214
+ placeholder: "Select a coin",
215
+ value: coinId,
216
+ options: coinOptions,
217
+ disabled: submitting,
218
+ loading: loadingCoins,
219
+ theme: theme,
220
+ onSelect: setCoinId
221
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(Dropdown, {
222
+ label: "Select preferred network",
223
+ placeholder: !coinId ? 'Select a coin first' : 'Select a network',
224
+ value: networkId,
225
+ options: networkOptions,
226
+ disabled: !coinId || submitting,
227
+ loading: loadingNetworks,
228
+ theme: theme,
229
+ onSelect: setNetworkId
230
+ }), error && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
231
+ style: styles.error,
232
+ children: error
233
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
234
+ style: [styles.primaryBtn, {
235
+ backgroundColor: canSubmit ? theme.accent : '#dff0f7',
236
+ borderRadius: theme.radius
237
+ }],
238
+ disabled: !canSubmit,
239
+ onPress: proceed,
240
+ children: submitting ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {
241
+ size: "small",
242
+ color: "#fff"
243
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
244
+ style: [styles.primaryBtnText, {
245
+ color: canSubmit ? '#fff' : '#9ca3af'
246
+ }],
247
+ children: "Continue"
248
+ })
249
+ })]
250
+ })]
251
+ });
252
+ }
253
+ const styles = _reactNative.StyleSheet.create({
254
+ header: {
255
+ flexDirection: 'row',
256
+ alignItems: 'center',
257
+ justifyContent: 'center',
258
+ gap: 8,
259
+ paddingBottom: 16
260
+ },
261
+ title: {
262
+ fontSize: 16,
263
+ fontWeight: '700'
264
+ },
265
+ cancel: {
266
+ position: 'absolute',
267
+ right: 0,
268
+ top: -2,
269
+ padding: 4
270
+ },
271
+ card: {
272
+ borderWidth: 1,
273
+ borderColor: '#edf1f6',
274
+ borderRadius: 16,
275
+ padding: 20,
276
+ alignItems: 'center',
277
+ marginBottom: 20
278
+ },
279
+ muted: {
280
+ fontSize: 13,
281
+ color: '#94a3b8'
282
+ },
283
+ amount: {
284
+ fontSize: 24,
285
+ fontWeight: '700',
286
+ color: '#000',
287
+ marginTop: 4
288
+ },
289
+ field: {
290
+ marginBottom: 16,
291
+ position: 'relative'
292
+ },
293
+ // Lift the open dropdown (and its overlay list) above the fields below it.
294
+ fieldOpen: {
295
+ zIndex: 20,
296
+ elevation: 20
297
+ },
298
+ label: {
299
+ fontSize: 14,
300
+ fontWeight: '500',
301
+ color: '#1e1e1e',
302
+ marginBottom: 6
303
+ },
304
+ req: {
305
+ color: '#fb7185'
306
+ },
307
+ select: {
308
+ flexDirection: 'row',
309
+ alignItems: 'center',
310
+ justifyContent: 'space-between',
311
+ borderWidth: 1,
312
+ borderColor: '#d9d9d9',
313
+ borderRadius: 8,
314
+ paddingVertical: 12,
315
+ paddingHorizontal: 12
316
+ },
317
+ selectDisabled: {
318
+ backgroundColor: '#f5f5f5'
319
+ },
320
+ selectValue: {
321
+ flexDirection: 'row',
322
+ alignItems: 'center',
323
+ gap: 8,
324
+ flexShrink: 1
325
+ },
326
+ selectText: {
327
+ fontSize: 14,
328
+ color: '#1e1e1e'
329
+ },
330
+ placeholder: {
331
+ color: '#9ca3af'
332
+ },
333
+ logo: {
334
+ width: 20,
335
+ height: 20,
336
+ borderRadius: 10,
337
+ overflow: 'hidden',
338
+ backgroundColor: '#f0f2f5',
339
+ alignItems: 'center',
340
+ justifyContent: 'center'
341
+ },
342
+ options: {
343
+ position: 'absolute',
344
+ top: '100%',
345
+ left: 0,
346
+ right: 0,
347
+ marginTop: 6,
348
+ zIndex: 20,
349
+ elevation: 8,
350
+ backgroundColor: '#ffffff',
351
+ borderWidth: 1,
352
+ borderColor: '#edf1f6',
353
+ borderRadius: 8,
354
+ maxHeight: 220,
355
+ overflow: 'hidden',
356
+ shadowColor: '#0f172a',
357
+ shadowOpacity: 0.18,
358
+ shadowRadius: 12,
359
+ shadowOffset: {
360
+ width: 0,
361
+ height: 6
362
+ }
363
+ },
364
+ option: {
365
+ flexDirection: 'row',
366
+ alignItems: 'center',
367
+ gap: 8,
368
+ paddingVertical: 12,
369
+ paddingHorizontal: 12,
370
+ borderBottomWidth: 1,
371
+ borderBottomColor: '#f1f5f9'
372
+ },
373
+ optionText: {
374
+ fontSize: 14,
375
+ color: '#1e1e1e'
376
+ },
377
+ error: {
378
+ color: '#ef4444',
379
+ fontSize: 13,
380
+ marginBottom: 12
381
+ },
382
+ primaryBtn: {
383
+ width: '100%',
384
+ paddingVertical: 15,
385
+ alignItems: 'center',
386
+ marginTop: 4
387
+ },
388
+ primaryBtnText: {
389
+ fontSize: 16,
390
+ fontWeight: '600'
391
+ }
392
+ });
393
+ //# sourceMappingURL=selection-sheet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_reactNativeSvg","_client","_format","_bottomSheet","_icons","_jsxRuntime","CoinLogo","uri","jsx","View","style","styles","logo","children","SvgUri","width","height","Dropdown","label","placeholder","value","options","disabled","loading","theme","onSelect","open","setOpen","useState","selected","find","o","id","jsxs","field","fieldOpen","Text","req","TouchableOpacity","activeOpacity","select","selectDisabled","onPress","selectValue","image","selectText","ActivityIndicator","size","color","ChevronDownIcon","map","option","optionText","accent","fontWeight","SelectionSheet","visible","publicKey","apiBaseUrl","amount","currency","reference","meta","onRequestClose","onClosed","onProceed","onError","client","useMemo","ClockPayClient","coins","setCoins","networks","setNetworks","coinId","setCoinId","networkId","setNetworkId","loadingCoins","setLoadingCoins","loadingNetworks","setLoadingNetworks","submitting","setSubmitting","error","setError","useEffect","active","getCoins","then","list","catch","e","message","finally","getNetworks","canSubmit","Boolean","proceed","link","createLink","response","initiatePayment","clientSecret","data","err","Error","coinOptions","c","name","toUpperCase","networkOptions","n","BottomSheet","onClose","closeOnBackdropPress","header","LogoIcon","title","Pressable","cancel","hitSlop","accessibilityRole","accessibilityLabel","CloseIcon","ScrollView","showsVerticalScrollIndicator","keyboardShouldPersistTaps","card","muted","formatMoney","primaryBtn","backgroundColor","borderRadius","radius","primaryBtnText","StyleSheet","create","flexDirection","alignItems","justifyContent","gap","paddingBottom","fontSize","position","right","top","padding","borderWidth","borderColor","marginBottom","marginTop","zIndex","elevation","paddingVertical","paddingHorizontal","flexShrink","overflow","left","maxHeight","shadowColor","shadowOpacity","shadowRadius","shadowOffset","borderBottomWidth","borderBottomColor"],"sourceRoot":"..\\..\\..\\src","sources":["components/selection-sheet.tsx"],"mappings":"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","ignoreList":[]}
@@ -3,6 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.formatMoney = formatMoney;
6
7
  exports.formatTime = formatTime;
7
8
  exports.resolveNetworkCode = resolveNetworkCode;
8
9
  exports.truncateMiddle = truncateMiddle;
@@ -14,6 +15,16 @@ function formatTime(totalSeconds) {
14
15
  const seconds = safe % 60;
15
16
  return `${String(minutes).padStart(2, '0')}:${String(seconds).padStart(2, '0')}`;
16
17
  }
18
+ const CURRENCY_SYMBOLS = {
19
+ ngn: '₦',
20
+ usd: '$'
21
+ };
22
+
23
+ /** Formats a fiat amount with its currency symbol, e.g. `formatMoney(20000, 'ngn')` → `₦20,000`. */
24
+ function formatMoney(amount, currency) {
25
+ const symbol = CURRENCY_SYMBOLS[currency?.toLowerCase()] ?? '';
26
+ return `${symbol}${amount.toLocaleString()}`;
27
+ }
17
28
 
18
29
  /** Resolves the on-chain code used to verify a transaction for a given checkout. */
19
30
  function resolveNetworkCode(network, fallback) {
@@ -1 +1 @@
1
- {"version":3,"names":["_constants","require","formatTime","totalSeconds","safe","Math","max","minutes","floor","seconds","String","padStart","resolveNetworkCode","network","fallback","key","toLowerCase","NETWORK_CODES","truncateMiddle","value","lead","tail","length","slice"],"sourceRoot":"..\\..\\..\\src","sources":["internal/format.ts"],"mappings":";;;;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAEA;AACO,SAASC,UAAUA,CAACC,YAAoB,EAAU;EACvD,MAAMC,IAAI,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEH,YAAY,CAAC;EACtC,MAAMI,OAAO,GAAGF,IAAI,CAACG,KAAK,CAACJ,IAAI,GAAG,EAAE,CAAC;EACrC,MAAMK,OAAO,GAAGL,IAAI,GAAG,EAAE;EACzB,OAAO,GAAGM,MAAM,CAACH,OAAO,CAAC,CAACI,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAID,MAAM,CAACD,OAAO,CAAC,CAACE,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;AAClF;;AAEA;AACO,SAASC,kBAAkBA,CAACC,OAAgB,EAAEC,QAAiB,EAAU;EAC9E,MAAMC,GAAG,GAAGF,OAAO,EAAEG,WAAW,CAAC,CAAC,IAAI,EAAE;EACxC,OAAOC,wBAAa,CAACF,GAAG,CAAC,IAAID,QAAQ,IAAI,EAAE;AAC7C;;AAEA;AACO,SAASI,cAAcA,CAACC,KAAa,EAAEC,IAAI,GAAG,EAAE,EAAEC,IAAI,GAAG,CAAC,EAAU;EACzE,IAAIF,KAAK,CAACG,MAAM,IAAIF,IAAI,GAAGC,IAAI,GAAG,CAAC,EAAE,OAAOF,KAAK;EACjD,OAAO,GAAGA,KAAK,CAACI,KAAK,CAAC,CAAC,EAAEH,IAAI,CAAC,IAAID,KAAK,CAACI,KAAK,CAAC,CAACF,IAAI,CAAC,EAAE;AACxD","ignoreList":[]}
1
+ {"version":3,"names":["_constants","require","formatTime","totalSeconds","safe","Math","max","minutes","floor","seconds","String","padStart","CURRENCY_SYMBOLS","ngn","usd","formatMoney","amount","currency","symbol","toLowerCase","toLocaleString","resolveNetworkCode","network","fallback","key","NETWORK_CODES","truncateMiddle","value","lead","tail","length","slice"],"sourceRoot":"..\\..\\..\\src","sources":["internal/format.ts"],"mappings":";;;;;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAEA;AACO,SAASC,UAAUA,CAACC,YAAoB,EAAU;EACvD,MAAMC,IAAI,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEH,YAAY,CAAC;EACtC,MAAMI,OAAO,GAAGF,IAAI,CAACG,KAAK,CAACJ,IAAI,GAAG,EAAE,CAAC;EACrC,MAAMK,OAAO,GAAGL,IAAI,GAAG,EAAE;EACzB,OAAO,GAAGM,MAAM,CAACH,OAAO,CAAC,CAACI,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAID,MAAM,CAACD,OAAO,CAAC,CAACE,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;AAClF;AAEA,MAAMC,gBAAwC,GAAG;EAAEC,GAAG,EAAE,GAAG;EAAEC,GAAG,EAAE;AAAI,CAAC;;AAEvE;AACO,SAASC,WAAWA,CAACC,MAAc,EAAEC,QAAgB,EAAU;EACpE,MAAMC,MAAM,GAAGN,gBAAgB,CAACK,QAAQ,EAAEE,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE;EAC9D,OAAO,GAAGD,MAAM,GAAGF,MAAM,CAACI,cAAc,CAAC,CAAC,EAAE;AAC9C;;AAEA;AACO,SAASC,kBAAkBA,CAACC,OAAgB,EAAEC,QAAiB,EAAU;EAC9E,MAAMC,GAAG,GAAGF,OAAO,EAAEH,WAAW,CAAC,CAAC,IAAI,EAAE;EACxC,OAAOM,wBAAa,CAACD,GAAG,CAAC,IAAID,QAAQ,IAAI,EAAE;AAC7C;;AAEA;AACO,SAASG,cAAcA,CAACC,KAAa,EAAEC,IAAI,GAAG,EAAE,EAAEC,IAAI,GAAG,CAAC,EAAU;EACzE,IAAIF,KAAK,CAACG,MAAM,IAAIF,IAAI,GAAGC,IAAI,GAAG,CAAC,EAAE,OAAOF,KAAK;EACjD,OAAO,GAAGA,KAAK,CAACI,KAAK,CAAC,CAAC,EAAEH,IAAI,CAAC,IAAID,KAAK,CAACI,KAAK,CAAC,CAACF,IAAI,CAAC,EAAE;AACxD","ignoreList":[]}
@@ -35,6 +35,45 @@ export class ClockPayClient {
35
35
  });
36
36
  }
37
37
 
38
+ /** Lists the coins a buyer can pay with. */
39
+ async getCoins() {
40
+ try {
41
+ const {
42
+ data
43
+ } = await this.http.get(endpoints.coins);
44
+ return data.data;
45
+ } catch (error) {
46
+ throw toError(error, 'Failed to load coins.');
47
+ }
48
+ }
49
+
50
+ /** Lists the settlement networks available for a given coin. */
51
+ async getNetworks(coinId) {
52
+ if (!coinId) {
53
+ throw new Error('ClockPay: a coinId is required.');
54
+ }
55
+ try {
56
+ const {
57
+ data
58
+ } = await this.http.get(`${endpoints.networks}/${coinId}`);
59
+ return data.data;
60
+ } catch (error) {
61
+ throw toError(error, 'Failed to load networks.');
62
+ }
63
+ }
64
+
65
+ /** Generates a payment link, returning its reference and client secret. */
66
+ async createLink(payload) {
67
+ try {
68
+ const {
69
+ data
70
+ } = await this.http.post(endpoints.createLink, payload);
71
+ return data.data;
72
+ } catch (error) {
73
+ throw toError(error, 'Failed to create payment link.');
74
+ }
75
+ }
76
+
38
77
  /** Initiates a checkout for the given client secret. */
39
78
  async initiatePayment(clientSecret) {
40
79
  if (!clientSecret) {
@@ -1 +1 @@
1
- {"version":3,"names":["axios","AxiosError","endpoints","resolveApiBaseUrl","toError","error","fallback","message","response","data","Error","ClockPayClient","constructor","publicKey","apiBaseUrl","http","create","baseURL","headers","Accept","initiatePayment","clientSecret","post","verifyCrypto","payload"],"sourceRoot":"..\\..\\..\\src","sources":["api/client.ts"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAA4B,OAAO;AAC7D,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,iBAAiB,QAAQ,uBAAuB;AAOzD;AACA,SAASC,OAAOA,CAACC,KAAc,EAAEC,QAAgB,EAAS;EACxD,IAAID,KAAK,YAAYJ,UAAU,EAAE;IAC/B,MAAMM,OAAO,GACVF,KAAK,CAACG,QAAQ,EAAEC,IAAI,EAAuCF,OAAO,IACnEF,KAAK,CAACE,OAAO;IACf,OAAO,IAAIG,KAAK,CAACH,OAAO,IAAID,QAAQ,CAAC;EACvC;EACA,IAAID,KAAK,YAAYK,KAAK,EAAE,OAAOL,KAAK;EACxC,OAAO,IAAIK,KAAK,CAACJ,QAAQ,CAAC;AAC5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMK,cAAc,CAAC;EAG1BC,WAAWA,CAACC,SAAiB,EAAEC,UAAmB,EAAE;IAClD,IAAI,CAACD,SAAS,EAAE;MACd,MAAM,IAAIH,KAAK,CAAC,oCAAoC,CAAC;IACvD;IACA,IAAI,CAACK,IAAI,GAAGf,KAAK,CAACgB,MAAM,CAAC;MACvBC,OAAO,EAAEd,iBAAiB,CAACU,SAAS,EAAEC,UAAU,CAAC;MACjDI,OAAO,EAAE;QACPC,MAAM,EAAE,kBAAkB;QAC1B,cAAc,EAAE,kBAAkB;QAClC,eAAe,EAAEN;MACnB;IACF,CAAC,CAAC;EACJ;;EAEA;EACA,MAAMO,eAAeA,CAACC,YAAoB,EAA6B;IACrE,IAAI,CAACA,YAAY,EAAE;MACjB,MAAM,IAAIX,KAAK,CAAC,uCAAuC,CAAC;IAC1D;IACA,IAAI;MACF,MAAM;QAAED;MAAK,CAAC,GAAG,MAAM,IAAI,CAACM,IAAI,CAACO,IAAI,CACnCpB,SAAS,CAACkB,eAAe,EACzB;QAAEC;MAAa,CACjB,CAAC;MACD,OAAOZ,IAAI;IACb,CAAC,CAAC,OAAOJ,KAAK,EAAE;MACd,MAAMD,OAAO,CAACC,KAAK,EAAE,6BAA6B,CAAC;IACrD;EACF;;EAEA;EACA,MAAMkB,YAAYA,CAChBC,OAA4B,EACG;IAC/B,IAAI;MACF,MAAM;QAAEf;MAAK,CAAC,GAAG,MAAM,IAAI,CAACM,IAAI,CAACO,IAAI,CACnCpB,SAAS,CAACqB,YAAY,EACtBC,OACF,CAAC;MACD,OAAOf,IAAI;IACb,CAAC,CAAC,OAAOJ,KAAK,EAAE;MACd,MAAMD,OAAO,CAACC,KAAK,EAAE,+BAA+B,CAAC;IACvD;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"names":["axios","AxiosError","endpoints","resolveApiBaseUrl","toError","error","fallback","message","response","data","Error","ClockPayClient","constructor","publicKey","apiBaseUrl","http","create","baseURL","headers","Accept","getCoins","get","coins","getNetworks","coinId","networks","createLink","payload","post","initiatePayment","clientSecret","verifyCrypto"],"sourceRoot":"..\\..\\..\\src","sources":["api/client.ts"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
 
3
3
  export const endpoints = Object.freeze({
4
+ coins: '/wallet/client/checkout/coins',
5
+ networks: '/wallet/client/checkout/networks',
6
+ createLink: '/payment/client/create-link',
4
7
  initiatePayment: '/payment/client/checkout',
5
8
  verifyCrypto: '/transactions/verify-crypto'
6
9
  });
@@ -1 +1 @@
1
- {"version":3,"names":["endpoints","Object","freeze","initiatePayment","verifyCrypto"],"sourceRoot":"..\\..\\..\\src","sources":["api/endpoints.ts"],"mappings":";;AAAA,OAAO,MAAMA,SAAS,GAAGC,MAAM,CAACC,MAAM,CAAC;EACrCC,eAAe,EAAE,0BAA0B;EAC3CC,YAAY,EAAE;AAChB,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["endpoints","Object","freeze","coins","networks","createLink","initiatePayment","verifyCrypto"],"sourceRoot":"..\\..\\..\\src","sources":["api/endpoints.ts"],"mappings":";;AAAA,OAAO,MAAMA,SAAS,GAAGC,MAAM,CAACC,MAAM,CAAC;EACrCC,KAAK,EAAE,+BAA+B;EACtCC,QAAQ,EAAE,kCAAkC;EAC5CC,UAAU,EAAE,6BAA6B;EACzCC,eAAe,EAAE,0BAA0B;EAC3CC,YAAY,EAAE;AAChB,CAAC,CAAC","ignoreList":[]}
@@ -95,6 +95,24 @@ export function InfoIcon({
95
95
  })]
96
96
  });
97
97
  }
98
+ export function ChevronDownIcon({
99
+ size = 20,
100
+ color = '#94a3b8'
101
+ }) {
102
+ return /*#__PURE__*/_jsx(Svg, {
103
+ width: size,
104
+ height: size,
105
+ viewBox: "0 0 24 24",
106
+ fill: "none",
107
+ children: /*#__PURE__*/_jsx(Path, {
108
+ d: "M6 9L12 15L18 9",
109
+ stroke: color,
110
+ strokeWidth: 2,
111
+ strokeLinecap: "round",
112
+ strokeLinejoin: "round"
113
+ })
114
+ });
115
+ }
98
116
  export function CheckIcon({
99
117
  size = 48
100
118
  }) {
@@ -1 +1 @@
1
- {"version":3,"names":["Svg","Path","Circle","jsx","_jsx","jsxs","_jsxs","LogoIcon","size","height","width","viewBox","fill","children","d","CloseIcon","color","stroke","strokeWidth","strokeLinecap","strokeLinejoin","CopyIcon","InfoIcon","CheckIcon","cx","cy","r"],"sourceRoot":"..\\..\\..\\src","sources":["components/icons.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Svg","Path","Circle","jsx","_jsx","jsxs","_jsxs","LogoIcon","size","height","width","viewBox","fill","children","d","CloseIcon","color","stroke","strokeWidth","strokeLinecap","strokeLinejoin","CopyIcon","InfoIcon","ChevronDownIcon","CheckIcon","cx","cy","r"],"sourceRoot":"..\\..\\..\\src","sources":["components/icons.tsx"],"mappings":"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","ignoreList":[]}