@thecb/components 4.1.10 → 4.1.11-beta.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/dist/index.cjs.js +45 -7
- package/package.json +1 -1
- package/src/components/molecules/address-form/AddressForm.js +6 -6
- package/src/components/molecules/payment-button-bar/PaymentButtonBar.js +9 -2
- package/src/components/molecules/payment-form-card/PaymentFormCard.js +28 -1
- package/src/components/molecules/payment-form-card/PaymentFormCard.state.js +23 -3
package/dist/index.cjs.js
CHANGED
|
@@ -34265,17 +34265,33 @@ var AddressForm = function AddressForm(_ref) {
|
|
|
34265
34265
|
|
|
34266
34266
|
var zipErrorMessages = (_zipErrorMessages = {}, _defineProperty(_zipErrorMessages, required.error, "Zip code is required"), _defineProperty(_zipErrorMessages, hasLength.error, "Zip code must be 5 or 9 digits"), _zipErrorMessages);
|
|
34267
34267
|
|
|
34268
|
-
var stateProvinceErrorMessages = _defineProperty({}, required.error, "State or Province is required");
|
|
34269
|
-
// [required.error]: "Country is required"
|
|
34270
|
-
// };
|
|
34268
|
+
var stateProvinceErrorMessages = _defineProperty({}, required.error, "State or Province is required");
|
|
34271
34269
|
|
|
34270
|
+
var countryErrorMessages = _defineProperty({}, required.error, "Country is required");
|
|
34272
34271
|
|
|
34273
34272
|
var isUS = fields.country.rawValue === "US";
|
|
34274
34273
|
return /*#__PURE__*/React__default.createElement(FormContainer$1, {
|
|
34275
34274
|
variant: variant,
|
|
34276
34275
|
role: "form",
|
|
34277
34276
|
"aria-label": "Address"
|
|
34278
|
-
}, /*#__PURE__*/React__default.createElement(FormInputColumn, null, /*#__PURE__*/React__default.createElement(
|
|
34277
|
+
}, /*#__PURE__*/React__default.createElement(FormInputColumn, null, /*#__PURE__*/React__default.createElement(CountryDropdown, {
|
|
34278
|
+
labelTextWhenNoError: "Country",
|
|
34279
|
+
errorMessages: countryErrorMessages,
|
|
34280
|
+
field: fields.country,
|
|
34281
|
+
onChange: function onChange(value) {
|
|
34282
|
+
actions.fields.country.set(value); // temporary measure to not dirty fields until
|
|
34283
|
+
// we can write a reset function for fields
|
|
34284
|
+
|
|
34285
|
+
if (fields.stateProvince.rawValue) {
|
|
34286
|
+
actions.fields.stateProvince.set("");
|
|
34287
|
+
}
|
|
34288
|
+
|
|
34289
|
+
if (fields.zip.rawValue) {
|
|
34290
|
+
actions.fields.zip.set("");
|
|
34291
|
+
}
|
|
34292
|
+
},
|
|
34293
|
+
showErrors: showErrors
|
|
34294
|
+
}), /*#__PURE__*/React__default.createElement(FormInput$1, {
|
|
34279
34295
|
labelTextWhenNoError: "Address",
|
|
34280
34296
|
errorMessages: street1ErrorMessages,
|
|
34281
34297
|
field: fields.street1,
|
|
@@ -39327,6 +39343,8 @@ var expirationDateErrors = (_expirationDateErrors = {}, _defineProperty(_expirat
|
|
|
39327
39343
|
var cvvErrors = (_cvvErrors = {}, _defineProperty(_cvvErrors, required.error, "CVV is required"), _defineProperty(_cvvErrors, hasLength.error, "CVV is invalid"), _cvvErrors);
|
|
39328
39344
|
var zipCodeErrors = (_zipCodeErrors = {}, _defineProperty(_zipCodeErrors, required.error, "Zip code is required"), _defineProperty(_zipCodeErrors, hasLength.error, "Zip code is invalid"), _zipCodeErrors);
|
|
39329
39345
|
|
|
39346
|
+
var countryErrorMessages = _defineProperty({}, required.error, "Country is required");
|
|
39347
|
+
|
|
39330
39348
|
var PaymentFormCard = function PaymentFormCard(_ref) {
|
|
39331
39349
|
var _ref$variant = _ref.variant,
|
|
39332
39350
|
variant = _ref$variant === void 0 ? "default" : _ref$variant,
|
|
@@ -39361,11 +39379,25 @@ var PaymentFormCard = function PaymentFormCard(_ref) {
|
|
|
39361
39379
|
};
|
|
39362
39380
|
}
|
|
39363
39381
|
}, []);
|
|
39382
|
+
var isUS = fields.country.rawValue === "US";
|
|
39364
39383
|
return /*#__PURE__*/React__default.createElement(FormContainer$1, {
|
|
39365
39384
|
variant: variant,
|
|
39366
39385
|
role: "form",
|
|
39367
39386
|
"aria-label": "Card payment"
|
|
39368
|
-
}, /*#__PURE__*/React__default.createElement(FormInputColumn, null, /*#__PURE__*/React__default.createElement(
|
|
39387
|
+
}, /*#__PURE__*/React__default.createElement(FormInputColumn, null, !hideZipCode && /*#__PURE__*/React__default.createElement(CountryDropdown, {
|
|
39388
|
+
labelTextWhenNoError: "Country",
|
|
39389
|
+
errorMessages: countryErrorMessages,
|
|
39390
|
+
field: fields.country,
|
|
39391
|
+
onChange: function onChange(value) {
|
|
39392
|
+
actions.fields.country.set(value); // temporary measure to not dirty fields until
|
|
39393
|
+
// we can write a reset function for fields
|
|
39394
|
+
|
|
39395
|
+
if (fields.zipCode.rawValue) {
|
|
39396
|
+
actions.fields.zipCode.set("");
|
|
39397
|
+
}
|
|
39398
|
+
},
|
|
39399
|
+
showErrors: showErrors
|
|
39400
|
+
}), /*#__PURE__*/React__default.createElement(FormInput$1, {
|
|
39369
39401
|
labelTextWhenNoError: "Name on card",
|
|
39370
39402
|
errorMessages: nameOnCardErrors,
|
|
39371
39403
|
field: fields.nameOnCard,
|
|
@@ -39410,6 +39442,8 @@ var PaymentFormCard = function PaymentFormCard(_ref) {
|
|
|
39410
39442
|
padding: isMobile ? "0" : "0 0.5rem 0 0",
|
|
39411
39443
|
width: isMobile ? "100%" : "50%"
|
|
39412
39444
|
}, /*#__PURE__*/React__default.createElement(FormInput$1, {
|
|
39445
|
+
isNum: isUS,
|
|
39446
|
+
formatter: isUS ? zipFormat : null,
|
|
39413
39447
|
labelTextWhenNoError: "Zip code",
|
|
39414
39448
|
errorMessages: zipCodeErrors,
|
|
39415
39449
|
field: fields.zipCode,
|
|
@@ -39439,6 +39473,10 @@ var PaymentFormCard = function PaymentFormCard(_ref) {
|
|
|
39439
39473
|
};
|
|
39440
39474
|
|
|
39441
39475
|
var formConfig$7 = {
|
|
39476
|
+
country: {
|
|
39477
|
+
defaultValue: "US",
|
|
39478
|
+
validators: [required()]
|
|
39479
|
+
},
|
|
39442
39480
|
nameOnCard: {
|
|
39443
39481
|
validators: [required()]
|
|
39444
39482
|
},
|
|
@@ -39455,8 +39493,8 @@ var formConfig$7 = {
|
|
|
39455
39493
|
constraints: [onlyIntegers(), hasLength(0, 4)]
|
|
39456
39494
|
},
|
|
39457
39495
|
zipCode: {
|
|
39458
|
-
validators: [required(), hasLength(5, 5)],
|
|
39459
|
-
constraints: [onlyIntegers(), hasLength(0,
|
|
39496
|
+
validators: [required(), validateWhen(validateWhen(hasLength(5, 5), hasLength(0, 5)), matchesRegex("US"), "country"), validateWhen(validateWhen(hasLength(9, 9), hasLength(6, 9)), matchesRegex("US"), "country")],
|
|
39497
|
+
constraints: [validateWhen(onlyIntegers(), matchesRegex("US"), "country"), validateWhen(hasLength(0, 9), matchesRegex("US"), "country")]
|
|
39460
39498
|
}
|
|
39461
39499
|
};
|
|
39462
39500
|
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@ import { required, hasLength } from "redux-freeform";
|
|
|
3
3
|
import styled from "styled-components";
|
|
4
4
|
import StateProvinceDropdown from "../../atoms/state-province-dropdown";
|
|
5
5
|
import Checkbox from "../../atoms/checkbox";
|
|
6
|
-
|
|
6
|
+
import CountryDropdown from "../../atoms/country-dropdown";
|
|
7
7
|
import { zipFormat } from "../../../util/formats";
|
|
8
8
|
import { noop } from "../../../util/general";
|
|
9
9
|
import {
|
|
@@ -51,16 +51,16 @@ const AddressForm = ({
|
|
|
51
51
|
const stateProvinceErrorMessages = {
|
|
52
52
|
[required.error]: "State or Province is required"
|
|
53
53
|
};
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
54
|
+
const countryErrorMessages = {
|
|
55
|
+
[required.error]: "Country is required"
|
|
56
|
+
};
|
|
57
57
|
|
|
58
58
|
const isUS = fields.country.rawValue === "US";
|
|
59
59
|
|
|
60
60
|
return (
|
|
61
61
|
<FormContainer variant={variant} role="form" aria-label="Address">
|
|
62
62
|
<FormInputColumn>
|
|
63
|
-
|
|
63
|
+
<CountryDropdown
|
|
64
64
|
labelTextWhenNoError="Country"
|
|
65
65
|
errorMessages={countryErrorMessages}
|
|
66
66
|
field={fields.country}
|
|
@@ -76,7 +76,7 @@ const AddressForm = ({
|
|
|
76
76
|
}
|
|
77
77
|
}}
|
|
78
78
|
showErrors={showErrors}
|
|
79
|
-
/>
|
|
79
|
+
/>
|
|
80
80
|
<FormInput
|
|
81
81
|
labelTextWhenNoError="Address"
|
|
82
82
|
errorMessages={street1ErrorMessages}
|
|
@@ -16,7 +16,8 @@ const PaymentButtonBar = ({
|
|
|
16
16
|
cancelURL,
|
|
17
17
|
cancelText = "Cancel",
|
|
18
18
|
redirectURL,
|
|
19
|
-
redirectText = "Return"
|
|
19
|
+
redirectText = "Return",
|
|
20
|
+
buttonFlexOverride
|
|
20
21
|
}) => {
|
|
21
22
|
const { isMobile } = useContext(ThemeContext);
|
|
22
23
|
|
|
@@ -68,7 +69,13 @@ const PaymentButtonBar = ({
|
|
|
68
69
|
<SolidDivider />
|
|
69
70
|
<Box padding="2.5rem 0 3.125rem 0">
|
|
70
71
|
<Cluster
|
|
71
|
-
justify={
|
|
72
|
+
justify={
|
|
73
|
+
buttonFlexOverride
|
|
74
|
+
? buttonFlexOverride
|
|
75
|
+
: !!backButton
|
|
76
|
+
? "space-between"
|
|
77
|
+
: "flex-end"
|
|
78
|
+
}
|
|
72
79
|
align="center"
|
|
73
80
|
childGap="0.75rem"
|
|
74
81
|
>
|
|
@@ -2,8 +2,13 @@ import React, { useEffect, useState } from "react";
|
|
|
2
2
|
import styled from "styled-components";
|
|
3
3
|
import { required, hasLength, matchesRegex } from "redux-freeform";
|
|
4
4
|
import Checkbox from "../../atoms/checkbox";
|
|
5
|
+
import CountryDropdown from "../../atoms/country-dropdown";
|
|
5
6
|
import { checkCardBrand, noop } from "../../../util/general";
|
|
6
|
-
import {
|
|
7
|
+
import {
|
|
8
|
+
expirationDateFormat,
|
|
9
|
+
creditCardFormat,
|
|
10
|
+
zipFormat
|
|
11
|
+
} from "../../../util/formats";
|
|
7
12
|
import {
|
|
8
13
|
FormInput,
|
|
9
14
|
FormInputColumn,
|
|
@@ -36,6 +41,9 @@ const zipCodeErrors = {
|
|
|
36
41
|
[required.error]: "Zip code is required",
|
|
37
42
|
[hasLength.error]: "Zip code is invalid"
|
|
38
43
|
};
|
|
44
|
+
const countryErrorMessages = {
|
|
45
|
+
[required.error]: "Country is required"
|
|
46
|
+
};
|
|
39
47
|
|
|
40
48
|
const PaymentFormCard = ({
|
|
41
49
|
variant = "default",
|
|
@@ -61,9 +69,26 @@ const PaymentFormCard = ({
|
|
|
61
69
|
return () => actions.form.clear();
|
|
62
70
|
}
|
|
63
71
|
}, []);
|
|
72
|
+
const isUS = fields.country.rawValue === "US";
|
|
64
73
|
return (
|
|
65
74
|
<FormContainer variant={variant} role="form" aria-label="Card payment">
|
|
66
75
|
<FormInputColumn>
|
|
76
|
+
{!hideZipCode && (
|
|
77
|
+
<CountryDropdown
|
|
78
|
+
labelTextWhenNoError="Country"
|
|
79
|
+
errorMessages={countryErrorMessages}
|
|
80
|
+
field={fields.country}
|
|
81
|
+
onChange={value => {
|
|
82
|
+
actions.fields.country.set(value);
|
|
83
|
+
// temporary measure to not dirty fields until
|
|
84
|
+
// we can write a reset function for fields
|
|
85
|
+
if (fields.zipCode.rawValue) {
|
|
86
|
+
actions.fields.zipCode.set("");
|
|
87
|
+
}
|
|
88
|
+
}}
|
|
89
|
+
showErrors={showErrors}
|
|
90
|
+
/>
|
|
91
|
+
)}
|
|
67
92
|
<FormInput
|
|
68
93
|
labelTextWhenNoError="Name on card"
|
|
69
94
|
errorMessages={nameOnCardErrors}
|
|
@@ -111,6 +136,8 @@ const PaymentFormCard = ({
|
|
|
111
136
|
width={isMobile ? "100%" : "50%"}
|
|
112
137
|
>
|
|
113
138
|
<FormInput
|
|
139
|
+
isNum={isUS}
|
|
140
|
+
formatter={isUS ? zipFormat : null}
|
|
114
141
|
labelTextWhenNoError="Zip code"
|
|
115
142
|
errorMessages={zipCodeErrors}
|
|
116
143
|
field={fields.zipCode}
|
|
@@ -3,12 +3,17 @@ import {
|
|
|
3
3
|
required,
|
|
4
4
|
onlyIntegers,
|
|
5
5
|
hasLength,
|
|
6
|
-
matchesRegex
|
|
6
|
+
matchesRegex,
|
|
7
|
+
validateWhen
|
|
7
8
|
} from "redux-freeform";
|
|
8
9
|
|
|
9
10
|
//TODO: Will make zip code able to have more than 5 digits once we add in the FormattedInput because it will have issues with format of 60606-1111.
|
|
10
11
|
|
|
11
12
|
const formConfig = {
|
|
13
|
+
country: {
|
|
14
|
+
defaultValue: "US",
|
|
15
|
+
validators: [required()]
|
|
16
|
+
},
|
|
12
17
|
nameOnCard: {
|
|
13
18
|
validators: [required()]
|
|
14
19
|
},
|
|
@@ -29,8 +34,23 @@ const formConfig = {
|
|
|
29
34
|
constraints: [onlyIntegers(), hasLength(0, 4)]
|
|
30
35
|
},
|
|
31
36
|
zipCode: {
|
|
32
|
-
validators: [
|
|
33
|
-
|
|
37
|
+
validators: [
|
|
38
|
+
required(),
|
|
39
|
+
validateWhen(
|
|
40
|
+
validateWhen(hasLength(5, 5), hasLength(0, 5)),
|
|
41
|
+
matchesRegex("US"),
|
|
42
|
+
"country"
|
|
43
|
+
),
|
|
44
|
+
validateWhen(
|
|
45
|
+
validateWhen(hasLength(9, 9), hasLength(6, 9)),
|
|
46
|
+
matchesRegex("US"),
|
|
47
|
+
"country"
|
|
48
|
+
)
|
|
49
|
+
],
|
|
50
|
+
constraints: [
|
|
51
|
+
validateWhen(onlyIntegers(), matchesRegex("US"), "country"),
|
|
52
|
+
validateWhen(hasLength(0, 9), matchesRegex("US"), "country")
|
|
53
|
+
]
|
|
34
54
|
}
|
|
35
55
|
};
|
|
36
56
|
|