@bates-solutions/squareup 0.1.0
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/LICENSE +21 -0
- package/README.md +154 -0
- package/README.md.backup +292 -0
- package/dist/angular/__tests__/setup.d.ts +1 -0
- package/dist/angular/__tests__/setup.d.ts.map +1 -0
- package/dist/angular/__tests__/setup.js +5 -0
- package/dist/angular/__tests__/setup.js.map +1 -0
- package/dist/angular/components/index.d.ts +2 -0
- package/dist/angular/components/index.d.ts.map +1 -0
- package/dist/angular/components/index.js +2 -0
- package/dist/angular/components/index.js.map +1 -0
- package/dist/angular/components/payment-button.component.d.ts +49 -0
- package/dist/angular/components/payment-button.component.d.ts.map +1 -0
- package/dist/angular/components/payment-button.component.js +176 -0
- package/dist/angular/components/payment-button.component.js.map +1 -0
- package/dist/angular/directives/index.d.ts +2 -0
- package/dist/angular/directives/index.d.ts.map +1 -0
- package/dist/angular/directives/index.js +2 -0
- package/dist/angular/directives/index.js.map +1 -0
- package/dist/angular/directives/square-card.directive.d.ts +52 -0
- package/dist/angular/directives/square-card.directive.d.ts.map +1 -0
- package/dist/angular/directives/square-card.directive.js +98 -0
- package/dist/angular/directives/square-card.directive.js.map +1 -0
- package/dist/angular/index.d.ts +42 -0
- package/dist/angular/index.d.ts.map +1 -0
- package/dist/angular/index.js +45 -0
- package/dist/angular/index.js.map +1 -0
- package/dist/angular/services/index.d.ts +6 -0
- package/dist/angular/services/index.d.ts.map +1 -0
- package/dist/angular/services/index.js +6 -0
- package/dist/angular/services/index.js.map +1 -0
- package/dist/angular/services/square-catalog.service.d.ts +60 -0
- package/dist/angular/services/square-catalog.service.d.ts.map +1 -0
- package/dist/angular/services/square-catalog.service.js +152 -0
- package/dist/angular/services/square-catalog.service.js.map +1 -0
- package/dist/angular/services/square-customers.service.d.ts +77 -0
- package/dist/angular/services/square-customers.service.d.ts.map +1 -0
- package/dist/angular/services/square-customers.service.js +187 -0
- package/dist/angular/services/square-customers.service.js.map +1 -0
- package/dist/angular/services/square-orders.service.d.ts +66 -0
- package/dist/angular/services/square-orders.service.d.ts.map +1 -0
- package/dist/angular/services/square-orders.service.js +170 -0
- package/dist/angular/services/square-orders.service.js.map +1 -0
- package/dist/angular/services/square-payments.service.d.ts +73 -0
- package/dist/angular/services/square-payments.service.d.ts.map +1 -0
- package/dist/angular/services/square-payments.service.js +167 -0
- package/dist/angular/services/square-payments.service.js.map +1 -0
- package/dist/angular/services/square-sdk.service.d.ts +45 -0
- package/dist/angular/services/square-sdk.service.d.ts.map +1 -0
- package/dist/angular/services/square-sdk.service.js +133 -0
- package/dist/angular/services/square-sdk.service.js.map +1 -0
- package/dist/angular/square.module.d.ts +36 -0
- package/dist/angular/square.module.d.ts.map +1 -0
- package/dist/angular/square.module.js +75 -0
- package/dist/angular/square.module.js.map +1 -0
- package/dist/angular/types.d.ts +189 -0
- package/dist/angular/types.d.ts.map +1 -0
- package/dist/angular/types.js +8 -0
- package/dist/angular/types.js.map +1 -0
- package/dist/core/builders/order.builder.d.ts +140 -0
- package/dist/core/builders/order.builder.d.ts.map +1 -0
- package/dist/core/builders/order.builder.js +185 -0
- package/dist/core/builders/order.builder.js.map +1 -0
- package/dist/core/client.d.ts +93 -0
- package/dist/core/client.d.ts.map +1 -0
- package/dist/core/client.js +99 -0
- package/dist/core/client.js.map +1 -0
- package/dist/core/errors.d.ts +55 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +118 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/index.d.ts +17 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +18 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/services/catalog.service.d.ts +218 -0
- package/dist/core/services/catalog.service.d.ts.map +1 -0
- package/dist/core/services/catalog.service.js +274 -0
- package/dist/core/services/catalog.service.js.map +1 -0
- package/dist/core/services/customers.service.d.ts +197 -0
- package/dist/core/services/customers.service.d.ts.map +1 -0
- package/dist/core/services/customers.service.js +246 -0
- package/dist/core/services/customers.service.js.map +1 -0
- package/dist/core/services/inventory.service.d.ts +196 -0
- package/dist/core/services/inventory.service.d.ts.map +1 -0
- package/dist/core/services/inventory.service.js +266 -0
- package/dist/core/services/inventory.service.js.map +1 -0
- package/dist/core/services/invoices.service.d.ts +211 -0
- package/dist/core/services/invoices.service.d.ts.map +1 -0
- package/dist/core/services/invoices.service.js +297 -0
- package/dist/core/services/invoices.service.js.map +1 -0
- package/dist/core/services/loyalty.service.d.ts +282 -0
- package/dist/core/services/loyalty.service.d.ts.map +1 -0
- package/dist/core/services/loyalty.service.js +340 -0
- package/dist/core/services/loyalty.service.js.map +1 -0
- package/dist/core/services/orders.service.d.ts +121 -0
- package/dist/core/services/orders.service.d.ts.map +1 -0
- package/dist/core/services/orders.service.js +208 -0
- package/dist/core/services/orders.service.js.map +1 -0
- package/dist/core/services/payments.service.d.ts +121 -0
- package/dist/core/services/payments.service.d.ts.map +1 -0
- package/dist/core/services/payments.service.js +189 -0
- package/dist/core/services/payments.service.js.map +1 -0
- package/dist/core/services/subscriptions.service.d.ts +205 -0
- package/dist/core/services/subscriptions.service.d.ts.map +1 -0
- package/dist/core/services/subscriptions.service.js +265 -0
- package/dist/core/services/subscriptions.service.js.map +1 -0
- package/dist/core/types/index.d.ts +68 -0
- package/dist/core/types/index.d.ts.map +1 -0
- package/dist/core/types/index.js +2 -0
- package/dist/core/types/index.js.map +1 -0
- package/dist/core/utils.d.ts +74 -0
- package/dist/core/utils.d.ts.map +1 -0
- package/dist/core/utils.js +96 -0
- package/dist/core/utils.js.map +1 -0
- package/dist/react/SquareProvider.d.ts +50 -0
- package/dist/react/SquareProvider.d.ts.map +1 -0
- package/dist/react/SquareProvider.js +134 -0
- package/dist/react/SquareProvider.js.map +1 -0
- package/dist/react/__tests__/CardInput.test.d.ts +2 -0
- package/dist/react/__tests__/CardInput.test.d.ts.map +1 -0
- package/dist/react/__tests__/CardInput.test.js +218 -0
- package/dist/react/__tests__/CardInput.test.js.map +1 -0
- package/dist/react/__tests__/PaymentButton.test.d.ts +2 -0
- package/dist/react/__tests__/PaymentButton.test.d.ts.map +1 -0
- package/dist/react/__tests__/PaymentButton.test.js +400 -0
- package/dist/react/__tests__/PaymentButton.test.js.map +1 -0
- package/dist/react/__tests__/SquareProvider.test.d.ts +2 -0
- package/dist/react/__tests__/SquareProvider.test.d.ts.map +1 -0
- package/dist/react/__tests__/SquareProvider.test.js +126 -0
- package/dist/react/__tests__/SquareProvider.test.js.map +1 -0
- package/dist/react/__tests__/setup.d.ts +2 -0
- package/dist/react/__tests__/setup.d.ts.map +1 -0
- package/dist/react/__tests__/setup.js +3 -0
- package/dist/react/__tests__/setup.js.map +1 -0
- package/dist/react/__tests__/useCatalog.test.d.ts +2 -0
- package/dist/react/__tests__/useCatalog.test.d.ts.map +1 -0
- package/dist/react/__tests__/useCatalog.test.js +277 -0
- package/dist/react/__tests__/useCatalog.test.js.map +1 -0
- package/dist/react/__tests__/useCustomers.test.d.ts +2 -0
- package/dist/react/__tests__/useCustomers.test.d.ts.map +1 -0
- package/dist/react/__tests__/useCustomers.test.js +312 -0
- package/dist/react/__tests__/useCustomers.test.js.map +1 -0
- package/dist/react/__tests__/useOrders.test.d.ts +2 -0
- package/dist/react/__tests__/useOrders.test.d.ts.map +1 -0
- package/dist/react/__tests__/useOrders.test.js +216 -0
- package/dist/react/__tests__/useOrders.test.js.map +1 -0
- package/dist/react/__tests__/usePayments.test.d.ts +2 -0
- package/dist/react/__tests__/usePayments.test.d.ts.map +1 -0
- package/dist/react/__tests__/usePayments.test.js +235 -0
- package/dist/react/__tests__/usePayments.test.js.map +1 -0
- package/dist/react/__tests__/useSquarePayment.test.d.ts +2 -0
- package/dist/react/__tests__/useSquarePayment.test.d.ts.map +1 -0
- package/dist/react/__tests__/useSquarePayment.test.js +447 -0
- package/dist/react/__tests__/useSquarePayment.test.js.map +1 -0
- package/dist/react/components/CardInput.d.ts +69 -0
- package/dist/react/components/CardInput.d.ts.map +1 -0
- package/dist/react/components/CardInput.js +58 -0
- package/dist/react/components/CardInput.js.map +1 -0
- package/dist/react/components/PaymentButton.d.ts +71 -0
- package/dist/react/components/PaymentButton.d.ts.map +1 -0
- package/dist/react/components/PaymentButton.js +140 -0
- package/dist/react/components/PaymentButton.js.map +1 -0
- package/dist/react/components/index.d.ts +5 -0
- package/dist/react/components/index.d.ts.map +1 -0
- package/dist/react/components/index.js +3 -0
- package/dist/react/components/index.js.map +1 -0
- package/dist/react/hooks/index.d.ts +11 -0
- package/dist/react/hooks/index.d.ts.map +1 -0
- package/dist/react/hooks/index.js +6 -0
- package/dist/react/hooks/index.js.map +1 -0
- package/dist/react/hooks/useCatalog.d.ts +98 -0
- package/dist/react/hooks/useCatalog.d.ts.map +1 -0
- package/dist/react/hooks/useCatalog.js +134 -0
- package/dist/react/hooks/useCatalog.js.map +1 -0
- package/dist/react/hooks/useCustomers.d.ts +105 -0
- package/dist/react/hooks/useCustomers.d.ts.map +1 -0
- package/dist/react/hooks/useCustomers.js +174 -0
- package/dist/react/hooks/useCustomers.js.map +1 -0
- package/dist/react/hooks/useOrders.d.ts +112 -0
- package/dist/react/hooks/useOrders.d.ts.map +1 -0
- package/dist/react/hooks/useOrders.js +115 -0
- package/dist/react/hooks/useOrders.js.map +1 -0
- package/dist/react/hooks/usePayments.d.ts +98 -0
- package/dist/react/hooks/usePayments.d.ts.map +1 -0
- package/dist/react/hooks/usePayments.js +89 -0
- package/dist/react/hooks/usePayments.js.map +1 -0
- package/dist/react/hooks/useSquarePayment.d.ts +52 -0
- package/dist/react/hooks/useSquarePayment.d.ts.map +1 -0
- package/dist/react/hooks/useSquarePayment.js +146 -0
- package/dist/react/hooks/useSquarePayment.js.map +1 -0
- package/dist/react/index.d.ts +8 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +7 -0
- package/dist/react/index.js.map +1 -0
- package/dist/react/types.d.ts +183 -0
- package/dist/react/types.d.ts.map +1 -0
- package/dist/react/types.js +2 -0
- package/dist/react/types.js.map +1 -0
- package/dist/server/index.d.ts +43 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +45 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/middleware/express.d.ts +77 -0
- package/dist/server/middleware/express.d.ts.map +1 -0
- package/dist/server/middleware/express.js +123 -0
- package/dist/server/middleware/express.js.map +1 -0
- package/dist/server/middleware/nextjs.d.ts +118 -0
- package/dist/server/middleware/nextjs.d.ts.map +1 -0
- package/dist/server/middleware/nextjs.js +172 -0
- package/dist/server/middleware/nextjs.js.map +1 -0
- package/dist/server/types.d.ts +89 -0
- package/dist/server/types.d.ts.map +1 -0
- package/dist/server/types.js +7 -0
- package/dist/server/types.js.map +1 -0
- package/dist/server/webhook.d.ts +114 -0
- package/dist/server/webhook.d.ts.map +1 -0
- package/dist/server/webhook.js +190 -0
- package/dist/server/webhook.js.map +1 -0
- package/package.json +118 -0
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { useState, useCallback } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Hook for managing customers via your backend API
|
|
4
|
+
*
|
|
5
|
+
* @param options - Hook configuration
|
|
6
|
+
* @returns Customer management functions and state
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```tsx
|
|
10
|
+
* function CustomerForm() {
|
|
11
|
+
* const { create: createCustomer, loading, error, data } = useCustomers({
|
|
12
|
+
* onSuccess: (customer) => console.log('Created:', customer.id),
|
|
13
|
+
* });
|
|
14
|
+
*
|
|
15
|
+
* const handleSubmit = async (formData: CustomerInput) => {
|
|
16
|
+
* await createCustomer({
|
|
17
|
+
* givenName: formData.givenName,
|
|
18
|
+
* familyName: formData.familyName,
|
|
19
|
+
* emailAddress: formData.emailAddress,
|
|
20
|
+
* });
|
|
21
|
+
* };
|
|
22
|
+
*
|
|
23
|
+
* return (
|
|
24
|
+
* <form onSubmit={handleSubmit}>
|
|
25
|
+
* {loading && <p>Creating customer...</p>}
|
|
26
|
+
* {error && <p>Error: {error.message}</p>}
|
|
27
|
+
* {data && <p>Customer created: {data.id}</p>}
|
|
28
|
+
* </form>
|
|
29
|
+
* );
|
|
30
|
+
* }
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export function useCustomers(options = {}) {
|
|
34
|
+
const { apiEndpoint = '/api/customers', onSuccess, onError } = options;
|
|
35
|
+
const [data, setData] = useState(null);
|
|
36
|
+
const [error, setError] = useState(null);
|
|
37
|
+
const [loading, setLoading] = useState(false);
|
|
38
|
+
const reset = useCallback(() => {
|
|
39
|
+
setData(null);
|
|
40
|
+
setError(null);
|
|
41
|
+
setLoading(false);
|
|
42
|
+
}, []);
|
|
43
|
+
const create = useCallback(async (input) => {
|
|
44
|
+
setLoading(true);
|
|
45
|
+
setError(null);
|
|
46
|
+
try {
|
|
47
|
+
const response = await fetch(apiEndpoint, {
|
|
48
|
+
method: 'POST',
|
|
49
|
+
headers: {
|
|
50
|
+
'Content-Type': 'application/json',
|
|
51
|
+
},
|
|
52
|
+
body: JSON.stringify(input),
|
|
53
|
+
});
|
|
54
|
+
if (!response.ok) {
|
|
55
|
+
const errorData = (await response.json().catch(() => ({})));
|
|
56
|
+
throw new Error(errorData.message ?? `Customer creation failed: ${response.statusText}`);
|
|
57
|
+
}
|
|
58
|
+
const customer = (await response.json());
|
|
59
|
+
setData(customer);
|
|
60
|
+
onSuccess?.(customer);
|
|
61
|
+
return customer;
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
const error = err instanceof Error ? err : new Error('Customer creation failed');
|
|
65
|
+
setError(error);
|
|
66
|
+
onError?.(error);
|
|
67
|
+
throw error;
|
|
68
|
+
}
|
|
69
|
+
finally {
|
|
70
|
+
setLoading(false);
|
|
71
|
+
}
|
|
72
|
+
}, [apiEndpoint, onSuccess, onError]);
|
|
73
|
+
const get = useCallback(async (customerId) => {
|
|
74
|
+
setLoading(true);
|
|
75
|
+
setError(null);
|
|
76
|
+
try {
|
|
77
|
+
const response = await fetch(`${apiEndpoint}/${customerId}`, {
|
|
78
|
+
method: 'GET',
|
|
79
|
+
headers: {
|
|
80
|
+
'Content-Type': 'application/json',
|
|
81
|
+
},
|
|
82
|
+
});
|
|
83
|
+
if (!response.ok) {
|
|
84
|
+
const errorData = (await response.json().catch(() => ({})));
|
|
85
|
+
throw new Error(errorData.message ?? `Failed to get customer: ${response.statusText}`);
|
|
86
|
+
}
|
|
87
|
+
const customer = (await response.json());
|
|
88
|
+
setData(customer);
|
|
89
|
+
return customer;
|
|
90
|
+
}
|
|
91
|
+
catch (err) {
|
|
92
|
+
const error = err instanceof Error ? err : new Error('Failed to get customer');
|
|
93
|
+
setError(error);
|
|
94
|
+
onError?.(error);
|
|
95
|
+
throw error;
|
|
96
|
+
}
|
|
97
|
+
finally {
|
|
98
|
+
setLoading(false);
|
|
99
|
+
}
|
|
100
|
+
}, [apiEndpoint, onError]);
|
|
101
|
+
const update = useCallback(async (customerId, input) => {
|
|
102
|
+
setLoading(true);
|
|
103
|
+
setError(null);
|
|
104
|
+
try {
|
|
105
|
+
const response = await fetch(`${apiEndpoint}/${customerId}`, {
|
|
106
|
+
method: 'PUT',
|
|
107
|
+
headers: {
|
|
108
|
+
'Content-Type': 'application/json',
|
|
109
|
+
},
|
|
110
|
+
body: JSON.stringify(input),
|
|
111
|
+
});
|
|
112
|
+
if (!response.ok) {
|
|
113
|
+
const errorData = (await response.json().catch(() => ({})));
|
|
114
|
+
throw new Error(errorData.message ?? `Customer update failed: ${response.statusText}`);
|
|
115
|
+
}
|
|
116
|
+
const customer = (await response.json());
|
|
117
|
+
setData(customer);
|
|
118
|
+
onSuccess?.(customer);
|
|
119
|
+
return customer;
|
|
120
|
+
}
|
|
121
|
+
catch (err) {
|
|
122
|
+
const error = err instanceof Error ? err : new Error('Customer update failed');
|
|
123
|
+
setError(error);
|
|
124
|
+
onError?.(error);
|
|
125
|
+
throw error;
|
|
126
|
+
}
|
|
127
|
+
finally {
|
|
128
|
+
setLoading(false);
|
|
129
|
+
}
|
|
130
|
+
}, [apiEndpoint, onSuccess, onError]);
|
|
131
|
+
const search = useCallback(async (query) => {
|
|
132
|
+
setLoading(true);
|
|
133
|
+
setError(null);
|
|
134
|
+
try {
|
|
135
|
+
const params = new URLSearchParams();
|
|
136
|
+
if (query.email)
|
|
137
|
+
params.set('email', query.email);
|
|
138
|
+
if (query.phone)
|
|
139
|
+
params.set('phone', query.phone);
|
|
140
|
+
const response = await fetch(`${apiEndpoint}/search?${params.toString()}`, {
|
|
141
|
+
method: 'GET',
|
|
142
|
+
headers: {
|
|
143
|
+
'Content-Type': 'application/json',
|
|
144
|
+
},
|
|
145
|
+
});
|
|
146
|
+
if (!response.ok) {
|
|
147
|
+
const errorData = (await response.json().catch(() => ({})));
|
|
148
|
+
throw new Error(errorData.message ?? `Customer search failed: ${response.statusText}`);
|
|
149
|
+
}
|
|
150
|
+
const result = (await response.json());
|
|
151
|
+
return result.customers;
|
|
152
|
+
}
|
|
153
|
+
catch (err) {
|
|
154
|
+
const error = err instanceof Error ? err : new Error('Customer search failed');
|
|
155
|
+
setError(error);
|
|
156
|
+
onError?.(error);
|
|
157
|
+
throw error;
|
|
158
|
+
}
|
|
159
|
+
finally {
|
|
160
|
+
setLoading(false);
|
|
161
|
+
}
|
|
162
|
+
}, [apiEndpoint, onError]);
|
|
163
|
+
return {
|
|
164
|
+
create,
|
|
165
|
+
get,
|
|
166
|
+
update,
|
|
167
|
+
search,
|
|
168
|
+
reset,
|
|
169
|
+
data,
|
|
170
|
+
error,
|
|
171
|
+
loading,
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=useCustomers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCustomers.js","sourceRoot":"","sources":["../../../src/react/hooks/useCustomers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import type { MutationState } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Line item input for order creation
|
|
4
|
+
*/
|
|
5
|
+
export interface OrderLineItemInput {
|
|
6
|
+
/** Item name (for ad-hoc items) */
|
|
7
|
+
name?: string;
|
|
8
|
+
/** Catalog object ID (for catalog items) */
|
|
9
|
+
catalogObjectId?: string;
|
|
10
|
+
/** Quantity (default: 1) */
|
|
11
|
+
quantity?: number;
|
|
12
|
+
/** Amount in smallest currency unit (required for ad-hoc items) */
|
|
13
|
+
amount?: number;
|
|
14
|
+
/** Item note */
|
|
15
|
+
note?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Order creation options
|
|
19
|
+
*/
|
|
20
|
+
export interface CreateOrderInput {
|
|
21
|
+
/** Line items for the order */
|
|
22
|
+
lineItems: OrderLineItemInput[];
|
|
23
|
+
/** Customer ID to associate with order */
|
|
24
|
+
customerId?: string;
|
|
25
|
+
/** Reference ID for external tracking */
|
|
26
|
+
referenceId?: string;
|
|
27
|
+
/** Optional payment token to pay for the order */
|
|
28
|
+
paymentToken?: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Order response
|
|
32
|
+
*/
|
|
33
|
+
export interface OrderResponse {
|
|
34
|
+
id: string;
|
|
35
|
+
status: string;
|
|
36
|
+
totalMoney?: {
|
|
37
|
+
amount: number;
|
|
38
|
+
currency: string;
|
|
39
|
+
};
|
|
40
|
+
lineItems?: Array<{
|
|
41
|
+
uid?: string;
|
|
42
|
+
name?: string;
|
|
43
|
+
quantity?: string;
|
|
44
|
+
totalMoney?: {
|
|
45
|
+
amount: number;
|
|
46
|
+
currency: string;
|
|
47
|
+
};
|
|
48
|
+
}>;
|
|
49
|
+
customerId?: string;
|
|
50
|
+
referenceId?: string;
|
|
51
|
+
createdAt?: string;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Options for useOrders hook
|
|
55
|
+
*/
|
|
56
|
+
export interface UseOrdersOptions {
|
|
57
|
+
/** API endpoint for orders (default: /api/orders) */
|
|
58
|
+
apiEndpoint?: string;
|
|
59
|
+
/** Callback on successful order creation */
|
|
60
|
+
onSuccess?: (order: OrderResponse) => void;
|
|
61
|
+
/** Callback on order error */
|
|
62
|
+
onError?: (error: Error) => void;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Return type for useOrders hook
|
|
66
|
+
*/
|
|
67
|
+
export interface UseOrdersReturn extends MutationState<OrderResponse> {
|
|
68
|
+
/** Create a new order */
|
|
69
|
+
create: (options: CreateOrderInput) => Promise<OrderResponse>;
|
|
70
|
+
/** Get an order by ID */
|
|
71
|
+
get: (orderId: string) => Promise<OrderResponse>;
|
|
72
|
+
/** Reset the hook state */
|
|
73
|
+
reset: () => void;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Hook for managing orders via your backend API
|
|
77
|
+
*
|
|
78
|
+
* @param options - Hook configuration
|
|
79
|
+
* @returns Order management functions and state
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* ```tsx
|
|
83
|
+
* function Checkout() {
|
|
84
|
+
* const { cardRef, tokenize, ready } = useSquarePayment();
|
|
85
|
+
* const { create: createOrder, loading, error } = useOrders({
|
|
86
|
+
* onSuccess: (order) => console.log('Order created:', order.id),
|
|
87
|
+
* });
|
|
88
|
+
*
|
|
89
|
+
* const handleCheckout = async () => {
|
|
90
|
+
* const token = await tokenize();
|
|
91
|
+
* await createOrder({
|
|
92
|
+
* lineItems: [
|
|
93
|
+
* { name: 'Latte', amount: 450 },
|
|
94
|
+
* { name: 'Croissant', amount: 350 },
|
|
95
|
+
* ],
|
|
96
|
+
* paymentToken: token,
|
|
97
|
+
* });
|
|
98
|
+
* };
|
|
99
|
+
*
|
|
100
|
+
* return (
|
|
101
|
+
* <div>
|
|
102
|
+
* <div ref={cardRef} />
|
|
103
|
+
* <button onClick={handleCheckout} disabled={!ready || loading}>
|
|
104
|
+
* Pay $8.00
|
|
105
|
+
* </button>
|
|
106
|
+
* </div>
|
|
107
|
+
* );
|
|
108
|
+
* }
|
|
109
|
+
* ```
|
|
110
|
+
*/
|
|
111
|
+
export declare function useOrders(options?: UseOrdersOptions): UseOrdersReturn;
|
|
112
|
+
//# sourceMappingURL=useOrders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useOrders.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/useOrders.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,mCAAmC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,+BAA+B;IAC/B,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAChC,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE;QACX,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,SAAS,CAAC,EAAE,KAAK,CAAC;QAChB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE;YACX,MAAM,EAAE,MAAM,CAAC;YACf,QAAQ,EAAE,MAAM,CAAC;SAClB,CAAC;KACH,CAAC,CAAC;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC3C,8BAA8B;IAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,aAAa,CAAC,aAAa,CAAC;IACnE,yBAAyB;IACzB,MAAM,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9D,yBAAyB;IACzB,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IACjD,2BAA2B;IAC3B,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,SAAS,CAAC,OAAO,GAAE,gBAAqB,GAAG,eAAe,CAyFzE"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { useState, useCallback } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Hook for managing orders via your backend API
|
|
4
|
+
*
|
|
5
|
+
* @param options - Hook configuration
|
|
6
|
+
* @returns Order management functions and state
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```tsx
|
|
10
|
+
* function Checkout() {
|
|
11
|
+
* const { cardRef, tokenize, ready } = useSquarePayment();
|
|
12
|
+
* const { create: createOrder, loading, error } = useOrders({
|
|
13
|
+
* onSuccess: (order) => console.log('Order created:', order.id),
|
|
14
|
+
* });
|
|
15
|
+
*
|
|
16
|
+
* const handleCheckout = async () => {
|
|
17
|
+
* const token = await tokenize();
|
|
18
|
+
* await createOrder({
|
|
19
|
+
* lineItems: [
|
|
20
|
+
* { name: 'Latte', amount: 450 },
|
|
21
|
+
* { name: 'Croissant', amount: 350 },
|
|
22
|
+
* ],
|
|
23
|
+
* paymentToken: token,
|
|
24
|
+
* });
|
|
25
|
+
* };
|
|
26
|
+
*
|
|
27
|
+
* return (
|
|
28
|
+
* <div>
|
|
29
|
+
* <div ref={cardRef} />
|
|
30
|
+
* <button onClick={handleCheckout} disabled={!ready || loading}>
|
|
31
|
+
* Pay $8.00
|
|
32
|
+
* </button>
|
|
33
|
+
* </div>
|
|
34
|
+
* );
|
|
35
|
+
* }
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export function useOrders(options = {}) {
|
|
39
|
+
const { apiEndpoint = '/api/orders', onSuccess, onError } = options;
|
|
40
|
+
const [data, setData] = useState(null);
|
|
41
|
+
const [error, setError] = useState(null);
|
|
42
|
+
const [loading, setLoading] = useState(false);
|
|
43
|
+
const reset = useCallback(() => {
|
|
44
|
+
setData(null);
|
|
45
|
+
setError(null);
|
|
46
|
+
setLoading(false);
|
|
47
|
+
}, []);
|
|
48
|
+
const create = useCallback(async (input) => {
|
|
49
|
+
setLoading(true);
|
|
50
|
+
setError(null);
|
|
51
|
+
try {
|
|
52
|
+
const response = await fetch(apiEndpoint, {
|
|
53
|
+
method: 'POST',
|
|
54
|
+
headers: {
|
|
55
|
+
'Content-Type': 'application/json',
|
|
56
|
+
},
|
|
57
|
+
body: JSON.stringify(input),
|
|
58
|
+
});
|
|
59
|
+
if (!response.ok) {
|
|
60
|
+
const errorData = (await response.json().catch(() => ({})));
|
|
61
|
+
throw new Error(errorData.message ?? `Order creation failed: ${response.statusText}`);
|
|
62
|
+
}
|
|
63
|
+
const order = (await response.json());
|
|
64
|
+
setData(order);
|
|
65
|
+
onSuccess?.(order);
|
|
66
|
+
return order;
|
|
67
|
+
}
|
|
68
|
+
catch (err) {
|
|
69
|
+
const error = err instanceof Error ? err : new Error('Order creation failed');
|
|
70
|
+
setError(error);
|
|
71
|
+
onError?.(error);
|
|
72
|
+
throw error;
|
|
73
|
+
}
|
|
74
|
+
finally {
|
|
75
|
+
setLoading(false);
|
|
76
|
+
}
|
|
77
|
+
}, [apiEndpoint, onSuccess, onError]);
|
|
78
|
+
const get = useCallback(async (orderId) => {
|
|
79
|
+
setLoading(true);
|
|
80
|
+
setError(null);
|
|
81
|
+
try {
|
|
82
|
+
const response = await fetch(`${apiEndpoint}/${orderId}`, {
|
|
83
|
+
method: 'GET',
|
|
84
|
+
headers: {
|
|
85
|
+
'Content-Type': 'application/json',
|
|
86
|
+
},
|
|
87
|
+
});
|
|
88
|
+
if (!response.ok) {
|
|
89
|
+
const errorData = (await response.json().catch(() => ({})));
|
|
90
|
+
throw new Error(errorData.message ?? `Failed to get order: ${response.statusText}`);
|
|
91
|
+
}
|
|
92
|
+
const order = (await response.json());
|
|
93
|
+
setData(order);
|
|
94
|
+
return order;
|
|
95
|
+
}
|
|
96
|
+
catch (err) {
|
|
97
|
+
const error = err instanceof Error ? err : new Error('Failed to get order');
|
|
98
|
+
setError(error);
|
|
99
|
+
onError?.(error);
|
|
100
|
+
throw error;
|
|
101
|
+
}
|
|
102
|
+
finally {
|
|
103
|
+
setLoading(false);
|
|
104
|
+
}
|
|
105
|
+
}, [apiEndpoint, onError]);
|
|
106
|
+
return {
|
|
107
|
+
create,
|
|
108
|
+
get,
|
|
109
|
+
reset,
|
|
110
|
+
data,
|
|
111
|
+
error,
|
|
112
|
+
loading,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=useOrders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useOrders.js","sourceRoot":"","sources":["../../../src/react/hooks/useOrders.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import type { MutationState } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Payment creation options for the hook
|
|
4
|
+
*/
|
|
5
|
+
export interface CreatePaymentInput {
|
|
6
|
+
/** Payment source token from card tokenization */
|
|
7
|
+
sourceId: string;
|
|
8
|
+
/** Amount in smallest currency unit (cents for USD) */
|
|
9
|
+
amount: number;
|
|
10
|
+
/** Currency code */
|
|
11
|
+
currency?: string;
|
|
12
|
+
/** Customer ID to associate with payment */
|
|
13
|
+
customerId?: string;
|
|
14
|
+
/** Order ID to associate with payment */
|
|
15
|
+
orderId?: string;
|
|
16
|
+
/** Reference ID for external tracking */
|
|
17
|
+
referenceId?: string;
|
|
18
|
+
/** Note for the payment */
|
|
19
|
+
note?: string;
|
|
20
|
+
/** Whether to auto-complete the payment */
|
|
21
|
+
autocomplete?: boolean;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Payment response
|
|
25
|
+
*/
|
|
26
|
+
export interface PaymentResponse {
|
|
27
|
+
id: string;
|
|
28
|
+
status: string;
|
|
29
|
+
amount: number;
|
|
30
|
+
currency: string;
|
|
31
|
+
sourceType?: string;
|
|
32
|
+
receiptNumber?: string;
|
|
33
|
+
receiptUrl?: string;
|
|
34
|
+
orderId?: string;
|
|
35
|
+
customerId?: string;
|
|
36
|
+
createdAt?: string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Options for usePayments hook
|
|
40
|
+
*/
|
|
41
|
+
export interface UsePaymentsOptions {
|
|
42
|
+
/** API endpoint for creating payments (default: /api/payments) */
|
|
43
|
+
apiEndpoint?: string;
|
|
44
|
+
/** Callback on successful payment */
|
|
45
|
+
onSuccess?: (payment: PaymentResponse) => void;
|
|
46
|
+
/** Callback on payment error */
|
|
47
|
+
onError?: (error: Error) => void;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Return type for usePayments hook
|
|
51
|
+
*/
|
|
52
|
+
export interface UsePaymentsReturn extends MutationState<PaymentResponse> {
|
|
53
|
+
/** Create a new payment */
|
|
54
|
+
create: (options: CreatePaymentInput) => Promise<PaymentResponse>;
|
|
55
|
+
/** Reset the hook state */
|
|
56
|
+
reset: () => void;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Hook for creating payments via your backend API
|
|
60
|
+
*
|
|
61
|
+
* This hook sends payment requests to your backend, which should then
|
|
62
|
+
* use the Square Payments API to process the payment.
|
|
63
|
+
*
|
|
64
|
+
* @param options - Hook configuration
|
|
65
|
+
* @returns Payment creation function and state
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```tsx
|
|
69
|
+
* function Checkout() {
|
|
70
|
+
* const { cardRef, tokenize, ready } = useSquarePayment();
|
|
71
|
+
* const { create: createPayment, loading, error } = usePayments({
|
|
72
|
+
* onSuccess: (payment) => console.log('Payment successful:', payment.id),
|
|
73
|
+
* onError: (err) => console.error('Payment failed:', err),
|
|
74
|
+
* });
|
|
75
|
+
*
|
|
76
|
+
* const handlePay = async () => {
|
|
77
|
+
* const token = await tokenize();
|
|
78
|
+
* await createPayment({
|
|
79
|
+
* sourceId: token,
|
|
80
|
+
* amount: 1000, // $10.00
|
|
81
|
+
* currency: 'USD',
|
|
82
|
+
* });
|
|
83
|
+
* };
|
|
84
|
+
*
|
|
85
|
+
* return (
|
|
86
|
+
* <div>
|
|
87
|
+
* <div ref={cardRef} />
|
|
88
|
+
* <button onClick={handlePay} disabled={!ready || loading}>
|
|
89
|
+
* Pay $10.00
|
|
90
|
+
* </button>
|
|
91
|
+
* {error && <p>Error: {error.message}</p>}
|
|
92
|
+
* </div>
|
|
93
|
+
* );
|
|
94
|
+
* }
|
|
95
|
+
* ```
|
|
96
|
+
*/
|
|
97
|
+
export declare function usePayments(options?: UsePaymentsOptions): UsePaymentsReturn;
|
|
98
|
+
//# sourceMappingURL=usePayments.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePayments.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/usePayments.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,kDAAkD;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2BAA2B;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;IAC/C,gCAAgC;IAChC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,aAAa,CAAC,eAAe,CAAC;IACvE,2BAA2B;IAC3B,MAAM,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IAClE,2BAA2B;IAC3B,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,WAAW,CAAC,OAAO,GAAE,kBAAuB,GAAG,iBAAiB,CAuD/E"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { useState, useCallback } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Hook for creating payments via your backend API
|
|
4
|
+
*
|
|
5
|
+
* This hook sends payment requests to your backend, which should then
|
|
6
|
+
* use the Square Payments API to process the payment.
|
|
7
|
+
*
|
|
8
|
+
* @param options - Hook configuration
|
|
9
|
+
* @returns Payment creation function and state
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```tsx
|
|
13
|
+
* function Checkout() {
|
|
14
|
+
* const { cardRef, tokenize, ready } = useSquarePayment();
|
|
15
|
+
* const { create: createPayment, loading, error } = usePayments({
|
|
16
|
+
* onSuccess: (payment) => console.log('Payment successful:', payment.id),
|
|
17
|
+
* onError: (err) => console.error('Payment failed:', err),
|
|
18
|
+
* });
|
|
19
|
+
*
|
|
20
|
+
* const handlePay = async () => {
|
|
21
|
+
* const token = await tokenize();
|
|
22
|
+
* await createPayment({
|
|
23
|
+
* sourceId: token,
|
|
24
|
+
* amount: 1000, // $10.00
|
|
25
|
+
* currency: 'USD',
|
|
26
|
+
* });
|
|
27
|
+
* };
|
|
28
|
+
*
|
|
29
|
+
* return (
|
|
30
|
+
* <div>
|
|
31
|
+
* <div ref={cardRef} />
|
|
32
|
+
* <button onClick={handlePay} disabled={!ready || loading}>
|
|
33
|
+
* Pay $10.00
|
|
34
|
+
* </button>
|
|
35
|
+
* {error && <p>Error: {error.message}</p>}
|
|
36
|
+
* </div>
|
|
37
|
+
* );
|
|
38
|
+
* }
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export function usePayments(options = {}) {
|
|
42
|
+
const { apiEndpoint = '/api/payments', onSuccess, onError } = options;
|
|
43
|
+
const [data, setData] = useState(null);
|
|
44
|
+
const [error, setError] = useState(null);
|
|
45
|
+
const [loading, setLoading] = useState(false);
|
|
46
|
+
const reset = useCallback(() => {
|
|
47
|
+
setData(null);
|
|
48
|
+
setError(null);
|
|
49
|
+
setLoading(false);
|
|
50
|
+
}, []);
|
|
51
|
+
const create = useCallback(async (input) => {
|
|
52
|
+
setLoading(true);
|
|
53
|
+
setError(null);
|
|
54
|
+
try {
|
|
55
|
+
const response = await fetch(apiEndpoint, {
|
|
56
|
+
method: 'POST',
|
|
57
|
+
headers: {
|
|
58
|
+
'Content-Type': 'application/json',
|
|
59
|
+
},
|
|
60
|
+
body: JSON.stringify(input),
|
|
61
|
+
});
|
|
62
|
+
if (!response.ok) {
|
|
63
|
+
const errorData = (await response.json().catch(() => ({})));
|
|
64
|
+
throw new Error(errorData.message ?? `Payment failed: ${response.statusText}`);
|
|
65
|
+
}
|
|
66
|
+
const payment = (await response.json());
|
|
67
|
+
setData(payment);
|
|
68
|
+
onSuccess?.(payment);
|
|
69
|
+
return payment;
|
|
70
|
+
}
|
|
71
|
+
catch (err) {
|
|
72
|
+
const error = err instanceof Error ? err : new Error('Payment failed');
|
|
73
|
+
setError(error);
|
|
74
|
+
onError?.(error);
|
|
75
|
+
throw error;
|
|
76
|
+
}
|
|
77
|
+
finally {
|
|
78
|
+
setLoading(false);
|
|
79
|
+
}
|
|
80
|
+
}, [apiEndpoint, onSuccess, onError]);
|
|
81
|
+
return {
|
|
82
|
+
create,
|
|
83
|
+
reset,
|
|
84
|
+
data,
|
|
85
|
+
error,
|
|
86
|
+
loading,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=usePayments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePayments.js","sourceRoot":"","sources":["../../../src/react/hooks/usePayments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AA+D9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,UAAU,WAAW,CAAC,UAA8B,EAAE;IAC1D,MAAM,EAAE,WAAW,GAAG,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAEtE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAyB,IAAI,CAAC,CAAC;IAC/D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IACvD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE9C,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,OAAO,CAAC,IAAI,CAAC,CAAC;QACd,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,UAAU,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,MAAM,GAAG,WAAW,CACxB,KAAK,EAAE,KAAyB,EAA4B,EAAE;QAC5D,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEf,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE;gBACxC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;aAC5B,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,SAAS,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAyB,CAAC;gBACpF,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,IAAI,mBAAmB,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;YACjF,CAAC;YAED,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAoB,CAAC;YAC3D,OAAO,CAAC,OAAO,CAAC,CAAC;YACjB,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC;YACrB,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;YACvE,QAAQ,CAAC,KAAK,CAAC,CAAC;YAChB,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;YACjB,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,EACD,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,CAClC,CAAC;IAEF,OAAO;QACL,MAAM;QACN,KAAK;QACL,IAAI;QACJ,KAAK;QACL,OAAO;KACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { CardOptions, UseSquarePaymentReturn } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Options for useSquarePayment hook
|
|
4
|
+
*/
|
|
5
|
+
export interface UseSquarePaymentOptions {
|
|
6
|
+
/** Card input styling options */
|
|
7
|
+
cardOptions?: CardOptions;
|
|
8
|
+
/** Callback when card is ready */
|
|
9
|
+
onReady?: () => void;
|
|
10
|
+
/** Callback when tokenization succeeds */
|
|
11
|
+
onTokenize?: (token: string) => void;
|
|
12
|
+
/** Callback when an error occurs */
|
|
13
|
+
onError?: (error: Error) => void;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Hook for integrating Square Web Payments SDK card input
|
|
17
|
+
*
|
|
18
|
+
* @param options - Configuration options
|
|
19
|
+
* @returns Card input ref, tokenize function, and state
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```tsx
|
|
23
|
+
* function Checkout() {
|
|
24
|
+
* const { cardRef, tokenize, ready, loading, error } = useSquarePayment({
|
|
25
|
+
* onReady: () => console.log('Card input ready'),
|
|
26
|
+
* onTokenize: (token) => console.log('Token:', token),
|
|
27
|
+
* onError: (err) => console.error('Error:', err),
|
|
28
|
+
* });
|
|
29
|
+
*
|
|
30
|
+
* const handlePay = async () => {
|
|
31
|
+
* try {
|
|
32
|
+
* const token = await tokenize();
|
|
33
|
+
* // Send token to your server to complete payment
|
|
34
|
+
* } catch (err) {
|
|
35
|
+
* console.error('Tokenization failed:', err);
|
|
36
|
+
* }
|
|
37
|
+
* };
|
|
38
|
+
*
|
|
39
|
+
* return (
|
|
40
|
+
* <div>
|
|
41
|
+
* <div ref={cardRef} />
|
|
42
|
+
* <button onClick={handlePay} disabled={!ready || loading}>
|
|
43
|
+
* Pay
|
|
44
|
+
* </button>
|
|
45
|
+
* {error && <p>Error: {error.message}</p>}
|
|
46
|
+
* </div>
|
|
47
|
+
* );
|
|
48
|
+
* }
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export declare function useSquarePayment(options?: UseSquarePaymentOptions): UseSquarePaymentReturn;
|
|
52
|
+
//# sourceMappingURL=useSquarePayment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSquarePayment.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/useSquarePayment.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAQ,WAAW,EAAE,sBAAsB,EAAe,MAAM,aAAa,CAAC;AAE1F;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,iCAAiC;IACjC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,oCAAoC;IACpC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,uBAA4B,GAAG,sBAAsB,CA2H9F"}
|