@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.
- package/README.md +50 -13
- package/lib/commonjs/api/client.js +39 -0
- package/lib/commonjs/api/client.js.map +1 -1
- package/lib/commonjs/api/endpoints.js +3 -0
- package/lib/commonjs/api/endpoints.js.map +1 -1
- package/lib/commonjs/components/icons.js +19 -0
- package/lib/commonjs/components/icons.js.map +1 -1
- package/lib/commonjs/components/payment-button.js +53 -39
- package/lib/commonjs/components/payment-button.js.map +1 -1
- package/lib/commonjs/components/selection-sheet.js +393 -0
- package/lib/commonjs/components/selection-sheet.js.map +1 -0
- package/lib/commonjs/internal/format.js +11 -0
- package/lib/commonjs/internal/format.js.map +1 -1
- package/lib/module/api/client.js +39 -0
- package/lib/module/api/client.js.map +1 -1
- package/lib/module/api/endpoints.js +3 -0
- package/lib/module/api/endpoints.js.map +1 -1
- package/lib/module/components/icons.js +18 -0
- package/lib/module/components/icons.js.map +1 -1
- package/lib/module/components/payment-button.js +56 -42
- package/lib/module/components/payment-button.js.map +1 -1
- package/lib/module/components/selection-sheet.js +391 -0
- package/lib/module/components/selection-sheet.js.map +1 -0
- package/lib/module/internal/format.js +10 -0
- package/lib/module/internal/format.js.map +1 -1
- package/lib/typescript/api/client.d.ts +7 -1
- package/lib/typescript/api/client.d.ts.map +1 -1
- package/lib/typescript/api/endpoints.d.ts +3 -0
- package/lib/typescript/api/endpoints.d.ts.map +1 -1
- package/lib/typescript/components/icons.d.ts +1 -0
- package/lib/typescript/components/icons.d.ts.map +1 -1
- package/lib/typescript/components/payment-button.d.ts +3 -2
- package/lib/typescript/components/payment-button.d.ts.map +1 -1
- package/lib/typescript/components/selection-sheet.d.ts +25 -0
- package/lib/typescript/components/selection-sheet.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +1 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/internal/format.d.ts +2 -0
- package/lib/typescript/internal/format.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +65 -2
- package/lib/typescript/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/api/client.ts +45 -0
- package/src/api/endpoints.ts +3 -0
- package/src/components/icons.tsx +14 -0
- package/src/components/payment-button.tsx +54 -38
- package/src/components/selection-sheet.tsx +383 -0
- package/src/index.ts +10 -0
- package/src/internal/format.ts +8 -0
- package/src/types.ts +75 -2
package/README.md
CHANGED
|
@@ -7,6 +7,7 @@ single `<PaymentButton />` — it opens a **Stripe-style bottom-sheet** payment
|
|
|
7
7
|
that slides up from the bottom of the screen.
|
|
8
8
|
|
|
9
9
|
- 📱 **Native bottom sheet** — slides up with a dimmed backdrop and drag-to-dismiss.
|
|
10
|
+
- 🪙 **Buyer picks coin & network** — a selection sheet fetches the coins and networks you support.
|
|
10
11
|
- 🎨 **Themeable** — a Stripe-style `appearance` object controls colours and shape.
|
|
11
12
|
- 🔑 **Env-aware** — the API gateway is auto-selected from your key prefix.
|
|
12
13
|
- 🛡️ **Type-safe** — full TypeScript types for props, callbacks and responses.
|
|
@@ -31,11 +32,20 @@ cd ios && pod install # iOS only
|
|
|
31
32
|
```tsx
|
|
32
33
|
import { PaymentButton } from '@clockpay/react-native';
|
|
33
34
|
|
|
34
|
-
export function Checkout(
|
|
35
|
+
export function Checkout() {
|
|
35
36
|
return (
|
|
36
37
|
<PaymentButton
|
|
37
|
-
publicKey="cpay_test_pk_..."
|
|
38
|
-
|
|
38
|
+
publicKey="cpay_test_pk_..." // from your developer dashboard
|
|
39
|
+
amount={20000} // in the currency below
|
|
40
|
+
currency="ngn" // 'ngn' | 'usd'
|
|
41
|
+
reference="order_12345" // your own order reference
|
|
42
|
+
meta={{
|
|
43
|
+
title: 'Order #12345',
|
|
44
|
+
description: 'Two coffees and a croissant',
|
|
45
|
+
fullName: 'Paul Paito',
|
|
46
|
+
email: 'paul@example.com', // optional
|
|
47
|
+
phoneNumber: { code: '+234', number: '09012345678' }, // optional
|
|
48
|
+
}}
|
|
39
49
|
appearance={{ buttonColor: '#27AAE1', variant: 'outline' }}
|
|
40
50
|
onSuccess={(data) => console.log('Payment confirmed', data)}
|
|
41
51
|
onError={(error) => console.error(error)}
|
|
@@ -44,19 +54,42 @@ export function Checkout({ clientSecret }: { clientSecret: string }) {
|
|
|
44
54
|
}
|
|
45
55
|
```
|
|
46
56
|
|
|
47
|
-
Pressing the button
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
57
|
+
Pressing the button opens a **selection sheet** where the buyer picks a coin and
|
|
58
|
+
network. On continue, the SDK generates a payment link and presents the payment
|
|
59
|
+
sheet: a QR code + deposit address to transfer to, a countdown, then a screen to
|
|
60
|
+
paste the transaction hash for on-chain verification. `onSuccess` fires once the
|
|
61
|
+
payment is confirmed.
|
|
62
|
+
|
|
63
|
+
> No `clientSecret` or server-side call is required — the SDK creates the payment
|
|
64
|
+
> link from the order details you pass. Your `publicKey` is safe in the app; keep
|
|
65
|
+
> your **secret** key on the server.
|
|
66
|
+
|
|
67
|
+
### Order details (`meta`)
|
|
68
|
+
|
|
69
|
+
The business supplies the order and buyer details up front — the buyer only picks a
|
|
70
|
+
coin and network.
|
|
71
|
+
|
|
72
|
+
| Field | Type | Required | Description |
|
|
73
|
+
|-------|------|----------|-------------|
|
|
74
|
+
| `amount` | `number` | Yes | Order amount, in `currency`. |
|
|
75
|
+
| `currency` | `'ngn' \| 'usd'` | Yes | Fiat currency of `amount`. |
|
|
76
|
+
| `reference` | `string` | Yes | Your own reference for the order. |
|
|
77
|
+
| `meta.title` | `string` | Yes | Short order title. |
|
|
78
|
+
| `meta.description` | `string` | Yes | Order description. |
|
|
79
|
+
| `meta.fullName` | `string` | Yes | Buyer's full name. |
|
|
80
|
+
| `meta.email` | `string` | No | Buyer email. |
|
|
81
|
+
| `meta.customerId` | `string` | No | Your id for the buyer. |
|
|
82
|
+
| `meta.phoneNumber` | `{ code: string; number: string }` | No | Buyer phone number. |
|
|
53
83
|
|
|
54
84
|
## Theming
|
|
55
85
|
|
|
56
86
|
```tsx
|
|
57
87
|
<PaymentButton
|
|
58
88
|
publicKey="cpay_test_pk_..."
|
|
59
|
-
|
|
89
|
+
amount={20000}
|
|
90
|
+
currency="ngn"
|
|
91
|
+
reference="order_12345"
|
|
92
|
+
meta={{ title: 'Order #12345', description: 'Two coffees', fullName: 'Paul Paito' }}
|
|
60
93
|
appearance={{
|
|
61
94
|
variant: 'solid', // 'solid' | 'outline' (default: 'outline')
|
|
62
95
|
buttonColor: '#6C5CE7', // primary brand colour
|
|
@@ -74,7 +107,10 @@ hash for on-chain verification. `onSuccess` fires once the payment is confirmed.
|
|
|
74
107
|
| Prop | Type | Required | Description |
|
|
75
108
|
|------|------|----------|-------------|
|
|
76
109
|
| `publicKey` | `string` | Yes | Public key from the developer dashboard. |
|
|
77
|
-
| `
|
|
110
|
+
| `amount` | `number` | Yes | Order amount, in `currency`. |
|
|
111
|
+
| `currency` | `'ngn' \| 'usd'` | Yes | Fiat currency of `amount`. |
|
|
112
|
+
| `reference` | `string` | Yes | Your own reference for the order. |
|
|
113
|
+
| `meta` | `CheckoutMeta` | Yes | Order/buyer details (see [Order details](#order-details-meta)). |
|
|
78
114
|
| `appearance` | `ClockPayAppearance` | No | Button/sheet theming. |
|
|
79
115
|
| `label` | `ReactNode` | No | Button label. Defaults to `"Pay with Clockpay"`. |
|
|
80
116
|
| `disabled` | `boolean` | No | Disables the button. |
|
|
@@ -97,8 +133,9 @@ hash for on-chain verification. `onSuccess` fires once the payment is confirmed.
|
|
|
97
133
|
|
|
98
134
|
## Supported networks
|
|
99
135
|
|
|
100
|
-
ETH, Optimism, BSC, Polygon, and Tron. The
|
|
101
|
-
|
|
136
|
+
ETH, Optimism, BSC, Polygon, and Tron. The coins and networks offered on the
|
|
137
|
+
selection sheet come from your account (`/wallet/checkout/coins` and
|
|
138
|
+
`/wallet/checkout/networks/{coinId}`); the buyer chooses which to pay with.
|
|
102
139
|
|
|
103
140
|
## Local development
|
|
104
141
|
|
|
@@ -40,6 +40,45 @@ class ClockPayClient {
|
|
|
40
40
|
});
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
+
/** Lists the coins a buyer can pay with. */
|
|
44
|
+
async getCoins() {
|
|
45
|
+
try {
|
|
46
|
+
const {
|
|
47
|
+
data
|
|
48
|
+
} = await this.http.get(_endpoints.endpoints.coins);
|
|
49
|
+
return data.data;
|
|
50
|
+
} catch (error) {
|
|
51
|
+
throw toError(error, 'Failed to load coins.');
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/** Lists the settlement networks available for a given coin. */
|
|
56
|
+
async getNetworks(coinId) {
|
|
57
|
+
if (!coinId) {
|
|
58
|
+
throw new Error('ClockPay: a coinId is required.');
|
|
59
|
+
}
|
|
60
|
+
try {
|
|
61
|
+
const {
|
|
62
|
+
data
|
|
63
|
+
} = await this.http.get(`${_endpoints.endpoints.networks}/${coinId}`);
|
|
64
|
+
return data.data;
|
|
65
|
+
} catch (error) {
|
|
66
|
+
throw toError(error, 'Failed to load networks.');
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/** Generates a payment link, returning its reference and client secret. */
|
|
71
|
+
async createLink(payload) {
|
|
72
|
+
try {
|
|
73
|
+
const {
|
|
74
|
+
data
|
|
75
|
+
} = await this.http.post(_endpoints.endpoints.createLink, payload);
|
|
76
|
+
return data.data;
|
|
77
|
+
} catch (error) {
|
|
78
|
+
throw toError(error, 'Failed to create payment link.');
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
43
82
|
/** Initiates a checkout for the given client secret. */
|
|
44
83
|
async initiatePayment(clientSecret) {
|
|
45
84
|
if (!clientSecret) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_axios","_interopRequireWildcard","require","_endpoints","_constants","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","toError","error","fallback","AxiosError","message","response","data","Error","ClockPayClient","constructor","publicKey","apiBaseUrl","http","axios","create","baseURL","resolveApiBaseUrl","headers","Accept","
|
|
1
|
+
{"version":3,"names":["_axios","_interopRequireWildcard","require","_endpoints","_constants","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","toError","error","fallback","AxiosError","message","response","data","Error","ClockPayClient","constructor","publicKey","apiBaseUrl","http","axios","create","baseURL","resolveApiBaseUrl","headers","Accept","getCoins","endpoints","coins","getNetworks","coinId","networks","createLink","payload","post","initiatePayment","clientSecret","verifyCrypto","exports"],"sourceRoot":"..\\..\\..\\src","sources":["api/client.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,6 +5,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.endpoints = void 0;
|
|
7
7
|
const endpoints = exports.endpoints = Object.freeze({
|
|
8
|
+
coins: '/wallet/client/checkout/coins',
|
|
9
|
+
networks: '/wallet/client/checkout/networks',
|
|
10
|
+
createLink: '/payment/client/create-link',
|
|
8
11
|
initiatePayment: '/payment/client/checkout',
|
|
9
12
|
verifyCrypto: '/transactions/verify-crypto'
|
|
10
13
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["endpoints","exports","Object","freeze","initiatePayment","verifyCrypto"],"sourceRoot":"..\\..\\..\\src","sources":["api/endpoints.ts"],"mappings":";;;;;;AAAO,MAAMA,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,MAAM,CAACC,MAAM,CAAC;EACrCC,eAAe,EAAE,0BAA0B;EAC3CC,YAAY,EAAE;AAChB,CAAC,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["endpoints","exports","Object","freeze","coins","networks","createLink","initiatePayment","verifyCrypto"],"sourceRoot":"..\\..\\..\\src","sources":["api/endpoints.ts"],"mappings":";;;;;;AAAO,MAAMA,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,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":[]}
|
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.CheckIcon = CheckIcon;
|
|
7
|
+
exports.ChevronDownIcon = ChevronDownIcon;
|
|
7
8
|
exports.CloseIcon = CloseIcon;
|
|
8
9
|
exports.CopyIcon = CopyIcon;
|
|
9
10
|
exports.InfoIcon = InfoIcon;
|
|
@@ -104,6 +105,24 @@ function InfoIcon({
|
|
|
104
105
|
})]
|
|
105
106
|
});
|
|
106
107
|
}
|
|
108
|
+
function ChevronDownIcon({
|
|
109
|
+
size = 20,
|
|
110
|
+
color = '#94a3b8'
|
|
111
|
+
}) {
|
|
112
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.default, {
|
|
113
|
+
width: size,
|
|
114
|
+
height: size,
|
|
115
|
+
viewBox: "0 0 24 24",
|
|
116
|
+
fill: "none",
|
|
117
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Path, {
|
|
118
|
+
d: "M6 9L12 15L18 9",
|
|
119
|
+
stroke: color,
|
|
120
|
+
strokeWidth: 2,
|
|
121
|
+
strokeLinecap: "round",
|
|
122
|
+
strokeLinejoin: "round"
|
|
123
|
+
})
|
|
124
|
+
});
|
|
125
|
+
}
|
|
107
126
|
function CheckIcon({
|
|
108
127
|
size = 48
|
|
109
128
|
}) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeSvg","_interopRequireWildcard","require","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","LogoIcon","size","height","width","jsxs","viewBox","fill","children","jsx","Path","d","CloseIcon","color","stroke","strokeWidth","strokeLinecap","strokeLinejoin","CopyIcon","InfoIcon","CheckIcon","Circle","cx","cy"],"sourceRoot":"..\\..\\..\\src","sources":["components/icons.tsx"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_reactNativeSvg","_interopRequireWildcard","require","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","LogoIcon","size","height","width","jsxs","viewBox","fill","children","jsx","Path","d","CloseIcon","color","stroke","strokeWidth","strokeLinecap","strokeLinejoin","CopyIcon","InfoIcon","ChevronDownIcon","CheckIcon","Circle","cx","cy"],"sourceRoot":"..\\..\\..\\src","sources":["components/icons.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,18 +6,22 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.PaymentButton = PaymentButton;
|
|
7
7
|
var _react = require("react");
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
|
-
var _client = require("../api/client");
|
|
10
9
|
var _theme = require("../internal/theme");
|
|
10
|
+
var _selectionSheet = require("./selection-sheet");
|
|
11
11
|
var _paymentSheet = require("./payment-sheet");
|
|
12
12
|
var _icons = require("./icons");
|
|
13
13
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
14
|
/**
|
|
15
15
|
* Drop-in payment button for React Native. Renders a "Pay with Clockpay" trigger
|
|
16
|
-
* that
|
|
16
|
+
* that opens a coin/network selection sheet, generates a payment link, then opens
|
|
17
|
+
* a Stripe-style bottom-sheet payment modal.
|
|
17
18
|
*/
|
|
18
19
|
function PaymentButton({
|
|
19
20
|
publicKey,
|
|
20
|
-
|
|
21
|
+
amount,
|
|
22
|
+
currency,
|
|
23
|
+
reference,
|
|
24
|
+
meta,
|
|
21
25
|
appearance,
|
|
22
26
|
label = 'Pay with Clockpay',
|
|
23
27
|
disabled,
|
|
@@ -27,62 +31,72 @@ function PaymentButton({
|
|
|
27
31
|
onError,
|
|
28
32
|
onClose
|
|
29
33
|
}) {
|
|
34
|
+
const [selecting, setSelecting] = (0, _react.useState)(false);
|
|
30
35
|
const [checkout, setCheckout] = (0, _react.useState)(null);
|
|
31
|
-
const [
|
|
32
|
-
|
|
36
|
+
const [paymentVisible, setPaymentVisible] = (0, _react.useState)(false);
|
|
37
|
+
// Holds the checkout produced by the selection sheet until it finishes closing,
|
|
38
|
+
// so the two sheets never present at the same time.
|
|
39
|
+
const pending = (0, _react.useRef)(null);
|
|
33
40
|
const theme = (0, _react.useMemo)(() => (0, _theme.resolveTheme)(appearance), [appearance]);
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
setCheckout(
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
setLoading(false);
|
|
41
|
+
const handleProceed = data => {
|
|
42
|
+
pending.current = data;
|
|
43
|
+
setSelecting(false); // animate the selection sheet out first
|
|
44
|
+
};
|
|
45
|
+
const handleSelectionClosed = () => {
|
|
46
|
+
if (pending.current) {
|
|
47
|
+
setCheckout(pending.current);
|
|
48
|
+
pending.current = null;
|
|
49
|
+
setPaymentVisible(true);
|
|
50
|
+
} else {
|
|
51
|
+
onClose?.();
|
|
46
52
|
}
|
|
47
53
|
};
|
|
48
|
-
const
|
|
54
|
+
const handlePaymentClosed = () => {
|
|
49
55
|
setCheckout(null);
|
|
50
56
|
onClose?.();
|
|
51
57
|
};
|
|
52
58
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
53
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.
|
|
59
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
|
|
54
60
|
activeOpacity: 0.8,
|
|
55
|
-
disabled: disabled
|
|
56
|
-
onPress:
|
|
61
|
+
disabled: disabled,
|
|
62
|
+
onPress: () => setSelecting(true),
|
|
57
63
|
style: [styles.button, {
|
|
58
64
|
backgroundColor: theme.buttonBg,
|
|
59
65
|
borderColor: theme.buttonBorder,
|
|
60
66
|
borderRadius: theme.radius,
|
|
61
|
-
opacity: disabled
|
|
67
|
+
opacity: disabled ? 0.6 : 1
|
|
62
68
|
}],
|
|
63
|
-
children:
|
|
64
|
-
size:
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
69
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.LogoIcon, {
|
|
70
|
+
size: 16
|
|
71
|
+
}), typeof label === 'string' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
72
|
+
style: [styles.label, {
|
|
73
|
+
color: theme.buttonFg,
|
|
74
|
+
fontFamily: theme.fontFamily
|
|
75
|
+
}],
|
|
76
|
+
children: label
|
|
77
|
+
}) : label]
|
|
78
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_selectionSheet.SelectionSheet, {
|
|
79
|
+
visible: selecting,
|
|
80
|
+
publicKey: publicKey,
|
|
81
|
+
apiBaseUrl: apiBaseUrl,
|
|
82
|
+
theme: theme,
|
|
83
|
+
amount: amount,
|
|
84
|
+
currency: currency,
|
|
85
|
+
reference: reference,
|
|
86
|
+
meta: meta,
|
|
87
|
+
onRequestClose: () => setSelecting(false),
|
|
88
|
+
onClosed: handleSelectionClosed,
|
|
89
|
+
onProceed: handleProceed,
|
|
90
|
+
onError: onError
|
|
77
91
|
}), checkout && /*#__PURE__*/(0, _jsxRuntime.jsx)(_paymentSheet.PaymentSheet, {
|
|
78
|
-
visible:
|
|
92
|
+
visible: paymentVisible,
|
|
79
93
|
checkout: checkout,
|
|
80
94
|
publicKey: publicKey,
|
|
81
95
|
apiBaseUrl: apiBaseUrl,
|
|
82
96
|
theme: theme,
|
|
83
97
|
redirectUrl: redirectUrl,
|
|
84
|
-
onRequestClose: () =>
|
|
85
|
-
onClosed:
|
|
98
|
+
onRequestClose: () => setPaymentVisible(false),
|
|
99
|
+
onClosed: handlePaymentClosed,
|
|
86
100
|
onSuccess: onSuccess,
|
|
87
101
|
onError: onError
|
|
88
102
|
})]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_theme","_selectionSheet","_paymentSheet","_icons","_jsxRuntime","PaymentButton","publicKey","amount","currency","reference","meta","appearance","label","disabled","apiBaseUrl","redirectUrl","onSuccess","onError","onClose","selecting","setSelecting","useState","checkout","setCheckout","paymentVisible","setPaymentVisible","pending","useRef","theme","useMemo","resolveTheme","handleProceed","data","current","handleSelectionClosed","handlePaymentClosed","jsxs","View","children","TouchableOpacity","activeOpacity","onPress","style","styles","button","backgroundColor","buttonBg","borderColor","buttonBorder","borderRadius","radius","opacity","jsx","LogoIcon","size","Text","color","buttonFg","fontFamily","SelectionSheet","visible","onRequestClose","onClosed","onProceed","PaymentSheet","StyleSheet","create","flexDirection","alignItems","justifyContent","gap","paddingVertical","paddingHorizontal","borderWidth","fontSize","fontWeight"],"sourceRoot":"..\\..\\..\\src","sources":["components/payment-button.tsx"],"mappings":"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","ignoreList":[]}
|