@moneydevkit/core 0.7.0-beta.1 → 0.7.0-beta.11
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/dist/actions.d.ts +50 -8
- package/dist/actions.js +22 -10
- package/dist/actions.js.map +1 -1
- package/dist/checkout-utils.d.ts +31 -0
- package/dist/checkout-utils.js +61 -0
- package/dist/checkout-utils.js.map +1 -0
- package/dist/client-actions.d.ts +2 -1
- package/dist/client-actions.js +7 -0
- package/dist/client-actions.js.map +1 -1
- package/dist/client.d.ts +1 -0
- package/dist/client.js +1 -0
- package/dist/client.js.map +1 -1
- package/dist/components/Checkout.d.ts +1 -1
- package/dist/components/Checkout.js +36 -1
- package/dist/components/Checkout.js.map +1 -1
- package/dist/components/checkout/PendingPaymentCheckout.js +27 -7
- package/dist/components/checkout/PendingPaymentCheckout.js.map +1 -1
- package/dist/components/checkout/UnconfirmedCheckout.js +38 -23
- package/dist/components/checkout/UnconfirmedCheckout.js.map +1 -1
- package/dist/handlers/checkout.d.ts +52 -0
- package/dist/handlers/checkout.js +191 -4
- package/dist/handlers/checkout.js.map +1 -1
- package/dist/handlers/products.d.ts +1 -0
- package/dist/handlers/products.js +18 -0
- package/dist/handlers/products.js.map +1 -0
- package/dist/hooks/useCheckout.d.ts +18 -0
- package/dist/hooks/useCheckout.js +18 -0
- package/dist/hooks/useCheckout.js.map +1 -1
- package/dist/hooks/useProducts.d.ts +17 -0
- package/dist/hooks/useProducts.js +34 -0
- package/dist/hooks/useProducts.js.map +1 -0
- package/dist/lightning-node.js +3 -3
- package/dist/lightning-node.js.map +1 -1
- package/dist/mdk-client.d.ts +18 -2
- package/dist/mdk-client.js +10 -1
- package/dist/mdk-client.js.map +1 -1
- package/dist/preview.js +10 -1
- package/dist/preview.js.map +1 -1
- package/dist/route.d.ts +17 -2
- package/dist/route.js +67 -1
- package/dist/route.js.map +1 -1
- package/dist/startup-validation.d.ts +3 -3
- package/dist/startup-validation.js +4 -30
- package/dist/startup-validation.js.map +1 -1
- package/package.json +3 -4
package/dist/actions.d.ts
CHANGED
|
@@ -1,6 +1,23 @@
|
|
|
1
|
-
import type { Checkout, ConfirmCheckout } from '@moneydevkit/api-contract';
|
|
1
|
+
import type { Checkout, ConfirmCheckout, Product } from '@moneydevkit/api-contract';
|
|
2
2
|
import type { Result } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Convert any string format to camelCase.
|
|
5
|
+
* Supports: snake_case, kebab-case, space separated, PascalCase, camelCase
|
|
6
|
+
* @example toCamelCase('custom_field') => 'customField'
|
|
7
|
+
* @example toCamelCase('custom-field') => 'customField'
|
|
8
|
+
* @example toCamelCase('custom field') => 'customField'
|
|
9
|
+
* @example toCamelCase('Custom Field') => 'customField'
|
|
10
|
+
* @internal Exported for testing
|
|
11
|
+
*/
|
|
12
|
+
export declare function toCamelCase(str: string): string;
|
|
13
|
+
/**
|
|
14
|
+
* Normalize field names to camelCase.
|
|
15
|
+
* Standard fields (email, name) are kept as-is.
|
|
16
|
+
* @internal Exported for testing
|
|
17
|
+
*/
|
|
18
|
+
export declare function normalizeFieldName(field: string): string;
|
|
3
19
|
export declare function getCheckout(checkoutId: string): Promise<Checkout>;
|
|
20
|
+
export declare function listProducts(): Promise<Product[]>;
|
|
4
21
|
export declare function confirmCheckout(confirm: ConfirmCheckout): Promise<Checkout>;
|
|
5
22
|
/**
|
|
6
23
|
* Valid fields that can be required at checkout time.
|
|
@@ -16,19 +33,43 @@ export type CustomerInput = {
|
|
|
16
33
|
externalId?: string;
|
|
17
34
|
} & Record<string, string>;
|
|
18
35
|
/**
|
|
19
|
-
*
|
|
36
|
+
* Strip empty strings from customer object and normalize keys to camelCase.
|
|
37
|
+
* @internal Exported for testing
|
|
20
38
|
*/
|
|
21
|
-
export
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
39
|
+
export declare function cleanCustomerInput(customer: CustomerInput | undefined): CustomerInput | undefined;
|
|
40
|
+
/**
|
|
41
|
+
* Normalize requireCustomerData field names to camelCase.
|
|
42
|
+
* @internal Exported for testing
|
|
43
|
+
*/
|
|
44
|
+
export declare function normalizeRequireCustomerData(fields: string[] | undefined): string[] | undefined;
|
|
45
|
+
type Currency = 'USD' | 'SAT';
|
|
46
|
+
type CommonCheckoutFields = {
|
|
47
|
+
currency?: Currency;
|
|
26
48
|
successUrl?: string;
|
|
27
49
|
checkoutPath?: string;
|
|
28
50
|
metadata?: Record<string, unknown>;
|
|
29
51
|
customer?: CustomerInput;
|
|
30
52
|
requireCustomerData?: string[];
|
|
31
|
-
}
|
|
53
|
+
};
|
|
54
|
+
type AmountCheckoutParams = CommonCheckoutFields & {
|
|
55
|
+
type: 'AMOUNT';
|
|
56
|
+
amount: number;
|
|
57
|
+
title?: string;
|
|
58
|
+
description?: string;
|
|
59
|
+
product?: never;
|
|
60
|
+
};
|
|
61
|
+
type ProductCheckoutParams = CommonCheckoutFields & {
|
|
62
|
+
type: 'PRODUCTS';
|
|
63
|
+
/**
|
|
64
|
+
* Product ID to checkout.
|
|
65
|
+
* @example 'prod_123abc'
|
|
66
|
+
*/
|
|
67
|
+
product: string;
|
|
68
|
+
amount?: never;
|
|
69
|
+
title?: never;
|
|
70
|
+
description?: never;
|
|
71
|
+
};
|
|
72
|
+
export type CreateCheckoutParams = AmountCheckoutParams | ProductCheckoutParams;
|
|
32
73
|
export declare function createCheckout(params: CreateCheckoutParams): Promise<Result<{
|
|
33
74
|
checkout: Checkout;
|
|
34
75
|
}>>;
|
|
@@ -36,3 +77,4 @@ export declare function markInvoicePaidPreview(paymentHash: string, amountSats:
|
|
|
36
77
|
ok: boolean;
|
|
37
78
|
}>;
|
|
38
79
|
export declare function paymentHasBeenReceived(paymentHash: string): Promise<boolean>;
|
|
80
|
+
export {};
|
package/dist/actions.js
CHANGED
|
@@ -10,8 +10,9 @@ import { failure, success } from './types';
|
|
|
10
10
|
* @example toCamelCase('custom-field') => 'customField'
|
|
11
11
|
* @example toCamelCase('custom field') => 'customField'
|
|
12
12
|
* @example toCamelCase('Custom Field') => 'customField'
|
|
13
|
+
* @internal Exported for testing
|
|
13
14
|
*/
|
|
14
|
-
function toCamelCase(str) {
|
|
15
|
+
export function toCamelCase(str) {
|
|
15
16
|
return str
|
|
16
17
|
// Split on underscores, hyphens, or spaces
|
|
17
18
|
.split(/[-_\s]+/)
|
|
@@ -29,8 +30,9 @@ function toCamelCase(str) {
|
|
|
29
30
|
/**
|
|
30
31
|
* Normalize field names to camelCase.
|
|
31
32
|
* Standard fields (email, name) are kept as-is.
|
|
33
|
+
* @internal Exported for testing
|
|
32
34
|
*/
|
|
33
|
-
function normalizeFieldName(field) {
|
|
35
|
+
export function normalizeFieldName(field) {
|
|
34
36
|
const standardFields = ['email', 'name', 'externalId'];
|
|
35
37
|
const camel = toCamelCase(field);
|
|
36
38
|
// Keep standard fields exactly as expected
|
|
@@ -44,6 +46,11 @@ export async function getCheckout(checkoutId) {
|
|
|
44
46
|
const client = createMoneyDevKitClient();
|
|
45
47
|
return await client.checkouts.get({ id: checkoutId });
|
|
46
48
|
}
|
|
49
|
+
export async function listProducts() {
|
|
50
|
+
const client = createMoneyDevKitClient();
|
|
51
|
+
const result = await client.products.list();
|
|
52
|
+
return result.products;
|
|
53
|
+
}
|
|
47
54
|
export async function confirmCheckout(confirm) {
|
|
48
55
|
const client = createMoneyDevKitClient();
|
|
49
56
|
const node = createMoneyDevKitNode();
|
|
@@ -63,8 +70,9 @@ export async function confirmCheckout(confirm) {
|
|
|
63
70
|
}
|
|
64
71
|
/**
|
|
65
72
|
* Strip empty strings from customer object and normalize keys to camelCase.
|
|
73
|
+
* @internal Exported for testing
|
|
66
74
|
*/
|
|
67
|
-
function cleanCustomerInput(customer) {
|
|
75
|
+
export function cleanCustomerInput(customer) {
|
|
68
76
|
if (!customer)
|
|
69
77
|
return undefined;
|
|
70
78
|
const cleaned = {};
|
|
@@ -78,31 +86,35 @@ function cleanCustomerInput(customer) {
|
|
|
78
86
|
}
|
|
79
87
|
/**
|
|
80
88
|
* Normalize requireCustomerData field names to camelCase.
|
|
89
|
+
* @internal Exported for testing
|
|
81
90
|
*/
|
|
82
|
-
function normalizeRequireCustomerData(fields) {
|
|
91
|
+
export function normalizeRequireCustomerData(fields) {
|
|
83
92
|
if (!fields)
|
|
84
93
|
return undefined;
|
|
85
94
|
return fields.map(normalizeFieldName);
|
|
86
95
|
}
|
|
87
96
|
export async function createCheckout(params) {
|
|
88
|
-
const amount = params.amount ?? 200;
|
|
89
97
|
const currency = params.currency ?? 'USD';
|
|
90
98
|
const metadataOverrides = params.metadata ?? {};
|
|
99
|
+
const isProductCheckout = params.type === 'PRODUCTS';
|
|
100
|
+
const product = isProductCheckout ? params.product : undefined;
|
|
101
|
+
const amount = isProductCheckout ? undefined : params.amount;
|
|
102
|
+
const title = isProductCheckout ? undefined : params.title;
|
|
103
|
+
const description = isProductCheckout ? undefined : params.description;
|
|
91
104
|
try {
|
|
92
105
|
const client = createMoneyDevKitClient();
|
|
93
106
|
const node = createMoneyDevKitNode();
|
|
94
107
|
const checkout = await client.checkouts.create({
|
|
95
108
|
amount,
|
|
96
109
|
currency,
|
|
110
|
+
product,
|
|
111
|
+
successUrl: params.successUrl,
|
|
97
112
|
metadata: {
|
|
98
|
-
title
|
|
99
|
-
description
|
|
100
|
-
successUrl: params.successUrl,
|
|
113
|
+
title,
|
|
114
|
+
description,
|
|
101
115
|
...metadataOverrides,
|
|
102
116
|
},
|
|
103
|
-
// Customer data (nested object) - strip empty strings and normalize keys
|
|
104
117
|
customer: cleanCustomerInput(params.customer),
|
|
105
|
-
// Required customer fields - normalize to camelCase
|
|
106
118
|
requireCustomerData: normalizeRequireCustomerData(params.requireCustomerData),
|
|
107
119
|
}, node.id);
|
|
108
120
|
if (checkout.status === 'CONFIRMED') {
|
package/dist/actions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,OAAO,CAAA;AACtE,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAG1C
|
|
1
|
+
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { Checkout } from '@moneydevkit/api-contract';
|
|
2
|
+
type UnconfirmedCheckoutType = Extract<Checkout, {
|
|
3
|
+
status: 'UNCONFIRMED';
|
|
4
|
+
}>;
|
|
5
|
+
/**
|
|
6
|
+
* Convert camelCase field name to readable label.
|
|
7
|
+
* e.g., "billingAddress" -> "Billing Address"
|
|
8
|
+
* @internal Exported for testing
|
|
9
|
+
*/
|
|
10
|
+
export declare function fieldToLabel(field: string): string;
|
|
11
|
+
/**
|
|
12
|
+
* Get fields that need to be shown in the form.
|
|
13
|
+
* A field is shown if it's in requireCustomerData and not already provided.
|
|
14
|
+
* @internal Exported for testing
|
|
15
|
+
*/
|
|
16
|
+
export declare function getMissingRequiredFields(checkout: UnconfirmedCheckoutType): string[];
|
|
17
|
+
type Currency = 'USD' | 'SAT';
|
|
18
|
+
/**
|
|
19
|
+
* Convert user-entered custom price amount to smallest unit for API.
|
|
20
|
+
* - USD: converts dollars to cents (multiply by 100, with EPSILON for float precision)
|
|
21
|
+
* - SAT: uses value directly (amounts are already in sats)
|
|
22
|
+
* @internal Exported for testing
|
|
23
|
+
*/
|
|
24
|
+
export declare function convertCustomAmountToSmallestUnit(amount: string, currency: Currency): number;
|
|
25
|
+
/**
|
|
26
|
+
* Validate custom price amount input.
|
|
27
|
+
* Returns error message if invalid, null if valid.
|
|
28
|
+
* @internal Exported for testing
|
|
29
|
+
*/
|
|
30
|
+
export declare function validateCustomAmount(amount: string, currency: Currency): string | null;
|
|
31
|
+
export {};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert camelCase field name to readable label.
|
|
3
|
+
* e.g., "billingAddress" -> "Billing Address"
|
|
4
|
+
* @internal Exported for testing
|
|
5
|
+
*/
|
|
6
|
+
export function fieldToLabel(field) {
|
|
7
|
+
return field
|
|
8
|
+
.replace(/([A-Z])/g, ' $1')
|
|
9
|
+
.replace(/^./, (str) => str.toUpperCase())
|
|
10
|
+
.trim();
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Get fields that need to be shown in the form.
|
|
14
|
+
* A field is shown if it's in requireCustomerData and not already provided.
|
|
15
|
+
* @internal Exported for testing
|
|
16
|
+
*/
|
|
17
|
+
export function getMissingRequiredFields(checkout) {
|
|
18
|
+
if (!checkout.requireCustomerData)
|
|
19
|
+
return [];
|
|
20
|
+
return checkout.requireCustomerData.filter((field) => {
|
|
21
|
+
const value = checkout.customer?.[field];
|
|
22
|
+
return value === undefined || value === null || value === '';
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Convert user-entered custom price amount to smallest unit for API.
|
|
27
|
+
* - USD: converts dollars to cents (multiply by 100, with EPSILON for float precision)
|
|
28
|
+
* - SAT: uses value directly (amounts are already in sats)
|
|
29
|
+
* @internal Exported for testing
|
|
30
|
+
*/
|
|
31
|
+
export function convertCustomAmountToSmallestUnit(amount, currency) {
|
|
32
|
+
const parsedAmount = Number.parseFloat(amount);
|
|
33
|
+
if (Number.isNaN(parsedAmount)) {
|
|
34
|
+
return 0;
|
|
35
|
+
}
|
|
36
|
+
if (currency === 'USD') {
|
|
37
|
+
return Math.round(parsedAmount * 100 + Number.EPSILON);
|
|
38
|
+
}
|
|
39
|
+
return Math.round(parsedAmount);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Validate custom price amount input.
|
|
43
|
+
* Returns error message if invalid, null if valid.
|
|
44
|
+
* @internal Exported for testing
|
|
45
|
+
*/
|
|
46
|
+
export function validateCustomAmount(amount, currency) {
|
|
47
|
+
if (!amount) {
|
|
48
|
+
return currency === 'SAT'
|
|
49
|
+
? 'Please enter at least 1 sat'
|
|
50
|
+
: 'Please enter a valid amount';
|
|
51
|
+
}
|
|
52
|
+
const parsedAmount = Number.parseFloat(amount);
|
|
53
|
+
const minAmount = currency === 'SAT' ? 1 : 0.01;
|
|
54
|
+
if (Number.isNaN(parsedAmount) || parsedAmount < minAmount) {
|
|
55
|
+
return currency === 'SAT'
|
|
56
|
+
? 'Please enter at least 1 sat'
|
|
57
|
+
: 'Please enter a valid amount';
|
|
58
|
+
}
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=checkout-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkout-utils.js","sourceRoot":"","sources":["../src/checkout-utils.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,KAAK;SACT,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC;SAC1B,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;SACzC,IAAI,EAAE,CAAA;AACX,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,QAAiC;IACxE,IAAI,CAAC,QAAQ,CAAC,mBAAmB;QAAE,OAAO,EAAE,CAAA;IAE5C,OAAO,QAAQ,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,KAAa,EAAE,EAAE;QAC3D,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAA;QACxC,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,CAAA;IAC9D,CAAC,CAAC,CAAA;AACJ,CAAC;AAID;;;;;GAKG;AACH,MAAM,UAAU,iCAAiC,CAC/C,MAAc,EACd,QAAkB;IAElB,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IAC9C,IAAI,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,CAAA;IACV,CAAC;IAED,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;IACxD,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;AACjC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAc,EACd,QAAkB;IAElB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,QAAQ,KAAK,KAAK;YACvB,CAAC,CAAC,6BAA6B;YAC/B,CAAC,CAAC,6BAA6B,CAAA;IACnC,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IAC9C,MAAM,SAAS,GAAG,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAE/C,IAAI,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,YAAY,GAAG,SAAS,EAAE,CAAC;QAC3D,OAAO,QAAQ,KAAK,KAAK;YACvB,CAAC,CAAC,6BAA6B;YAC/B,CAAC,CAAC,6BAA6B,CAAA;IACnC,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC"}
|
package/dist/client-actions.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Checkout as CheckoutType } from '@moneydevkit/api-contract';
|
|
1
|
+
import type { Checkout as CheckoutType, Product } from '@moneydevkit/api-contract';
|
|
2
2
|
import type { ConfirmCheckout } from '@moneydevkit/api-contract';
|
|
3
3
|
import type { CreateCheckoutParams } from './actions';
|
|
4
4
|
import type { Result } from './types';
|
|
@@ -6,3 +6,4 @@ export declare function clientCreateCheckout(params: CreateCheckoutParams): Prom
|
|
|
6
6
|
export declare function clientGetCheckout(checkoutId: string): Promise<CheckoutType>;
|
|
7
7
|
export declare function clientConfirmCheckout(confirm: ConfirmCheckout): Promise<CheckoutType>;
|
|
8
8
|
export declare function clientPayInvoice(paymentHash: string, amountSats: number): Promise<void>;
|
|
9
|
+
export declare function clientListProducts(): Promise<Product[]>;
|
package/dist/client-actions.js
CHANGED
|
@@ -111,4 +111,11 @@ export async function clientPayInvoice(paymentHash, amountSats) {
|
|
|
111
111
|
throw new Error(result.error.message);
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
|
+
export async function clientListProducts() {
|
|
115
|
+
const response = await postToMdk('list_products', {});
|
|
116
|
+
if (!response?.data?.products) {
|
|
117
|
+
throw new Error('Failed to list products');
|
|
118
|
+
}
|
|
119
|
+
return response.data.products;
|
|
120
|
+
}
|
|
114
121
|
//# sourceMappingURL=client-actions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-actions.js","sourceRoot":"","sources":["../src/client-actions.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAG1C,MAAM,QAAQ,GACZ,CAAC,OAAO,OAAO,KAAK,WAAW,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,UAAU,CAAA;AAEtH,SAAS,SAAS,CAAC,IAAY;IAC7B,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO,IAAI,CAAA;IAChD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC1C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC/C,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACvB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,eAAe;IACtB,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO,IAAI,CAAA;IAChD,IAAI,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,CAAA;IACjC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,YAAY,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;IACzG,CAAC;IAED,qGAAqG;IACrG,wGAAwG;IACxG,MAAM,gBAAgB,GAAG,CAAC,QAAQ,CAAC,CAAA;IACnC,MAAM,aAAa,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,eAAe,CAAA;IAC7E,IAAI,aAAa,EAAE,CAAC;QAClB,gBAAgB,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAA;IAClD,CAAC;SAAM,CAAC;QACN,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IACvC,CAAC;IACD,QAAQ,CAAC,MAAM,GAAG,YAAY,KAAK,KAAK,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;IAErE,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,SAAS,CAAI,OAAe,EAAE,OAAgC;IAC3E,MAAM,OAAO,GAA2B,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAA;IAC9E,MAAM,SAAS,GAAG,eAAe,EAAE,CAAA;IACnC,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CAAC,0BAA0B,CAAC,GAAG,SAAS,CAAA;IACjD,CAAC;IAED,IAAI,QAAkB,CAAA;IACtB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;YAC/B,MAAM,EAAE,MAAM;YACd,OAAO;YACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;SAC9C,CAAC,CAAA;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;YACb,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,yEAAyE;SACnF,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,IAAI,SAAS,GAA8D,EAAE,CAAA;QAC7E,IAAI,CAAC;YACH,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QACnC,CAAC;QAAC,MAAM,CAAC;YACP,uBAAuB;QACzB,CAAC;QAED,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAA;QACjC,MAAM,oBAAoB,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAA;QAEzE,0DAA0D;QAC1D,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;QAEhF,OAAO,OAAO,CAAC;YACb,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,iBAAiB;YAC7G,OAAO,EAAE,iBAAiB,IAAI,SAAS,CAAC,KAAK,IAAI,8BAA8B,QAAQ,CAAC,MAAM,EAAE;YAChG,OAAO,EAAE,SAAS,CAAC,OAAO;SAC3B,CAAC,CAAA;IACJ,CAAC;IAED,wCAAwC;IACxC,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAiB,CAAA;IAEpD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,OAAO,CAAC;YACb,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,8BAA8B;SACxC,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC3B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,MAA4B;IACrE,OAAO,SAAS,CAAe,iBAAiB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;AAC/D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,UAAkB;IACxD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAe,cAAc,EAAE,EAAE,UAAU,EAAE,CAAC,CAAA;IAC5E,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACvC,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAA;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,OAAwB;IAClE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAe,kBAAkB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;IAC7E,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACvC,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAA;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,WAAmB,EAAE,UAAkB;IAC5E,IAAI,CAAC,sBAAsB,EAAE,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAA;IAChF,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,SAAS,CAAkB,aAAa,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAA;IAC3F,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACvC,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"client-actions.js","sourceRoot":"","sources":["../src/client-actions.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from './components/Checkout';
|
|
2
2
|
export * from './hooks/useCheckout';
|
|
3
3
|
export * from './hooks/useCheckoutSuccess';
|
|
4
|
+
export * from './hooks/useProducts';
|
|
4
5
|
export * from './providers';
|
|
5
6
|
export type { MdkError, Result } from './types';
|
|
6
7
|
export { failure, success } from './types';
|
package/dist/client.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from './components/Checkout';
|
|
2
2
|
export * from './hooks/useCheckout';
|
|
3
3
|
export * from './hooks/useCheckoutSuccess';
|
|
4
|
+
export * from './hooks/useProducts';
|
|
4
5
|
export * from './providers';
|
|
5
6
|
export { failure, success } from './types';
|
|
6
7
|
//# sourceMappingURL=client.js.map
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,aAAa,CAAA;AAE3B,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,qBAAqB,CAAA;AACnC,cAAc,aAAa,CAAA;AAE3B,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA"}
|
|
@@ -16,7 +16,13 @@ function CheckoutLayout({ checkout, children }) {
|
|
|
16
16
|
const description = checkout?.userMetadata?.description;
|
|
17
17
|
return (_jsxs("div", { className: "w-fit mx-auto", style: { width: '380px' }, children: [(title || description) && (_jsxs("div", { className: "text-center mb-6", children: [title && (_jsx("h2", { className: "text-2xl font-semibold text-white mb-2 font-sans tracking-tight", children: title })), description && (_jsx("p", { className: "text-gray-300", children: description }))] })), _jsx("div", { className: "bg-gray-800 rounded-2xl p-6 text-white font-sans", children: children }), _jsx("div", { className: "text-center mt-6", children: _jsxs("p", { className: "text-xs text-gray-500 font-sans", children: ["Powered by", ' ', _jsx("a", { href: "https://www.moneydevkit.com", target: "_blank", rel: "noopener noreferrer", className: "text-gray-400 hover:text-white transition-colors underline decoration-gray-600 hover:decoration-white", children: "moneydevkit" })] }) })] }));
|
|
18
18
|
}
|
|
19
|
+
function CheckoutError({ error }) {
|
|
20
|
+
return (_jsx("div", { className: "flex justify-center min-h-screen p-4 pt-8 bg-gradient-to-br from-slate-900 via-gray-900 to-slate-800", children: _jsx("div", { className: "w-full max-w-md", children: _jsxs("div", { className: "w-fit mx-auto", style: { width: '380px' }, children: [_jsx("div", { className: "bg-gray-800 rounded-2xl p-6 text-white font-sans", children: _jsxs("div", { className: "text-center", children: [_jsx("div", { className: "w-16 h-16 mx-auto mb-4 rounded-full bg-red-500/20 flex items-center justify-center", children: _jsx("svg", { className: "w-8 h-8 text-red-500", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" }) }) }), _jsx("h2", { className: "text-xl font-semibold mb-2", children: "Unable to create checkout" }), _jsx("p", { className: "text-gray-400", children: error.message })] }) }), _jsx("div", { className: "text-center mt-6", children: _jsxs("p", { className: "text-xs text-gray-500 font-sans", children: ["Powered by", ' ', _jsx("a", { href: "https://www.moneydevkit.com", target: "_blank", rel: "noopener noreferrer", className: "text-gray-400 hover:text-white transition-colors underline decoration-gray-600 hover:decoration-white", children: "moneydevkit" })] }) })] }) }) }));
|
|
21
|
+
}
|
|
19
22
|
function CheckoutInternal({ id }) {
|
|
23
|
+
// Track whether we've checked for URL errors after hydration
|
|
24
|
+
const [hasCheckedUrlError, setHasCheckedUrlError] = useState(false);
|
|
25
|
+
const [errorFromUrl, setErrorFromUrl] = useState(null);
|
|
20
26
|
const [isWindowVisible, setIsWindowVisible] = useState(() => {
|
|
21
27
|
if (typeof document === 'undefined') {
|
|
22
28
|
return true;
|
|
@@ -24,6 +30,23 @@ function CheckoutInternal({ id }) {
|
|
|
24
30
|
return document.visibilityState === 'visible';
|
|
25
31
|
});
|
|
26
32
|
const [isRestarting, setIsRestarting] = useState(false);
|
|
33
|
+
// Check for URL errors after mount (to handle SSR hydration correctly)
|
|
34
|
+
useEffect(() => {
|
|
35
|
+
if (typeof window === 'undefined') {
|
|
36
|
+
setHasCheckedUrlError(true);
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const params = new URLSearchParams(window.location.search);
|
|
40
|
+
const errorCode = params.get('error');
|
|
41
|
+
const errorMessage = params.get('message');
|
|
42
|
+
if (errorCode) {
|
|
43
|
+
setErrorFromUrl({
|
|
44
|
+
code: errorCode,
|
|
45
|
+
message: errorMessage ?? 'An error occurred while creating the checkout.',
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
setHasCheckedUrlError(true);
|
|
49
|
+
}, []);
|
|
27
50
|
useEffect(() => {
|
|
28
51
|
if (typeof document === 'undefined' || typeof window === 'undefined') {
|
|
29
52
|
return;
|
|
@@ -44,7 +67,7 @@ function CheckoutInternal({ id }) {
|
|
|
44
67
|
const { data: checkout } = useQuery({
|
|
45
68
|
queryKey: ['mdk-checkout', id],
|
|
46
69
|
queryFn: () => clientGetCheckout(id).then((checkout) => checkout),
|
|
47
|
-
enabled: !!id,
|
|
70
|
+
enabled: !!id && hasCheckedUrlError && !errorFromUrl,
|
|
48
71
|
refetchInterval: ({ state: { data } }) => {
|
|
49
72
|
if (!isWindowVisible) {
|
|
50
73
|
return false;
|
|
@@ -92,6 +115,7 @@ function CheckoutInternal({ id }) {
|
|
|
92
115
|
: '/checkout';
|
|
93
116
|
setIsRestarting(true);
|
|
94
117
|
const result = await clientCreateCheckout({
|
|
118
|
+
type: 'AMOUNT',
|
|
95
119
|
title: checkout.userMetadata?.title || 'Checkout',
|
|
96
120
|
description: checkout.userMetadata?.description || '',
|
|
97
121
|
amount,
|
|
@@ -106,6 +130,17 @@ function CheckoutInternal({ id }) {
|
|
|
106
130
|
}
|
|
107
131
|
window.location.href = `${checkoutPath}/${result.data.id}`;
|
|
108
132
|
}, [checkout]);
|
|
133
|
+
// Show error UI if there was an error from URL-based checkout creation
|
|
134
|
+
if (errorFromUrl) {
|
|
135
|
+
return _jsx(CheckoutError, { error: errorFromUrl });
|
|
136
|
+
}
|
|
137
|
+
// Show error if no checkout ID provided
|
|
138
|
+
if (!id) {
|
|
139
|
+
return (_jsx(CheckoutError, { error: {
|
|
140
|
+
code: 'missing_id',
|
|
141
|
+
message: 'No checkout ID provided.',
|
|
142
|
+
} }));
|
|
143
|
+
}
|
|
109
144
|
if (!checkout) {
|
|
110
145
|
return (_jsx("div", { className: "flex items-center justify-center min-h-screen", children: _jsx("div", { className: "animate-spin rounded-full h-8 w-8 border-b-2 border-white" }) }));
|
|
111
146
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkout.js","sourceRoot":"","sources":["../../src/components/Checkout.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Checkout.js","sourceRoot":"","sources":["../../src/components/Checkout.tsx"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,6 @@ import { ChevronDown } from 'lucide-react';
|
|
|
4
4
|
import { QRCodeSVG } from 'qrcode.react';
|
|
5
5
|
import { useCallback, useEffect, useState } from 'react';
|
|
6
6
|
import { clientPayInvoice } from '../../client-actions';
|
|
7
|
-
import { warn } from '../../logging';
|
|
8
7
|
import { is_preview_environment } from '../../preview';
|
|
9
8
|
import { Button } from '../ui/button';
|
|
10
9
|
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '../ui/collapsible';
|
|
@@ -16,7 +15,6 @@ export default function PendingPaymentCheckout({ checkout }) {
|
|
|
16
15
|
const [markPaidError, setMarkPaidError] = useState(null);
|
|
17
16
|
const queryClient = useQueryClient();
|
|
18
17
|
const isPreview = is_preview_environment();
|
|
19
|
-
warn('isPreview_environment()', is_preview_environment());
|
|
20
18
|
useEffect(() => {
|
|
21
19
|
const updateTimer = () => {
|
|
22
20
|
if (!checkout.invoice?.expiresAt)
|
|
@@ -45,7 +43,26 @@ export default function PendingPaymentCheckout({ checkout }) {
|
|
|
45
43
|
const formatSats = (sats) => {
|
|
46
44
|
return new Intl.NumberFormat('en-US').format(sats);
|
|
47
45
|
};
|
|
46
|
+
const formatProductPrice = (price) => {
|
|
47
|
+
if (price.amountType === 'FREE')
|
|
48
|
+
return 'Free';
|
|
49
|
+
if (price.amountType === 'CUSTOM')
|
|
50
|
+
return 'Custom';
|
|
51
|
+
if (price.priceAmount === null)
|
|
52
|
+
return '';
|
|
53
|
+
if (price.currency === 'SAT') {
|
|
54
|
+
return `${formatSats(price.priceAmount)} sats`;
|
|
55
|
+
}
|
|
56
|
+
// USD - stored in cents
|
|
57
|
+
return formatCurrency(price.priceAmount, price.currency);
|
|
58
|
+
};
|
|
48
59
|
const copyToClipboard = async () => {
|
|
60
|
+
// Don't copy real invoice in preview mode
|
|
61
|
+
if (isPreview) {
|
|
62
|
+
setCopySuccess(true);
|
|
63
|
+
setTimeout(() => setCopySuccess(false), 2000);
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
49
66
|
if (checkout.invoice?.invoice) {
|
|
50
67
|
try {
|
|
51
68
|
await navigator.clipboard.writeText(checkout.invoice.invoice);
|
|
@@ -87,10 +104,13 @@ export default function PendingPaymentCheckout({ checkout }) {
|
|
|
87
104
|
}
|
|
88
105
|
}, [checkout.id, invoiceAmountSats, isPreview, paymentHash, queryClient]);
|
|
89
106
|
const CheckmarkIcon = () => (_jsx("svg", { className: "w-4 h-4 text-green-500 cursor-pointer transition-colors", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 13l4 4L19 7" }) }));
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
107
|
+
const hasProducts = checkout.products && checkout.products.length > 0;
|
|
108
|
+
return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "text-center mb-6 w-full", children: [_jsx("div", { className: "mb-4 w-full", children: _jsx("div", { className: "text-2xl font-semibold mb-2 font-sans tracking-tight", children: checkout.invoice?.amountSats && `${formatSats(checkout.invoice.amountSats)} sats` }) }), _jsx("div", { className: "w-full", children: _jsxs(Collapsible, { open: detailsOpen, onOpenChange: setDetailsOpen, children: [_jsxs(CollapsibleTrigger, { className: "flex items-center justify-center gap-2 text-gray-400 hover:text-white transition-colors text-sm w-full font-medium", children: ["View Details", _jsx(ChevronDown, { className: `w-4 h-4 transition-transform duration-300 ease-in-out ${detailsOpen ? 'rotate-180' : ''}` })] }), _jsx(CollapsibleContent, { className: "w-full overflow-hidden transition-all duration-300 ease-in-out data-[state=closed]:animate-[collapsible-up_300ms_ease-in-out] data-[state=open]:animate-[collapsible-down_300ms_ease-in-out]", children: _jsxs("div", { className: "mt-4 space-y-3 text-sm w-full", children: [hasProducts && checkout.products.map((product) => {
|
|
109
|
+
const price = product.prices?.[0];
|
|
110
|
+
return (_jsxs("div", { className: "flex justify-between w-full", children: [_jsx("span", { className: "text-gray-400", children: product.name }), _jsx("span", { className: "text-white", children: price && formatProductPrice(price) })] }, product.id));
|
|
111
|
+
}), hasProducts && _jsx("div", { className: "border-t border-gray-600 my-2" }), _jsxs("div", { className: "flex justify-between w-full", children: [_jsx("span", { className: "text-gray-400", children: "Total Fiat" }), _jsx("span", { className: "text-white", children: checkout.invoice?.fiatAmount && checkout.currency &&
|
|
112
|
+
formatCurrency(checkout.invoice.fiatAmount, checkout.currency) })] }), _jsxs("div", { className: "flex justify-between w-full", children: [_jsx("span", { className: "text-gray-400", children: "Exchange Rate" }), _jsx("span", { className: "text-white", children: checkout.invoice?.btcPrice && `$${new Intl.NumberFormat('en-US').format(checkout.invoice.btcPrice)}` })] }), timeRemaining && (_jsxs("div", { className: "flex justify-between w-full", children: [_jsx("span", { className: "text-gray-400", children: "Expires in" }), _jsx("span", { className: "text-white", children: timeRemaining })] }))] }) })] }) })] }), _jsx("div", { className: "flex justify-center mb-4 w-full", children: _jsxs("div", { className: "bg-white p-3 rounded-lg shadow cursor-pointer hover:shadow-lg transition-shadow relative", onClick: copyToClipboard, title: "Click to copy invoice", children: [_jsx(QRCodeSVG, { value: isPreview ? 'SANDBOX_PREVIEW_MODE' : (checkout.invoice?.invoice ?? ''), size: 320, bgColor: "#ffffff", fgColor: "#000000", level: "Q" }), isPreview && (_jsx("div", { className: "absolute inset-0 flex items-center justify-center pointer-events-none", children: _jsx("div", { className: "text-white font-bold text-lg px-4 py-2 rounded transform -rotate-12 shadow-lg", style: { backgroundColor: '#475569', opacity: 0.95 }, children: "SANDBOX" }) }))] }) }), (checkout.invoice?.invoice || isPreview) && (_jsxs("div", { className: "flex items-center gap-2 mb-6 bg-gray-700 p-3 rounded-lg w-full", children: [_jsx("code", { className: "text-xs text-gray-300 font-mono flex-1 text-center min-w-0", children: isPreview
|
|
113
|
+
? truncateInvoice('lnbc1500n1pnxxx...sandbox_invoice...xxxyyyzzz')
|
|
114
|
+
: truncateInvoice(checkout.invoice?.invoice ?? '') }), _jsx("div", { onClick: copyToClipboard, title: "Copy invoice", className: "flex-shrink-0", children: copySuccess ? _jsx(CheckmarkIcon, {}) : _jsx(CopyIcon, {}) })] })), isPreview && paymentHash && invoiceAmountSats && (_jsxs("div", { className: "mt-4 flex justify-center", children: [_jsx(Button, { onClick: handleMarkAsPaid, disabled: markingPaid, className: "bg-gray-700 hover:bg-gray-900 text-gray-300", children: markingPaid ? 'Marking as paid...' : 'Mark as Paid (Sandbox)' }), markPaidError && (_jsx("p", { className: "text-red-400 text-xs text-center mt-2", children: markPaidError }))] }))] }));
|
|
95
115
|
}
|
|
96
116
|
//# sourceMappingURL=PendingPaymentCheckout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PendingPaymentCheckout.js","sourceRoot":"","sources":["../../../src/components/checkout/PendingPaymentCheckout.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"PendingPaymentCheckout.js","sourceRoot":"","sources":["../../../src/components/checkout/PendingPaymentCheckout.tsx"],"names":[],"mappings":"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"}
|