@springmicro/cart 0.6.4 → 0.7.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/dist/index.js +2041 -2035
- package/dist/index.umd.cjs +50 -50
- package/package.json +3 -3
- package/springmicro-cart-0.6.4.tgz +0 -0
- package/src/checkout/ReviewCartAndCalculateTaxes.tsx +33 -27
- package/src/checkout/components/AddCard.tsx +9 -5
- package/src/checkout/components/Address.tsx +1 -1
- package/src/checkout/index.tsx +4 -1
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@springmicro/cart",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.7.1",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"@nanostores/persistent": "^0.10.1",
|
|
25
25
|
"@nanostores/query": "^0.3.3",
|
|
26
26
|
"@nanostores/react": "^0.7.2",
|
|
27
|
-
"@springmicro/utils": "0.
|
|
27
|
+
"@springmicro/utils": "0.7.1",
|
|
28
28
|
"dotenv": "^16.4.5",
|
|
29
29
|
"nanostores": "^0.10.3",
|
|
30
30
|
"react": "^18.2.0",
|
|
@@ -49,5 +49,5 @@
|
|
|
49
49
|
"vite-plugin-css-injected-by-js": "^3.5.1",
|
|
50
50
|
"yup": "^1.4.0"
|
|
51
51
|
},
|
|
52
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "3fba722cf2e25b298d1b774c2b39ae8ac5743076"
|
|
53
53
|
}
|
|
Binary file
|
|
@@ -25,6 +25,7 @@ import {
|
|
|
25
25
|
import { AddressValues } from "./components/Address";
|
|
26
26
|
import { useFormik } from "formik";
|
|
27
27
|
import { postCheckout } from "../utils/api";
|
|
28
|
+
import { CheckoutFieldsType } from ".";
|
|
28
29
|
|
|
29
30
|
async function createOrder(cart, apiBaseUrl, dev) {
|
|
30
31
|
dev && console.log("Creating order");
|
|
@@ -131,6 +132,7 @@ export default function ReviewAndCalculateTaxes({
|
|
|
131
132
|
CollectExtraInfo = undefined,
|
|
132
133
|
defaultValues = {},
|
|
133
134
|
dev,
|
|
135
|
+
hideFields = [],
|
|
134
136
|
}) {
|
|
135
137
|
dev && console.log({ products, prices });
|
|
136
138
|
const [formDisabled, setFormDisabled] = useState(true);
|
|
@@ -397,6 +399,7 @@ export default function ReviewAndCalculateTaxes({
|
|
|
397
399
|
formik={formik}
|
|
398
400
|
prices={prices}
|
|
399
401
|
products={products}
|
|
402
|
+
hideFields={hideFields}
|
|
400
403
|
/>
|
|
401
404
|
<AddCard
|
|
402
405
|
cardRequired={cardRequired}
|
|
@@ -409,6 +412,7 @@ export default function ReviewAndCalculateTaxes({
|
|
|
409
412
|
formDisabled,
|
|
410
413
|
formError,
|
|
411
414
|
}}
|
|
415
|
+
hideFields={hideFields}
|
|
412
416
|
/>
|
|
413
417
|
</Box>
|
|
414
418
|
)}
|
|
@@ -416,8 +420,8 @@ export default function ReviewAndCalculateTaxes({
|
|
|
416
420
|
);
|
|
417
421
|
}
|
|
418
422
|
|
|
419
|
-
function CheckoutActionFields({ formik, products, prices }) {
|
|
420
|
-
const checkoutFields = [
|
|
423
|
+
function CheckoutActionFields({ formik, products, prices, hideFields = [] }) {
|
|
424
|
+
const checkoutFields: Record<string, CheckoutFieldsType> = [
|
|
421
425
|
...Object.keys(products).flatMap((productKey) =>
|
|
422
426
|
(products[productKey].actions ?? []).flatMap(
|
|
423
427
|
(action) => action.checkout_fields ?? []
|
|
@@ -447,33 +451,35 @@ function CheckoutActionFields({ formik, products, prices }) {
|
|
|
447
451
|
const handleInputChange = (e) => {
|
|
448
452
|
formik.handleChange(e);
|
|
449
453
|
};
|
|
450
|
-
|
|
454
|
+
// console.log({ checkoutFields });
|
|
451
455
|
return (
|
|
452
456
|
<Box sx={{ display: "flex", flexDirection: "column", mx: 3, gap: 2 }}>
|
|
453
|
-
{Object.keys(checkoutFields)
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
457
|
+
{Object.keys(checkoutFields)
|
|
458
|
+
.filter((key) => !["email", ...hideFields].includes(key))
|
|
459
|
+
.map((key) => {
|
|
460
|
+
const {
|
|
461
|
+
name,
|
|
462
|
+
label,
|
|
463
|
+
type = "string", // todo
|
|
464
|
+
required = true, // can be a string
|
|
465
|
+
} = checkoutFields[key];
|
|
466
|
+
|
|
467
|
+
return (
|
|
468
|
+
<TextField
|
|
469
|
+
fullWidth
|
|
470
|
+
name={name}
|
|
471
|
+
label={label}
|
|
472
|
+
required={required === true || required === "true"}
|
|
473
|
+
onBlur={formik.handleBlur}
|
|
474
|
+
onChange={handleInputChange}
|
|
475
|
+
onFocus={handleInputFocus}
|
|
476
|
+
variant="outlined"
|
|
477
|
+
value={formik.values[name]}
|
|
478
|
+
error={Boolean(formik.touched[name] && formik.errors[name])}
|
|
479
|
+
helperText={formik.touched[name] && formik.errors[name]}
|
|
480
|
+
/>
|
|
481
|
+
);
|
|
482
|
+
})}
|
|
477
483
|
</Box>
|
|
478
484
|
);
|
|
479
485
|
}
|
|
@@ -68,6 +68,7 @@ export type AddCardProps = {
|
|
|
68
68
|
formDisabled;
|
|
69
69
|
formError;
|
|
70
70
|
};
|
|
71
|
+
hideFields?: string[];
|
|
71
72
|
};
|
|
72
73
|
|
|
73
74
|
export const AddCard = ({
|
|
@@ -84,6 +85,7 @@ export const AddCard = ({
|
|
|
84
85
|
formDisabled,
|
|
85
86
|
formError,
|
|
86
87
|
},
|
|
88
|
+
hideFields = [],
|
|
87
89
|
}: AddCardProps) => {
|
|
88
90
|
return (
|
|
89
91
|
<Container id="paymentMethodForm">
|
|
@@ -203,11 +205,13 @@ export const AddCard = ({
|
|
|
203
205
|
Billing Address
|
|
204
206
|
</Typography>
|
|
205
207
|
<AddressCountryField formik={formik} name="country" />
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
208
|
+
{!hideFields.includes("email") && (
|
|
209
|
+
<AddressEmailField
|
|
210
|
+
formik={formik}
|
|
211
|
+
name="email"
|
|
212
|
+
sx={{ mt: 2 }}
|
|
213
|
+
/>
|
|
214
|
+
)}
|
|
211
215
|
<AddressOrganizationNameField
|
|
212
216
|
sx={{ mt: 2 }}
|
|
213
217
|
formik={formik}
|
|
@@ -177,7 +177,7 @@ export function AddressEmailField({ formik, name, sx }: AddressFieldProps) {
|
|
|
177
177
|
return (
|
|
178
178
|
<>
|
|
179
179
|
<TextField
|
|
180
|
-
label="
|
|
180
|
+
label="Email"
|
|
181
181
|
sx={{ width: 400, display: "block", ...sx }}
|
|
182
182
|
name={name as string}
|
|
183
183
|
id={name as string}
|
package/src/checkout/index.tsx
CHANGED
|
@@ -11,7 +11,7 @@ import { FormikConfig } from "formik";
|
|
|
11
11
|
export type CheckoutFieldsType = {
|
|
12
12
|
name: string;
|
|
13
13
|
label?: string; // Defaults to a formated version of the name
|
|
14
|
-
required?: boolean; // Defaults to true
|
|
14
|
+
required?: boolean | string; // Defaults to true
|
|
15
15
|
type?: "string"; // Defaults to "string" (text)
|
|
16
16
|
};
|
|
17
17
|
|
|
@@ -23,6 +23,7 @@ export default function Checkout({
|
|
|
23
23
|
disableMissingImage = false,
|
|
24
24
|
CollectExtraInfo,
|
|
25
25
|
defaultValues,
|
|
26
|
+
hideFields = [],
|
|
26
27
|
dev,
|
|
27
28
|
}: {
|
|
28
29
|
apiBaseUrl: string;
|
|
@@ -32,6 +33,7 @@ export default function Checkout({
|
|
|
32
33
|
disableMissingImage?: boolean;
|
|
33
34
|
CollectExtraInfo?: React.FC<{ formik: FormikConfig<any> }>;
|
|
34
35
|
defaultValues?: Record<string, any>;
|
|
36
|
+
hideFields?: string[];
|
|
35
37
|
dev?: boolean;
|
|
36
38
|
}) {
|
|
37
39
|
const store = useStore(cartStore);
|
|
@@ -221,6 +223,7 @@ export default function Checkout({
|
|
|
221
223
|
CollectExtraInfo={CollectExtraInfo}
|
|
222
224
|
defaultValues={defaultValues}
|
|
223
225
|
dev={dev}
|
|
226
|
+
hideFields={hideFields}
|
|
224
227
|
/>
|
|
225
228
|
)}
|
|
226
229
|
{status === 2 && order !== undefined && (
|