@magento/venia-ui 9.2.0-beta.1 → 9.3.0-beta.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/i18n/en_US.json +17 -3
- package/lib/RootComponents/CMS/__tests__/__snapshots__/cms.spec.js.snap +19 -0
- package/lib/RootComponents/CMS/__tests__/cms.spec.js +4 -9
- package/lib/RootComponents/CMS/cms.js +5 -4
- package/lib/RootComponents/CMS/cms.shimmer.js +18 -0
- package/lib/RootComponents/Category/__tests__/__snapshots__/categoryContent.shimmer.spec.js.snap +12 -0
- package/lib/RootComponents/Category/categoryContent.js +4 -1
- package/lib/components/AccountChip/accountChip.js +3 -1
- package/lib/components/AccountInformationPage/accountInformationPage.js +3 -1
- package/lib/components/AccountInformationPage/editModal.js +9 -2
- package/lib/components/AccountMenu/accountMenuItems.js +8 -3
- package/lib/components/CartPage/GiftCards/giftCards.js +1 -1
- package/lib/components/CartPage/PriceAdjustments/CouponCode/couponCode.js +5 -1
- package/lib/components/CartPage/PriceAdjustments/GiftOptions/__tests__/__snapshots__/giftOptions.spec.js.snap +1018 -78
- package/lib/components/CartPage/PriceAdjustments/GiftOptions/__tests__/giftOptions.spec.js +221 -35
- package/lib/components/CartPage/PriceAdjustments/GiftOptions/giftOptions.js +287 -40
- package/lib/components/CartPage/PriceAdjustments/GiftOptions/giftOptions.module.css +56 -1
- package/lib/components/CartPage/PriceAdjustments/__tests__/__snapshots__/giftCardSection.ee.spec.js.snap +12 -0
- package/lib/components/CartPage/PriceAdjustments/__tests__/__snapshots__/giftOptionsSection.ce.spec.js.snap +3 -0
- package/lib/components/CartPage/PriceAdjustments/__tests__/__snapshots__/giftOptionsSection.ee.spec.js.snap +16 -0
- package/lib/components/CartPage/PriceAdjustments/__tests__/__snapshots__/priceAdjustments.spec.js.snap +1 -32
- package/lib/components/CartPage/PriceAdjustments/__tests__/giftCardSection.ce.spec.js +17 -0
- package/lib/components/CartPage/PriceAdjustments/__tests__/giftCardSection.ee.spec.js +36 -0
- package/lib/components/CartPage/PriceAdjustments/__tests__/giftOptionsSection.ce.spec.js +17 -0
- package/lib/components/CartPage/PriceAdjustments/__tests__/giftOptionsSection.ee.spec.js +54 -0
- package/lib/components/CartPage/PriceAdjustments/__tests__/priceAdjustments.spec.js +1 -1
- package/lib/components/CartPage/PriceAdjustments/{giftCardSection.js → giftCardSection.ce.js} +0 -0
- package/lib/components/CartPage/PriceAdjustments/giftOptionsSection.ce.js +7 -0
- package/lib/components/CartPage/PriceAdjustments/giftOptionsSection.ee.js +38 -0
- package/lib/components/CartPage/PriceAdjustments/priceAdjustments.js +2 -14
- package/lib/components/CartPage/PriceSummary/__tests__/__snapshots__/discountSummary.spec.js.snap +496 -42
- package/lib/components/CartPage/PriceSummary/__tests__/__snapshots__/giftCardSummary.ce.spec.js.snap +3 -0
- package/lib/components/CartPage/PriceSummary/__tests__/__snapshots__/{giftCardSummary.spec.js.snap → giftCardSummary.ee.spec.js.snap} +4 -4
- package/lib/components/CartPage/PriceSummary/__tests__/__snapshots__/giftOptionsSummary.ce.spec.js.snap +3 -0
- package/lib/components/CartPage/PriceSummary/__tests__/__snapshots__/giftOptionsSummary.ee.spec.js.snap +63 -0
- package/lib/components/CartPage/PriceSummary/__tests__/__snapshots__/priceSummary.spec.js.snap +201 -141
- package/lib/components/CartPage/PriceSummary/__tests__/discountSummary.spec.js +41 -1
- package/lib/components/CartPage/PriceSummary/__tests__/giftCardSummary.ce.spec.js +17 -0
- package/lib/components/CartPage/PriceSummary/__tests__/giftCardSummary.ee.spec.js +84 -0
- package/lib/components/CartPage/PriceSummary/__tests__/giftOptionsSummary.ce.spec.js +17 -0
- package/lib/components/CartPage/PriceSummary/__tests__/giftOptionsSummary.ee.spec.js +69 -0
- package/lib/components/CartPage/PriceSummary/__tests__/priceSummary.spec.js +2 -0
- package/lib/components/CartPage/PriceSummary/discountSummary.js +99 -49
- package/lib/components/CartPage/PriceSummary/discountSummary.module.css +40 -0
- package/lib/components/CartPage/PriceSummary/giftOptionsSummary.ce.js +5 -0
- package/lib/components/CartPage/PriceSummary/giftOptionsSummary.ee.js +40 -0
- package/lib/components/CartPage/PriceSummary/priceSummary.js +95 -53
- package/lib/components/CartPage/PriceSummary/priceSummary.module.css +2 -0
- package/lib/components/CartPage/ProductListing/EditModal/__tests__/__snapshots__/productDetail.spec.js.snap +57 -0
- package/lib/components/CartPage/ProductListing/EditModal/__tests__/__snapshots__/productForm.spec.js.snap +22 -0
- package/lib/components/CartPage/ProductListing/EditModal/__tests__/productDetail.spec.js +42 -3
- package/lib/components/CartPage/ProductListing/EditModal/productDetail.js +13 -10
- package/lib/components/CartPage/ProductListing/EditModal/productForm.js +7 -2
- package/lib/components/CartPage/ProductListing/product.js +1 -0
- package/lib/components/CartPage/ProductListing/productListing.js +1 -1
- package/lib/components/CartPage/cartPage.js +1 -1
- package/lib/components/Checkbox/checkbox.js +6 -1
- package/lib/components/Checkbox/checkbox.module.css +1 -0
- package/lib/components/CheckoutPage/ItemsReview/__tests__/__snapshots__/item.spec.js.snap +2 -2
- package/lib/components/CheckoutPage/ItemsReview/__tests__/__snapshots__/itemsReview.spec.js.snap +33 -0
- package/lib/components/CheckoutPage/ItemsReview/__tests__/item.spec.js +2 -2
- package/lib/components/CheckoutPage/ItemsReview/itemsReview.js +4 -1
- package/lib/components/CheckoutPage/OrderConfirmationPage/__tests__/createAccount.spec.js +4 -0
- package/lib/components/CheckoutPage/OrderConfirmationPage/createAccount.js +9 -1
- package/lib/components/CheckoutPage/OrderConfirmationPage/orderConfirmationPage.js +12 -3
- package/lib/components/CheckoutPage/PaymentInformation/__tests__/__snapshots__/creditCard.spec.js.snap +1 -0
- package/lib/components/CheckoutPage/PaymentInformation/__tests__/creditCard.spec.js +2 -1
- package/lib/components/CheckoutPage/PaymentInformation/brainTreeDropIn.js +2 -18
- package/lib/components/CheckoutPage/PaymentInformation/creditCard.js +13 -3
- package/lib/components/CheckoutPage/PriceAdjustments/__tests__/__snapshots__/priceAdjustments.spec.js.snap +1 -6
- package/lib/components/CheckoutPage/PriceAdjustments/__tests__/priceAdjustments.spec.js +2 -2
- package/lib/components/CheckoutPage/PriceAdjustments/priceAdjustments.js +8 -12
- package/lib/components/CheckoutPage/ShippingInformation/AddressForm/customerForm.js +1 -1
- package/lib/components/CheckoutPage/ShippingInformation/shippingInformation.js +4 -1
- package/lib/components/CheckoutPage/ShippingMethod/shippingMethod.js +5 -2
- package/lib/components/CheckoutPage/__tests__/__snapshots__/checkoutPage.spec.js.snap +3 -3
- package/lib/components/CheckoutPage/__tests__/checkoutPage.spec.js +5 -0
- package/lib/components/CheckoutPage/checkoutPage.js +25 -4
- package/lib/components/CheckoutPage/checkoutPage.module.css +8 -1
- package/lib/components/CmsDynamicBlock/__tests__/__snapshots__/cmsDynamicBlock.ce.spec.js.snap +3 -0
- package/lib/components/CmsDynamicBlock/__tests__/__snapshots__/cmsDynamicBlock.ee.spec.js.snap +61 -0
- package/lib/components/CmsDynamicBlock/__tests__/__snapshots__/dynamicBlock.spec.js.snap +7 -0
- package/lib/components/CmsDynamicBlock/__tests__/cmsDynamicBlock.ce.spec.js +17 -0
- package/lib/components/CmsDynamicBlock/__tests__/cmsDynamicBlock.ee.spec.js +211 -0
- package/lib/components/CmsDynamicBlock/__tests__/constants.spec.js +37 -0
- package/lib/components/CmsDynamicBlock/__tests__/dynamicBlock.spec.js +33 -0
- package/lib/components/CmsDynamicBlock/cmsDynamicBlock.ce.js +5 -0
- package/lib/components/CmsDynamicBlock/cmsDynamicBlock.ee.js +73 -0
- package/lib/components/CmsDynamicBlock/constants.js +6 -0
- package/lib/components/CmsDynamicBlock/dynamicBlock.js +32 -0
- package/lib/components/CmsDynamicBlock/index.js +2 -0
- package/lib/components/CreateAccount/__tests__/createAccount.spec.js +6 -1
- package/lib/components/CreateAccount/createAccount.js +7 -2
- package/lib/components/Field/field.module.css +6 -0
- package/lib/components/FilterSidebar/filterSidebar.js +4 -1
- package/lib/components/Footer/__tests__/__snapshots__/footer.spec.js.snap +8 -2
- package/lib/components/Footer/footer.js +16 -9
- package/lib/components/Footer/footer.module.css +7 -2
- package/lib/components/ForgotPassword/ForgotPasswordForm/__tests__/__snapshots__/forgotPasswordForm.spec.js.snap +109 -1
- package/lib/components/ForgotPassword/ForgotPasswordForm/__tests__/forgotPasswordForm.spec.js +22 -3
- package/lib/components/ForgotPassword/ForgotPasswordForm/forgotPasswordForm.js +13 -3
- package/lib/components/ForgotPassword/ForgotPasswordForm/forgotPasswordForm.module.css +1 -1
- package/lib/components/ForgotPassword/__tests__/__snapshots__/forgotPassword.spec.js.snap +5 -6
- package/lib/components/ForgotPassword/__tests__/forgotPassword.spec.js +41 -28
- package/lib/components/ForgotPassword/forgotPassword.js +10 -3
- package/lib/components/ForgotPassword/forgotPassword.module.css +2 -2
- package/lib/components/Gallery/__tests__/__snapshots__/gallery.spec.js.snap +22 -0
- package/lib/components/Gallery/__tests__/__snapshots__/item.spec.js.snap +17 -0
- package/lib/components/Gallery/addToCartButton.js +2 -0
- package/lib/components/Gallery/gallery.js +6 -1
- package/lib/components/Gallery/item.js +7 -2
- package/lib/components/GoogleReCaptcha/googleReCaptcha.js +49 -0
- package/lib/components/GoogleReCaptcha/googleReCaptcha.module.css +3 -0
- package/lib/components/GoogleReCaptcha/index.js +1 -0
- package/lib/components/Header/currencySwitcher.js +2 -1
- package/lib/components/Header/header.js +1 -1
- package/lib/components/Header/header.module.css +2 -2
- package/lib/components/Header/searchTrigger.js +3 -1
- package/lib/components/Header/storeSwitcher.js +18 -4
- package/lib/components/Header/switcherItem.js +4 -1
- package/lib/components/HomePage/homePage.module.css +12 -0
- package/lib/components/Image/resourceImage.js +8 -1
- package/lib/components/Image/simpleImage.js +8 -1
- package/lib/components/Link/link.js +15 -13
- package/lib/components/LoadingIndicator/spinner.js +5 -7
- package/lib/components/LoadingIndicator/spinner.module.css +4 -17
- package/lib/components/MiniCart/ProductList/__tests__/__snapshots__/item.spec.js.snap +44 -0
- package/lib/components/MiniCart/ProductList/__tests__/item.spec.js +2 -2
- package/lib/components/MiniCart/ProductList/item.js +3 -2
- package/lib/components/MiniCart/miniCart.js +6 -3
- package/lib/components/MyAccount/ResetPassword/__tests__/__snapshots__/resetPassword.spec.js.snap +274 -254
- package/lib/components/MyAccount/ResetPassword/__tests__/resetPassword.spec.js +10 -5
- package/lib/components/MyAccount/ResetPassword/resetPassword.js +55 -55
- package/lib/components/MyAccount/ResetPassword/resetPassword.module.css +27 -79
- package/lib/components/Newsletter/newsletter.js +6 -2
- package/lib/components/OrderHistoryPage/OrderDetails/__tests__/__snapshots__/item.spec.js.snap +11 -0
- package/lib/components/ProductFullDetail/productFullDetail.js +12 -3
- package/lib/components/ProductImageCarousel/__tests__/__snapshots__/carousel.spec.js.snap +61 -0
- package/lib/components/ProductImageCarousel/__tests__/__snapshots__/thumbnail.spec.js.snap +26 -0
- package/lib/components/ProductOptions/__tests__/options.spec.js +1 -1
- package/lib/components/ProductOptions/__tests__/swatch.spec.js +1 -1
- package/lib/components/ProductOptions/__tests__/swatchList.spec.js +1 -1
- package/lib/components/ProductOptions/__tests__/tile.spec.js +1 -1
- package/lib/components/ProductOptions/__tests__/tileList.spec.js +1 -1
- package/lib/components/ProductOptions/option.js +4 -1
- package/lib/components/ProductSort/productSort.js +22 -14
- package/lib/components/Rating/rating.js +1 -1
- package/lib/components/SearchBar/__tests__/__snapshots__/suggestedProduct.spec.js.snap +11 -0
- package/lib/components/SearchBar/autocomplete.js +4 -2
- package/lib/components/SearchBar/suggestedProduct.js +1 -1
- package/lib/components/SearchBar/suggestions.js +1 -1
- package/lib/components/SignIn/__tests__/signIn.spec.js +11 -20
- package/lib/components/SignIn/signIn.js +6 -16
- package/lib/components/TextInput/textInput.module.css +0 -4
- package/lib/components/Wishlist/WishlistDialog/WishlistLineItem/__tests__/__snapshots__/wishlistLineItem.spec.js.snap +5 -1
- package/lib/components/Wishlist/WishlistDialog/WishlistLineItem/wishlistLineItem.js +7 -1
- package/lib/components/Wishlist/WishlistDialog/WishlistLineItem/wishlistLineItem.module.css +7 -0
- package/lib/components/Wishlist/WishlistDialog/__tests__/__snapshots__/wishlistDialog.spec.js.snap +6 -1
- package/lib/components/WishlistPage/__tests__/__snapshots__/wishlist.spec.js.snap +4 -0
- package/lib/components/WishlistPage/__tests__/__snapshots__/wishlistItem.spec.js.snap +22 -0
- package/lib/components/WishlistPage/__tests__/__snapshots__/wishlistPage.spec.js.snap +9 -3
- package/lib/components/WishlistPage/createWishlist.ee.js +3 -1
- package/lib/components/WishlistPage/wishlist.js +1 -1
- package/lib/components/WishlistPage/wishlist.module.css +3 -0
- package/lib/components/WishlistPage/wishlistPage.js +1 -1
- package/package.json +5 -4
- package/lib/components/CartPage/PriceSummary/__tests__/giftCardSummary.spec.js +0 -84
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { FormattedMessage, useIntl } from 'react-intl';
|
|
3
3
|
import Price from '@magento/venia-ui/lib/components/Price';
|
|
4
|
+
import configuredVariant from '@magento/peregrine/lib/util/configuredVariant';
|
|
4
5
|
|
|
5
6
|
import { useStyle } from '../../../../classify';
|
|
6
7
|
import Image from '../../../Image';
|
|
@@ -9,18 +10,12 @@ import defaultClasses from './productDetail.module.css';
|
|
|
9
10
|
const IMAGE_SIZE = 240;
|
|
10
11
|
|
|
11
12
|
const ProductDetail = props => {
|
|
12
|
-
const { item, variantPrice } = props;
|
|
13
|
+
const { item, variantPrice, configurableThumbnailSource } = props;
|
|
13
14
|
const { formatMessage } = useIntl();
|
|
14
15
|
const { prices, product } = item;
|
|
15
16
|
const { price } = prices;
|
|
16
17
|
const { currency, value: unitPrice } = variantPrice || price;
|
|
17
|
-
const {
|
|
18
|
-
name,
|
|
19
|
-
sku,
|
|
20
|
-
small_image: smallImage,
|
|
21
|
-
stock_status: stockStatusValue
|
|
22
|
-
} = product;
|
|
23
|
-
const { url: imageURL } = smallImage;
|
|
18
|
+
const { name, sku, stock_status: stockStatusValue } = product;
|
|
24
19
|
const stockStatusLabels = new Map([
|
|
25
20
|
[
|
|
26
21
|
'IN_STOCK',
|
|
@@ -44,7 +39,10 @@ const ProductDetail = props => {
|
|
|
44
39
|
defaultMessage: 'Unknown'
|
|
45
40
|
});
|
|
46
41
|
const classes = useStyle(defaultClasses, props.classes);
|
|
47
|
-
|
|
42
|
+
const configured_variant = configuredVariant(
|
|
43
|
+
item.configurable_options,
|
|
44
|
+
product
|
|
45
|
+
);
|
|
48
46
|
return (
|
|
49
47
|
<div className={classes.root}>
|
|
50
48
|
<Image
|
|
@@ -54,7 +52,12 @@ const ProductDetail = props => {
|
|
|
54
52
|
root: classes.imageContainer
|
|
55
53
|
}}
|
|
56
54
|
width={IMAGE_SIZE}
|
|
57
|
-
resource={
|
|
55
|
+
resource={
|
|
56
|
+
configurableThumbnailSource === 'itself' &&
|
|
57
|
+
configured_variant
|
|
58
|
+
? configured_variant.small_image.url
|
|
59
|
+
: product.small_image.url
|
|
60
|
+
}
|
|
58
61
|
/>
|
|
59
62
|
<span className={classes.productName}>{name}</span>
|
|
60
63
|
<div className={classes.stockRow}>
|
|
@@ -34,7 +34,8 @@ const ProductForm = props => {
|
|
|
34
34
|
isLoading,
|
|
35
35
|
isSaving,
|
|
36
36
|
isDialogOpen,
|
|
37
|
-
handleClose
|
|
37
|
+
handleClose,
|
|
38
|
+
configurableThumbnailSource
|
|
38
39
|
} = talonProps;
|
|
39
40
|
|
|
40
41
|
const classes = useStyle(defaultClasses, props.classes);
|
|
@@ -90,7 +91,11 @@ const ProductForm = props => {
|
|
|
90
91
|
errors={Array.from(errors.values())}
|
|
91
92
|
scrollOnError={false}
|
|
92
93
|
/>
|
|
93
|
-
<ProductDetail
|
|
94
|
+
<ProductDetail
|
|
95
|
+
item={cartItem}
|
|
96
|
+
variantPrice={variantPrice}
|
|
97
|
+
configurableThumbnailSource={configurableThumbnailSource}
|
|
98
|
+
/>
|
|
94
99
|
<Options
|
|
95
100
|
classes={{
|
|
96
101
|
root: classes.optionRoot
|
|
@@ -59,7 +59,7 @@ const ProductListing = props => {
|
|
|
59
59
|
const productComponents = items.map(product => (
|
|
60
60
|
<Product
|
|
61
61
|
item={product}
|
|
62
|
-
key={product.
|
|
62
|
+
key={product.uid}
|
|
63
63
|
setActiveEditItem={setActiveEditItem}
|
|
64
64
|
setIsCartUpdating={setIsCartUpdating}
|
|
65
65
|
onAddToWishlistSuccess={onAddToWishlistSuccess}
|
|
@@ -93,7 +93,7 @@ const CartPage = props => {
|
|
|
93
93
|
})}
|
|
94
94
|
</StoreTitle>
|
|
95
95
|
<div className={classes.heading_container}>
|
|
96
|
-
<h1 className={classes.heading}>
|
|
96
|
+
<h1 data-cy="CartPage-heading" className={classes.heading}>
|
|
97
97
|
<FormattedMessage
|
|
98
98
|
id={'cartPage.heading'}
|
|
99
99
|
defaultMessage={'Cart'}
|
|
@@ -38,7 +38,12 @@ const Checkbox = props => {
|
|
|
38
38
|
|
|
39
39
|
return (
|
|
40
40
|
<Fragment>
|
|
41
|
-
<label
|
|
41
|
+
<label
|
|
42
|
+
data-cy="Checkbox-label"
|
|
43
|
+
aria-label={ariaLabel}
|
|
44
|
+
className={classes.root}
|
|
45
|
+
htmlFor={id}
|
|
46
|
+
>
|
|
42
47
|
<InformedCheckbox
|
|
43
48
|
{...rest}
|
|
44
49
|
className={classes.input}
|
|
@@ -60,9 +60,9 @@ exports[`Snapshot test when configured to use variant image 1`] = `
|
|
|
60
60
|
options={
|
|
61
61
|
Array [
|
|
62
62
|
Object {
|
|
63
|
-
"
|
|
63
|
+
"configurable_product_option_uid": 22,
|
|
64
|
+
"configurable_product_option_value_uid": "Y29uZmlndXJhYmxlLzIyLzI=",
|
|
64
65
|
"option_label": "Color",
|
|
65
|
-
"value_id": 2,
|
|
66
66
|
"value_label": "red",
|
|
67
67
|
},
|
|
68
68
|
]
|
package/lib/components/CheckoutPage/ItemsReview/__tests__/__snapshots__/itemsReview.spec.js.snap
CHANGED
|
@@ -21,6 +21,11 @@ exports[`Snapshot test 1`] = `
|
|
|
21
21
|
className="undefined undefined"
|
|
22
22
|
loading="eager"
|
|
23
23
|
src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc0JyBoZWlnaHQ9JzUnPjxyZWN0IHdpZHRoPSc0JyBoZWlnaHQ9JzUnIHN0eWxlPSdmaWxsOiBub25lJyAvPjwvc3ZnPg=="
|
|
24
|
+
style={
|
|
25
|
+
Object {
|
|
26
|
+
"--width": "100px",
|
|
27
|
+
}
|
|
28
|
+
}
|
|
24
29
|
width={100}
|
|
25
30
|
/>
|
|
26
31
|
<img
|
|
@@ -40,6 +45,12 @@ https://master-7rqtwti-mfwmkrjfqvbjk.us-4.magentosite.cloud/media/catalog/produc
|
|
|
40
45
|
https://master-7rqtwti-mfwmkrjfqvbjk.us-4.magentosite.cloud/media/catalog/product/cache/d3ba9f7bcd3b0724e976dc5144b29c7d/v/t/vt12-kh_main_2.jpg?auto=webp&format=pjpg&width=1280&height=1600&fit=cover 1280w,
|
|
41
46
|
https://master-7rqtwti-mfwmkrjfqvbjk.us-4.magentosite.cloud/media/catalog/product/cache/d3ba9f7bcd3b0724e976dc5144b29c7d/v/t/vt12-kh_main_2.jpg?auto=webp&format=pjpg&width=1600&height=2000&fit=cover 1600w,
|
|
42
47
|
https://master-7rqtwti-mfwmkrjfqvbjk.us-4.magentosite.cloud/media/catalog/product/cache/d3ba9f7bcd3b0724e976dc5144b29c7d/v/t/vt12-kh_main_2.jpg?auto=webp&format=pjpg&width=2560&height=3200&fit=cover 2560w"
|
|
48
|
+
style={
|
|
49
|
+
Object {
|
|
50
|
+
"--height": "125px",
|
|
51
|
+
"--width": "100px",
|
|
52
|
+
}
|
|
53
|
+
}
|
|
43
54
|
width={100}
|
|
44
55
|
/>
|
|
45
56
|
</div>
|
|
@@ -85,6 +96,11 @@ https://master-7rqtwti-mfwmkrjfqvbjk.us-4.magentosite.cloud/media/catalog/produc
|
|
|
85
96
|
className="undefined undefined"
|
|
86
97
|
loading="eager"
|
|
87
98
|
src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc0JyBoZWlnaHQ9JzUnPjxyZWN0IHdpZHRoPSc0JyBoZWlnaHQ9JzUnIHN0eWxlPSdmaWxsOiBub25lJyAvPjwvc3ZnPg=="
|
|
99
|
+
style={
|
|
100
|
+
Object {
|
|
101
|
+
"--width": "100px",
|
|
102
|
+
}
|
|
103
|
+
}
|
|
88
104
|
width={100}
|
|
89
105
|
/>
|
|
90
106
|
<img
|
|
@@ -104,6 +120,12 @@ https://master-7rqtwti-mfwmkrjfqvbjk.us-4.magentosite.cloud/media/catalog/produc
|
|
|
104
120
|
https://master-7rqtwti-mfwmkrjfqvbjk.us-4.magentosite.cloud/media/catalog/product/cache/d3ba9f7bcd3b0724e976dc5144b29c7d/v/s/vsw02-pe_main_2.jpg?auto=webp&format=pjpg&width=1280&height=1600&fit=cover 1280w,
|
|
105
121
|
https://master-7rqtwti-mfwmkrjfqvbjk.us-4.magentosite.cloud/media/catalog/product/cache/d3ba9f7bcd3b0724e976dc5144b29c7d/v/s/vsw02-pe_main_2.jpg?auto=webp&format=pjpg&width=1600&height=2000&fit=cover 1600w,
|
|
106
122
|
https://master-7rqtwti-mfwmkrjfqvbjk.us-4.magentosite.cloud/media/catalog/product/cache/d3ba9f7bcd3b0724e976dc5144b29c7d/v/s/vsw02-pe_main_2.jpg?auto=webp&format=pjpg&width=2560&height=3200&fit=cover 2560w"
|
|
123
|
+
style={
|
|
124
|
+
Object {
|
|
125
|
+
"--height": "125px",
|
|
126
|
+
"--width": "100px",
|
|
127
|
+
}
|
|
128
|
+
}
|
|
107
129
|
width={100}
|
|
108
130
|
/>
|
|
109
131
|
</div>
|
|
@@ -149,6 +171,11 @@ https://master-7rqtwti-mfwmkrjfqvbjk.us-4.magentosite.cloud/media/catalog/produc
|
|
|
149
171
|
className="undefined undefined"
|
|
150
172
|
loading="eager"
|
|
151
173
|
src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc0JyBoZWlnaHQ9JzUnPjxyZWN0IHdpZHRoPSc0JyBoZWlnaHQ9JzUnIHN0eWxlPSdmaWxsOiBub25lJyAvPjwvc3ZnPg=="
|
|
174
|
+
style={
|
|
175
|
+
Object {
|
|
176
|
+
"--width": "100px",
|
|
177
|
+
}
|
|
178
|
+
}
|
|
152
179
|
width={100}
|
|
153
180
|
/>
|
|
154
181
|
<img
|
|
@@ -168,6 +195,12 @@ https://master-7rqtwti-mfwmkrjfqvbjk.us-4.magentosite.cloud/media/catalog/produc
|
|
|
168
195
|
https://master-7rqtwti-mfwmkrjfqvbjk.us-4.magentosite.cloud/media/catalog/product/cache/d3ba9f7bcd3b0724e976dc5144b29c7d/v/d/vd01-ll_main_2.jpg?auto=webp&format=pjpg&width=1280&height=1600&fit=cover 1280w,
|
|
169
196
|
https://master-7rqtwti-mfwmkrjfqvbjk.us-4.magentosite.cloud/media/catalog/product/cache/d3ba9f7bcd3b0724e976dc5144b29c7d/v/d/vd01-ll_main_2.jpg?auto=webp&format=pjpg&width=1600&height=2000&fit=cover 1600w,
|
|
170
197
|
https://master-7rqtwti-mfwmkrjfqvbjk.us-4.magentosite.cloud/media/catalog/product/cache/d3ba9f7bcd3b0724e976dc5144b29c7d/v/d/vd01-ll_main_2.jpg?auto=webp&format=pjpg&width=2560&height=3200&fit=cover 2560w"
|
|
198
|
+
style={
|
|
199
|
+
Object {
|
|
200
|
+
"--height": "125px",
|
|
201
|
+
"--width": "100px",
|
|
202
|
+
}
|
|
203
|
+
}
|
|
171
204
|
width={100}
|
|
172
205
|
/>
|
|
173
206
|
</div>
|
|
@@ -60,8 +60,8 @@ test('Snapshot test when configured to use variant image', () => {
|
|
|
60
60
|
{
|
|
61
61
|
option_label: 'Color',
|
|
62
62
|
value_label: 'red',
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
configurable_product_option_uid: 22,
|
|
64
|
+
configurable_product_option_value_uid: 'Y29uZmlndXJhYmxlLzIyLzI='
|
|
65
65
|
}
|
|
66
66
|
];
|
|
67
67
|
const tree = createTestInstance(
|
|
@@ -62,7 +62,10 @@ const ItemsReview = props => {
|
|
|
62
62
|
data-cy="ItemsReview-container"
|
|
63
63
|
>
|
|
64
64
|
<div className={classes.items_container}>
|
|
65
|
-
<div
|
|
65
|
+
<div
|
|
66
|
+
data-cy="ItemsReview-totalQuantity"
|
|
67
|
+
className={classes.total_quantity}
|
|
68
|
+
>
|
|
66
69
|
<span className={classes.total_quantity_amount}>
|
|
67
70
|
{totalQuantity}
|
|
68
71
|
</span>
|
|
@@ -19,6 +19,7 @@ import Field from '../../Field';
|
|
|
19
19
|
import FormError from '../../FormError';
|
|
20
20
|
import TextInput from '../../TextInput';
|
|
21
21
|
import Password from '../../Password';
|
|
22
|
+
import GoogleReCaptcha from '../../GoogleReCaptcha';
|
|
22
23
|
|
|
23
24
|
import defaultClasses from './createAccount.module.css';
|
|
24
25
|
|
|
@@ -59,7 +60,13 @@ const CreateAccount = props => {
|
|
|
59
60
|
onSubmit
|
|
60
61
|
});
|
|
61
62
|
|
|
62
|
-
const {
|
|
63
|
+
const {
|
|
64
|
+
errors,
|
|
65
|
+
handleSubmit,
|
|
66
|
+
isDisabled,
|
|
67
|
+
initialValues,
|
|
68
|
+
recaptchaWidgetProps
|
|
69
|
+
} = talonProps;
|
|
63
70
|
|
|
64
71
|
return (
|
|
65
72
|
<div className={classes.root}>
|
|
@@ -152,6 +159,7 @@ const CreateAccount = props => {
|
|
|
152
159
|
})}
|
|
153
160
|
/>
|
|
154
161
|
</div>
|
|
162
|
+
<GoogleReCaptcha {...recaptchaWidgetProps} />
|
|
155
163
|
<div className={classes.actions}>
|
|
156
164
|
<Button
|
|
157
165
|
disabled={isDisabled}
|
|
@@ -91,7 +91,10 @@ const OrderConfirmationPage = props => {
|
|
|
91
91
|
values={{ orderNumber }}
|
|
92
92
|
/>
|
|
93
93
|
</div>
|
|
94
|
-
<div
|
|
94
|
+
<div
|
|
95
|
+
data-cy="OrderConfirmationPage-shippingInfoHeading"
|
|
96
|
+
className={classes.shippingInfoHeading}
|
|
97
|
+
>
|
|
95
98
|
<FormattedMessage
|
|
96
99
|
id={'global.shippingInformation'}
|
|
97
100
|
defaultMessage={'Shipping Information'}
|
|
@@ -105,7 +108,10 @@ const OrderConfirmationPage = props => {
|
|
|
105
108
|
{additionalAddressString}
|
|
106
109
|
</span>
|
|
107
110
|
</div>
|
|
108
|
-
<div
|
|
111
|
+
<div
|
|
112
|
+
data-cy="OrderConfirmationPage-shippingMethodHeading"
|
|
113
|
+
className={classes.shippingMethodHeading}
|
|
114
|
+
>
|
|
109
115
|
<FormattedMessage
|
|
110
116
|
id={'global.shippingMethod'}
|
|
111
117
|
defaultMessage={'Shipping Method'}
|
|
@@ -115,7 +121,10 @@ const OrderConfirmationPage = props => {
|
|
|
115
121
|
<div className={classes.itemsReview}>
|
|
116
122
|
<ItemsReview data={data} />
|
|
117
123
|
</div>
|
|
118
|
-
<div
|
|
124
|
+
<div
|
|
125
|
+
data-cy="OrderConfirmationPage-additionalText"
|
|
126
|
+
className={classes.additionalText}
|
|
127
|
+
>
|
|
119
128
|
<FormattedMessage
|
|
120
129
|
id={'checkoutPage.additionalText'}
|
|
121
130
|
defaultMessage={
|
|
@@ -83,7 +83,8 @@ const useCreditCardReturnValue = {
|
|
|
83
83
|
phoneNumber: 'sample phone number',
|
|
84
84
|
isBillingAddressSame: false
|
|
85
85
|
},
|
|
86
|
-
shippingAddressCountry: 'US'
|
|
86
|
+
shippingAddressCountry: 'US',
|
|
87
|
+
recaptchaWidgetProps: {}
|
|
87
88
|
};
|
|
88
89
|
|
|
89
90
|
test('Should return correct shape', () => {
|
|
@@ -129,8 +129,6 @@ const BraintreeDropin = props => {
|
|
|
129
129
|
* The parent component does this by setting `shouldTeardownDropin` `true`.
|
|
130
130
|
*/
|
|
131
131
|
useEffect(() => {
|
|
132
|
-
let unmounted = false;
|
|
133
|
-
|
|
134
132
|
const teardownAndRenderDropin = async () => {
|
|
135
133
|
try {
|
|
136
134
|
dropinInstance.teardown();
|
|
@@ -138,32 +136,18 @@ const BraintreeDropin = props => {
|
|
|
138
136
|
|
|
139
137
|
const instance = await createDropinInstance();
|
|
140
138
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
onReady(true);
|
|
144
|
-
} else {
|
|
145
|
-
/**
|
|
146
|
-
* Component has been unmounted, tear down the instance.
|
|
147
|
-
*/
|
|
148
|
-
instance.teardown();
|
|
149
|
-
}
|
|
139
|
+
setDropinInstance(instance);
|
|
140
|
+
onReady(true);
|
|
150
141
|
} catch (err) {
|
|
151
142
|
console.error(
|
|
152
143
|
`Unable to tear down and re-initialize Credit Card form (Braintree). \n${err}`
|
|
153
144
|
);
|
|
154
|
-
if (!unmounted) {
|
|
155
|
-
setIsError(true);
|
|
156
|
-
}
|
|
157
145
|
}
|
|
158
146
|
};
|
|
159
147
|
|
|
160
148
|
if (shouldTeardownDropin) {
|
|
161
149
|
teardownAndRenderDropin();
|
|
162
150
|
}
|
|
163
|
-
|
|
164
|
-
return () => {
|
|
165
|
-
unmounted = true;
|
|
166
|
-
};
|
|
167
151
|
}, [
|
|
168
152
|
shouldTeardownDropin,
|
|
169
153
|
dropinInstance,
|
|
@@ -16,6 +16,7 @@ import { useStyle } from '../../../classify';
|
|
|
16
16
|
|
|
17
17
|
import defaultClasses from './creditCard.module.css';
|
|
18
18
|
import FormError from '../../FormError';
|
|
19
|
+
import GoogleReCaptcha from '../../GoogleReCaptcha';
|
|
19
20
|
|
|
20
21
|
const STEP_DESCRIPTIONS = [
|
|
21
22
|
{ defaultMessage: 'Loading Payment', id: 'checkoutPage.step0' },
|
|
@@ -83,7 +84,8 @@ const CreditCard = props => {
|
|
|
83
84
|
initialValues,
|
|
84
85
|
shippingAddressCountry,
|
|
85
86
|
shouldTeardownDropin,
|
|
86
|
-
resetShouldTeardownDropin
|
|
87
|
+
resetShouldTeardownDropin,
|
|
88
|
+
recaptchaWidgetProps
|
|
87
89
|
} = talonProps;
|
|
88
90
|
|
|
89
91
|
const creditCardComponentClassName = isLoading
|
|
@@ -154,6 +156,7 @@ const CreditCard = props => {
|
|
|
154
156
|
<div className={classes.root} data-cy="CreditCard-root">
|
|
155
157
|
<div className={creditCardComponentClassName}>
|
|
156
158
|
<FormError
|
|
159
|
+
allowErrorMessages
|
|
157
160
|
classes={{ root: classes.formErrorContainer }}
|
|
158
161
|
errors={Array.from(errors.values())}
|
|
159
162
|
/>
|
|
@@ -167,7 +170,10 @@ const CreditCard = props => {
|
|
|
167
170
|
resetShouldTeardownDropin={resetShouldTeardownDropin}
|
|
168
171
|
/>
|
|
169
172
|
</div>
|
|
170
|
-
<div
|
|
173
|
+
<div
|
|
174
|
+
data-cy="CreditCard-AddressCheck-root"
|
|
175
|
+
className={classes.address_check}
|
|
176
|
+
>
|
|
171
177
|
<Checkbox
|
|
172
178
|
data-cy="PaymentInformation-billingAddressSame"
|
|
173
179
|
field="isBillingAddressSame"
|
|
@@ -179,7 +185,10 @@ const CreditCard = props => {
|
|
|
179
185
|
initialValue={initialValues.isBillingAddressSame}
|
|
180
186
|
/>
|
|
181
187
|
</div>
|
|
182
|
-
<div
|
|
188
|
+
<div
|
|
189
|
+
data-cy="CreditCard-billingAddressFields"
|
|
190
|
+
className={billingAddressFieldsClassName}
|
|
191
|
+
>
|
|
183
192
|
<Field
|
|
184
193
|
id="firstName"
|
|
185
194
|
classes={fieldClasses.first_name}
|
|
@@ -304,6 +313,7 @@ const CreditCard = props => {
|
|
|
304
313
|
/>
|
|
305
314
|
</Field>
|
|
306
315
|
</div>
|
|
316
|
+
<GoogleReCaptcha {...recaptchaWidgetProps} />
|
|
307
317
|
</div>
|
|
308
318
|
{loadingIndicator}
|
|
309
319
|
</div>
|
|
@@ -18,12 +18,7 @@ exports[`renders price adjustments 1`] = `
|
|
|
18
18
|
<GiftCardSection
|
|
19
19
|
setIsCartUpdating={[MockFunction setPageIsUpdating]}
|
|
20
20
|
/>
|
|
21
|
-
<
|
|
22
|
-
id="gift_options"
|
|
23
|
-
title="See Gift Options"
|
|
24
|
-
>
|
|
25
|
-
<GiftOptions />
|
|
26
|
-
</mock-Section>
|
|
21
|
+
<GiftOptionsSection />
|
|
27
22
|
</mock-Accordion>
|
|
28
23
|
</div>
|
|
29
24
|
`;
|
|
@@ -14,8 +14,8 @@ jest.mock(
|
|
|
14
14
|
() => 'GiftCardSection'
|
|
15
15
|
);
|
|
16
16
|
jest.mock(
|
|
17
|
-
'../../../CartPage/PriceAdjustments/
|
|
18
|
-
() => '
|
|
17
|
+
'../../../CartPage/PriceAdjustments/giftOptionsSection',
|
|
18
|
+
() => 'GiftOptionsSection'
|
|
19
19
|
);
|
|
20
20
|
|
|
21
21
|
test('renders price adjustments', () => {
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { Suspense } from 'react';
|
|
2
2
|
import { useIntl } from 'react-intl';
|
|
3
3
|
import { func } from 'prop-types';
|
|
4
4
|
|
|
5
5
|
import { useStyle } from '../../../classify';
|
|
6
|
+
import LoadingIndicator from '../../LoadingIndicator';
|
|
6
7
|
import { Accordion, Section } from '../../Accordion';
|
|
7
8
|
import CouponCode from '../../CartPage/PriceAdjustments/CouponCode';
|
|
8
9
|
import GiftCardSection from '../../CartPage/PriceAdjustments/giftCardSection';
|
|
9
|
-
import
|
|
10
|
+
import GiftOptionsSection from '../../CartPage/PriceAdjustments/giftOptionsSection';
|
|
10
11
|
|
|
11
12
|
import defaultClasses from './priceAdjustments.module.css';
|
|
12
13
|
|
|
@@ -25,24 +26,19 @@ const PriceAdjustments = props => {
|
|
|
25
26
|
<div className={classes.root}>
|
|
26
27
|
<Accordion canOpenMultiple={true}>
|
|
27
28
|
<Section
|
|
29
|
+
data-cy="PriceAdjustments-couponCodeSection"
|
|
28
30
|
id={'coupon_code'}
|
|
29
31
|
title={formatMessage({
|
|
30
32
|
id: 'checkoutPage.couponCode',
|
|
31
33
|
defaultMessage: 'Enter Coupon Code'
|
|
32
34
|
})}
|
|
33
35
|
>
|
|
34
|
-
<
|
|
36
|
+
<Suspense fallback={<LoadingIndicator />}>
|
|
37
|
+
<CouponCode setIsCartUpdating={setPageIsUpdating} />
|
|
38
|
+
</Suspense>
|
|
35
39
|
</Section>
|
|
36
40
|
<GiftCardSection setIsCartUpdating={setPageIsUpdating} />
|
|
37
|
-
<
|
|
38
|
-
id={'gift_options'}
|
|
39
|
-
title={formatMessage({
|
|
40
|
-
id: 'checkoutPage.giftOptions',
|
|
41
|
-
defaultMessage: 'See Gift Options'
|
|
42
|
-
})}
|
|
43
|
-
>
|
|
44
|
-
<GiftOptions />
|
|
45
|
-
</Section>
|
|
41
|
+
<GiftOptionsSection />
|
|
46
42
|
</Accordion>
|
|
47
43
|
</div>
|
|
48
44
|
);
|
|
@@ -76,7 +76,7 @@ const CustomerForm = props => {
|
|
|
76
76
|
) : null;
|
|
77
77
|
|
|
78
78
|
const formMessageRow = !hasDefaultShipping ? (
|
|
79
|
-
<div className={classes.formMessage}>
|
|
79
|
+
<div data-cy="CustomerForm-formMessage" className={classes.formMessage}>
|
|
80
80
|
<Message>
|
|
81
81
|
<FormattedMessage
|
|
82
82
|
id={'customerForm.formMessage'}
|
|
@@ -93,7 +93,10 @@ const ShippingInformation = props => {
|
|
|
93
93
|
</Fragment>
|
|
94
94
|
) : (
|
|
95
95
|
<Fragment>
|
|
96
|
-
<h3
|
|
96
|
+
<h3
|
|
97
|
+
data-cy="ShippingInformation-editTitle"
|
|
98
|
+
className={classes.editTitle}
|
|
99
|
+
>
|
|
97
100
|
<FormattedMessage
|
|
98
101
|
id={'shippingInformation.editTitle'}
|
|
99
102
|
defaultMessage={'1. Shipping Information'}
|
|
@@ -118,8 +118,11 @@ const ShippingMethod = props => {
|
|
|
118
118
|
}
|
|
119
119
|
|
|
120
120
|
contents = (
|
|
121
|
-
<div className={classes.root}>
|
|
122
|
-
<h3
|
|
121
|
+
<div data-cy="ShippingMethod-root" className={classes.root}>
|
|
122
|
+
<h3
|
|
123
|
+
data-cy="ShippingMethod-heading"
|
|
124
|
+
className={classes.editingHeading}
|
|
125
|
+
>
|
|
123
126
|
<FormattedMessage
|
|
124
127
|
id={'shippingMethod.heading'}
|
|
125
128
|
defaultMessage={'Shipping Method'}
|
|
@@ -253,7 +253,7 @@ exports[`CheckoutPage renders an error and disables review order button if there
|
|
|
253
253
|
</span>
|
|
254
254
|
</button>
|
|
255
255
|
<div
|
|
256
|
-
className="summaryContainer"
|
|
256
|
+
className="summaryContainer signInContainerVisible"
|
|
257
257
|
>
|
|
258
258
|
<OrderSummary
|
|
259
259
|
isUpdating={true}
|
|
@@ -596,7 +596,7 @@ exports[`CheckoutPage renders checkout content for guest on desktop 1`] = `
|
|
|
596
596
|
</h3>
|
|
597
597
|
</div>
|
|
598
598
|
<div
|
|
599
|
-
className="summaryContainer"
|
|
599
|
+
className="summaryContainer signInContainerVisible"
|
|
600
600
|
>
|
|
601
601
|
<OrderSummary
|
|
602
602
|
isUpdating={false}
|
|
@@ -739,7 +739,7 @@ exports[`CheckoutPage renders checkout content for guest on mobile 1`] = `
|
|
|
739
739
|
</h3>
|
|
740
740
|
</div>
|
|
741
741
|
<div
|
|
742
|
-
className="summaryContainer"
|
|
742
|
+
className="summaryContainer signInContainerVisible"
|
|
743
743
|
>
|
|
744
744
|
<OrderSummary
|
|
745
745
|
isUpdating={false}
|
|
@@ -77,6 +77,7 @@ const defaultTalonProps = {
|
|
|
77
77
|
orderDetailsLoading: false,
|
|
78
78
|
orderNumber: null,
|
|
79
79
|
placeOrderLoading: false,
|
|
80
|
+
placeOrderButtonClicked: false,
|
|
80
81
|
setGuestSignInUsername: jest.fn().mockName('setGuestSignInUsername'),
|
|
81
82
|
setIsUpdating: jest.fn().mockName('setIsUpdating'),
|
|
82
83
|
setShippingInformationDone: jest
|
|
@@ -84,6 +85,10 @@ const defaultTalonProps = {
|
|
|
84
85
|
.mockName('setShippingInformationDone'),
|
|
85
86
|
setShippingMethodDone: jest.fn().mockName('setShippingMethodDone'),
|
|
86
87
|
setPaymentInformationDone: jest.fn().mockName('setPaymentInformationDone'),
|
|
88
|
+
recaptchaWidgetProps: {
|
|
89
|
+
containerElement: [Function],
|
|
90
|
+
shouldRender: false
|
|
91
|
+
},
|
|
87
92
|
toggleAddressBookContent: jest.fn().mockName('toggleAddressBookContent'),
|
|
88
93
|
toggleSignInContent: jest.fn().mockName('toggleSignInContent')
|
|
89
94
|
};
|