@magento/venia-ui 9.2.0-alpha.3 → 9.3.0-alpha.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.
Files changed (173) hide show
  1. package/i18n/en_US.json +17 -3
  2. package/lib/RootComponents/CMS/__tests__/__snapshots__/cms.spec.js.snap +19 -0
  3. package/lib/RootComponents/CMS/__tests__/cms.spec.js +4 -9
  4. package/lib/RootComponents/CMS/cms.js +5 -4
  5. package/lib/RootComponents/CMS/cms.shimmer.js +18 -0
  6. package/lib/RootComponents/Category/__tests__/__snapshots__/categoryContent.shimmer.spec.js.snap +12 -0
  7. package/lib/RootComponents/Category/categoryContent.js +4 -1
  8. package/lib/components/AccountChip/accountChip.js +3 -1
  9. package/lib/components/AccountInformationPage/accountInformationPage.js +3 -1
  10. package/lib/components/AccountInformationPage/editModal.js +9 -2
  11. package/lib/components/AccountMenu/accountMenuItems.js +8 -3
  12. package/lib/components/CartPage/GiftCards/giftCards.js +1 -1
  13. package/lib/components/CartPage/PriceAdjustments/CouponCode/couponCode.js +5 -1
  14. package/lib/components/CartPage/PriceAdjustments/GiftOptions/__tests__/__snapshots__/giftOptions.spec.js.snap +1018 -78
  15. package/lib/components/CartPage/PriceAdjustments/GiftOptions/__tests__/giftOptions.spec.js +221 -35
  16. package/lib/components/CartPage/PriceAdjustments/GiftOptions/giftOptions.js +287 -40
  17. package/lib/components/CartPage/PriceAdjustments/GiftOptions/giftOptions.module.css +56 -1
  18. package/lib/components/CartPage/PriceAdjustments/__tests__/__snapshots__/giftCardSection.ee.spec.js.snap +12 -0
  19. package/lib/components/CartPage/PriceAdjustments/__tests__/__snapshots__/giftOptionsSection.ce.spec.js.snap +3 -0
  20. package/lib/components/CartPage/PriceAdjustments/__tests__/__snapshots__/giftOptionsSection.ee.spec.js.snap +16 -0
  21. package/lib/components/CartPage/PriceAdjustments/__tests__/__snapshots__/priceAdjustments.spec.js.snap +1 -32
  22. package/lib/components/CartPage/PriceAdjustments/__tests__/giftCardSection.ce.spec.js +17 -0
  23. package/lib/components/CartPage/PriceAdjustments/__tests__/giftCardSection.ee.spec.js +36 -0
  24. package/lib/components/CartPage/PriceAdjustments/__tests__/giftOptionsSection.ce.spec.js +17 -0
  25. package/lib/components/CartPage/PriceAdjustments/__tests__/giftOptionsSection.ee.spec.js +54 -0
  26. package/lib/components/CartPage/PriceAdjustments/__tests__/priceAdjustments.spec.js +1 -1
  27. package/lib/components/CartPage/PriceAdjustments/{giftCardSection.js → giftCardSection.ce.js} +0 -0
  28. package/lib/components/CartPage/PriceAdjustments/giftOptionsSection.ce.js +7 -0
  29. package/lib/components/CartPage/PriceAdjustments/giftOptionsSection.ee.js +38 -0
  30. package/lib/components/CartPage/PriceAdjustments/priceAdjustments.js +2 -14
  31. package/lib/components/CartPage/PriceSummary/__tests__/__snapshots__/discountSummary.spec.js.snap +496 -42
  32. package/lib/components/CartPage/PriceSummary/__tests__/__snapshots__/giftCardSummary.ce.spec.js.snap +3 -0
  33. package/lib/components/CartPage/PriceSummary/__tests__/__snapshots__/{giftCardSummary.spec.js.snap → giftCardSummary.ee.spec.js.snap} +4 -4
  34. package/lib/components/CartPage/PriceSummary/__tests__/__snapshots__/giftOptionsSummary.ce.spec.js.snap +3 -0
  35. package/lib/components/CartPage/PriceSummary/__tests__/__snapshots__/giftOptionsSummary.ee.spec.js.snap +63 -0
  36. package/lib/components/CartPage/PriceSummary/__tests__/__snapshots__/priceSummary.spec.js.snap +201 -141
  37. package/lib/components/CartPage/PriceSummary/__tests__/discountSummary.spec.js +41 -1
  38. package/lib/components/CartPage/PriceSummary/__tests__/giftCardSummary.ce.spec.js +17 -0
  39. package/lib/components/CartPage/PriceSummary/__tests__/giftCardSummary.ee.spec.js +84 -0
  40. package/lib/components/CartPage/PriceSummary/__tests__/giftOptionsSummary.ce.spec.js +17 -0
  41. package/lib/components/CartPage/PriceSummary/__tests__/giftOptionsSummary.ee.spec.js +69 -0
  42. package/lib/components/CartPage/PriceSummary/__tests__/priceSummary.spec.js +2 -0
  43. package/lib/components/CartPage/PriceSummary/discountSummary.js +99 -49
  44. package/lib/components/CartPage/PriceSummary/discountSummary.module.css +40 -0
  45. package/lib/components/CartPage/PriceSummary/giftOptionsSummary.ce.js +5 -0
  46. package/lib/components/CartPage/PriceSummary/giftOptionsSummary.ee.js +40 -0
  47. package/lib/components/CartPage/PriceSummary/priceSummary.js +95 -53
  48. package/lib/components/CartPage/PriceSummary/priceSummary.module.css +2 -0
  49. package/lib/components/CartPage/ProductListing/EditModal/__tests__/__snapshots__/productDetail.spec.js.snap +57 -0
  50. package/lib/components/CartPage/ProductListing/EditModal/__tests__/__snapshots__/productForm.spec.js.snap +22 -0
  51. package/lib/components/CartPage/ProductListing/EditModal/__tests__/productDetail.spec.js +42 -3
  52. package/lib/components/CartPage/ProductListing/EditModal/productDetail.js +13 -10
  53. package/lib/components/CartPage/ProductListing/EditModal/productForm.js +7 -2
  54. package/lib/components/CartPage/ProductListing/product.js +1 -0
  55. package/lib/components/CartPage/ProductListing/productListing.js +1 -1
  56. package/lib/components/CartPage/cartPage.js +1 -1
  57. package/lib/components/Checkbox/checkbox.js +6 -1
  58. package/lib/components/Checkbox/checkbox.module.css +1 -0
  59. package/lib/components/CheckoutPage/ItemsReview/__tests__/__snapshots__/item.spec.js.snap +2 -2
  60. package/lib/components/CheckoutPage/ItemsReview/__tests__/__snapshots__/itemsReview.spec.js.snap +33 -0
  61. package/lib/components/CheckoutPage/ItemsReview/__tests__/item.spec.js +2 -2
  62. package/lib/components/CheckoutPage/ItemsReview/itemsReview.js +4 -1
  63. package/lib/components/CheckoutPage/OrderConfirmationPage/__tests__/createAccount.spec.js +4 -0
  64. package/lib/components/CheckoutPage/OrderConfirmationPage/createAccount.js +9 -1
  65. package/lib/components/CheckoutPage/OrderConfirmationPage/orderConfirmationPage.js +12 -3
  66. package/lib/components/CheckoutPage/PaymentInformation/__tests__/__snapshots__/creditCard.spec.js.snap +1 -0
  67. package/lib/components/CheckoutPage/PaymentInformation/__tests__/creditCard.spec.js +2 -1
  68. package/lib/components/CheckoutPage/PaymentInformation/brainTreeDropIn.js +2 -18
  69. package/lib/components/CheckoutPage/PaymentInformation/creditCard.js +13 -3
  70. package/lib/components/CheckoutPage/PriceAdjustments/__tests__/__snapshots__/priceAdjustments.spec.js.snap +1 -6
  71. package/lib/components/CheckoutPage/PriceAdjustments/__tests__/priceAdjustments.spec.js +2 -2
  72. package/lib/components/CheckoutPage/PriceAdjustments/priceAdjustments.js +8 -12
  73. package/lib/components/CheckoutPage/ShippingInformation/AddressForm/customerForm.js +1 -1
  74. package/lib/components/CheckoutPage/ShippingInformation/shippingInformation.js +4 -1
  75. package/lib/components/CheckoutPage/ShippingMethod/shippingMethod.js +5 -2
  76. package/lib/components/CheckoutPage/__tests__/__snapshots__/checkoutPage.spec.js.snap +3 -3
  77. package/lib/components/CheckoutPage/__tests__/checkoutPage.spec.js +5 -0
  78. package/lib/components/CheckoutPage/checkoutPage.js +25 -4
  79. package/lib/components/CheckoutPage/checkoutPage.module.css +8 -1
  80. package/lib/components/CmsDynamicBlock/__tests__/__snapshots__/cmsDynamicBlock.ce.spec.js.snap +3 -0
  81. package/lib/components/CmsDynamicBlock/__tests__/__snapshots__/cmsDynamicBlock.ee.spec.js.snap +61 -0
  82. package/lib/components/CmsDynamicBlock/__tests__/__snapshots__/dynamicBlock.spec.js.snap +7 -0
  83. package/lib/components/CmsDynamicBlock/__tests__/cmsDynamicBlock.ce.spec.js +17 -0
  84. package/lib/components/CmsDynamicBlock/__tests__/cmsDynamicBlock.ee.spec.js +211 -0
  85. package/lib/components/CmsDynamicBlock/__tests__/constants.spec.js +37 -0
  86. package/lib/components/CmsDynamicBlock/__tests__/dynamicBlock.spec.js +33 -0
  87. package/lib/components/CmsDynamicBlock/cmsDynamicBlock.ce.js +5 -0
  88. package/lib/components/CmsDynamicBlock/cmsDynamicBlock.ee.js +73 -0
  89. package/lib/components/CmsDynamicBlock/constants.js +6 -0
  90. package/lib/components/CmsDynamicBlock/dynamicBlock.js +32 -0
  91. package/lib/components/CmsDynamicBlock/index.js +2 -0
  92. package/lib/components/CreateAccount/__tests__/createAccount.spec.js +6 -1
  93. package/lib/components/CreateAccount/createAccount.js +7 -2
  94. package/lib/components/Field/field.module.css +6 -0
  95. package/lib/components/FilterSidebar/filterSidebar.js +4 -1
  96. package/lib/components/Footer/__tests__/__snapshots__/footer.spec.js.snap +8 -2
  97. package/lib/components/Footer/footer.js +16 -9
  98. package/lib/components/Footer/footer.module.css +7 -2
  99. package/lib/components/ForgotPassword/ForgotPasswordForm/__tests__/__snapshots__/forgotPasswordForm.spec.js.snap +109 -1
  100. package/lib/components/ForgotPassword/ForgotPasswordForm/__tests__/forgotPasswordForm.spec.js +22 -3
  101. package/lib/components/ForgotPassword/ForgotPasswordForm/forgotPasswordForm.js +13 -3
  102. package/lib/components/ForgotPassword/ForgotPasswordForm/forgotPasswordForm.module.css +1 -1
  103. package/lib/components/ForgotPassword/__tests__/__snapshots__/forgotPassword.spec.js.snap +5 -6
  104. package/lib/components/ForgotPassword/__tests__/forgotPassword.spec.js +41 -28
  105. package/lib/components/ForgotPassword/forgotPassword.js +10 -3
  106. package/lib/components/ForgotPassword/forgotPassword.module.css +2 -2
  107. package/lib/components/Gallery/__tests__/__snapshots__/gallery.spec.js.snap +22 -0
  108. package/lib/components/Gallery/__tests__/__snapshots__/item.spec.js.snap +17 -0
  109. package/lib/components/Gallery/addToCartButton.js +2 -0
  110. package/lib/components/Gallery/gallery.js +6 -1
  111. package/lib/components/Gallery/item.js +7 -2
  112. package/lib/components/GoogleReCaptcha/googleReCaptcha.js +49 -0
  113. package/lib/components/GoogleReCaptcha/googleReCaptcha.module.css +3 -0
  114. package/lib/components/GoogleReCaptcha/index.js +1 -0
  115. package/lib/components/Header/currencySwitcher.js +2 -1
  116. package/lib/components/Header/header.js +1 -1
  117. package/lib/components/Header/header.module.css +2 -2
  118. package/lib/components/Header/searchTrigger.js +3 -1
  119. package/lib/components/Header/storeSwitcher.js +18 -4
  120. package/lib/components/Header/switcherItem.js +4 -1
  121. package/lib/components/HomePage/homePage.module.css +12 -0
  122. package/lib/components/Image/resourceImage.js +8 -1
  123. package/lib/components/Image/simpleImage.js +8 -1
  124. package/lib/components/Link/link.js +15 -13
  125. package/lib/components/LoadingIndicator/spinner.js +5 -7
  126. package/lib/components/LoadingIndicator/spinner.module.css +4 -17
  127. package/lib/components/MiniCart/ProductList/__tests__/__snapshots__/item.spec.js.snap +44 -0
  128. package/lib/components/MiniCart/ProductList/__tests__/__snapshots__/productList.spec.js.snap +1 -1
  129. package/lib/components/MiniCart/ProductList/__tests__/item.spec.js +2 -2
  130. package/lib/components/MiniCart/ProductList/__tests__/productList.spec.js +1 -1
  131. package/lib/components/MiniCart/ProductList/item.js +3 -2
  132. package/lib/components/MiniCart/ProductList/productList.js +1 -1
  133. package/lib/components/MiniCart/miniCart.js +6 -3
  134. package/lib/components/MyAccount/ResetPassword/__tests__/__snapshots__/resetPassword.spec.js.snap +274 -254
  135. package/lib/components/MyAccount/ResetPassword/__tests__/resetPassword.spec.js +10 -5
  136. package/lib/components/MyAccount/ResetPassword/resetPassword.js +55 -55
  137. package/lib/components/MyAccount/ResetPassword/resetPassword.module.css +27 -79
  138. package/lib/components/Newsletter/newsletter.js +6 -2
  139. package/lib/components/OrderHistoryPage/OrderDetails/__tests__/__snapshots__/item.spec.js.snap +11 -0
  140. package/lib/components/ProductFullDetail/CustomAttributes/__tests__/__snapshots__/customAttributes.spec.js.snap +9 -3
  141. package/lib/components/ProductFullDetail/CustomAttributes/__tests__/customAttributes.spec.js +5 -6
  142. package/lib/components/ProductFullDetail/CustomAttributes/customAttributes.js +6 -4
  143. package/lib/components/ProductFullDetail/productFullDetail.js +12 -3
  144. package/lib/components/ProductImageCarousel/__tests__/__snapshots__/carousel.spec.js.snap +61 -0
  145. package/lib/components/ProductImageCarousel/__tests__/__snapshots__/thumbnail.spec.js.snap +26 -0
  146. package/lib/components/ProductOptions/__tests__/options.spec.js +1 -1
  147. package/lib/components/ProductOptions/__tests__/swatch.spec.js +1 -1
  148. package/lib/components/ProductOptions/__tests__/swatchList.spec.js +1 -1
  149. package/lib/components/ProductOptions/__tests__/tile.spec.js +1 -1
  150. package/lib/components/ProductOptions/__tests__/tileList.spec.js +1 -1
  151. package/lib/components/ProductOptions/option.js +4 -1
  152. package/lib/components/ProductSort/productSort.js +22 -14
  153. package/lib/components/Rating/rating.js +1 -1
  154. package/lib/components/SearchBar/__tests__/__snapshots__/suggestedProduct.spec.js.snap +11 -0
  155. package/lib/components/SearchBar/autocomplete.js +5 -2
  156. package/lib/components/SearchBar/suggestedProduct.js +1 -1
  157. package/lib/components/SearchBar/suggestions.js +1 -1
  158. package/lib/components/SignIn/__tests__/signIn.spec.js +11 -20
  159. package/lib/components/SignIn/signIn.js +6 -16
  160. package/lib/components/TextInput/textInput.module.css +0 -4
  161. package/lib/components/Wishlist/WishlistDialog/WishlistLineItem/__tests__/__snapshots__/wishlistLineItem.spec.js.snap +5 -1
  162. package/lib/components/Wishlist/WishlistDialog/WishlistLineItem/wishlistLineItem.js +7 -1
  163. package/lib/components/Wishlist/WishlistDialog/WishlistLineItem/wishlistLineItem.module.css +7 -0
  164. package/lib/components/Wishlist/WishlistDialog/__tests__/__snapshots__/wishlistDialog.spec.js.snap +6 -1
  165. package/lib/components/WishlistPage/__tests__/__snapshots__/wishlist.spec.js.snap +4 -0
  166. package/lib/components/WishlistPage/__tests__/__snapshots__/wishlistItem.spec.js.snap +22 -0
  167. package/lib/components/WishlistPage/__tests__/__snapshots__/wishlistPage.spec.js.snap +9 -3
  168. package/lib/components/WishlistPage/createWishlist.ee.js +3 -1
  169. package/lib/components/WishlistPage/wishlist.js +1 -1
  170. package/lib/components/WishlistPage/wishlist.module.css +3 -0
  171. package/lib/components/WishlistPage/wishlistPage.js +1 -1
  172. package/package.json +5 -4
  173. package/lib/components/CartPage/PriceSummary/__tests__/giftCardSummary.spec.js +0 -84
package/i18n/en_US.json CHANGED
@@ -160,7 +160,7 @@
160
160
  "customerForm.defaultShipping": "Make this my default address",
161
161
  "customerForm.formMessage": "The shipping address you enter will be saved to your address book and set as your default for future purchases.",
162
162
  "customerForm.loading": "Fetching Customer Details...",
163
- "discountSummary.lineItemLabel": "Discounts applied",
163
+ "discountSummary.lineItemLabel": "Applied discounts",
164
164
  "editModal.headerText": "Edit Item",
165
165
  "Email Signup": "Email Signup",
166
166
  "errorView.header": "Oops!",
@@ -211,9 +211,20 @@
211
211
  "giftCards.loading": "Loading Gift Cards...",
212
212
  "giftCardSection.giftCard": "Apply Gift Card",
213
213
  "giftCardSummary.lineItemLabel": "Gift Card(s) applied",
214
+ "giftOptions.addGiftMessage": "Add Message",
215
+ "giftOptions.cancelGiftMessageButton": "Cancel",
214
216
  "giftOptions.cardMessage": "Enter your message here",
217
+ "giftOptions.editGiftMessageButton": "Edit",
218
+ "giftOptions.from": "From",
219
+ "giftOptions.giftMessageFrom": "<strong>From:</strong> {cardFrom}",
220
+ "giftOptions.giftMessageTo": "<strong>To:</strong> {cardTo}",
221
+ "giftOptions.includeGiftMessage": "Optional Message",
215
222
  "giftOptions.includeGiftReceipt": "Include gift receipt",
216
- "giftOptions.includePrintedCard": "Include printed card",
223
+ "giftOptions.includePrintedCard": "Add printed card{price}",
224
+ "giftOptions.message": "Message",
225
+ "giftOptions.saving": "Saving",
226
+ "giftOptions.to": "To",
227
+ "giftOptions.updateGiftMessageButton": "Update Message",
217
228
  "Give Back": "Give Back",
218
229
  "global.addButton": "Add",
219
230
  "global.cancelButton": "Cancel",
@@ -318,6 +329,8 @@
318
329
  "priceAdjustments.giftOptions": "See Gift Options",
319
330
  "priceAdjustments.shippingMethod": "Estimate your Shipping",
320
331
  "priceSummary.checkoutButton": "Proceed to Checkout",
332
+ "priceSummary.discountSummary.hideDiscounts": "Hide individual discounts.",
333
+ "priceSummary.discountSummary.showDiscounts": "Show individual discounts.",
321
334
  "priceSummary.errorText": "Something went wrong. Please refresh and try again.",
322
335
  "priceSummary.estimatedTotal": "Estimated Total",
323
336
  "priceSummary.lineItemLabel": "Subtotal",
@@ -362,12 +375,13 @@
362
375
  "region.label": "State",
363
376
  "Register": "Register",
364
377
  "resetPassword.descriptionText": "Please enter your email address and new password.",
378
+ "resetPassword.header": "Reset Password",
365
379
  "resetPassword.invalidTokenMessage": "Uh oh, something went wrong. Check the link or try again.",
366
380
  "resetPassword.newPasswordText": "New Password",
367
- "resetPassword.pageTitleText": "Reset Password",
368
381
  "resetPassword.savedPasswordText": "Your new password has been saved.",
369
382
  "resetPassword.savePassword": "Save Password",
370
383
  "resetPassword.successMessage": "Your new password has been saved. Please use this password to sign into your Account.",
384
+ "resetPassword.title": "Reset Password",
371
385
  "Returns": "Returns",
372
386
  "savedPaymentsPage.addButtonText": "Add a credit card",
373
387
  "savedPaymentsPage.creditCard.errorRemoving": "Something went wrong deleting this payment method. Please refresh and try again.",
@@ -0,0 +1,19 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`Shimmer is present when loading but no data 1`] = `
4
+ <div
5
+ aria-busy="true"
6
+ aria-live="polite"
7
+ className="root"
8
+ >
9
+ <div
10
+ className="root_rectangle"
11
+ style={
12
+ Object {
13
+ "height": "880px",
14
+ "width": "100%",
15
+ }
16
+ }
17
+ />
18
+ </div>
19
+ `;
@@ -13,11 +13,7 @@ jest.mock('../../../components/Head', () => ({
13
13
  StoreTitle: () => 'Title',
14
14
  Meta: () => 'Meta'
15
15
  }));
16
- jest.mock('../../../components/LoadingIndicator', () => {
17
- return {
18
- fullPageLoadingIndicator: 'LoadingIndicator'
19
- };
20
- });
16
+
21
17
  jest.mock('../../../components/RichContent', () => 'RichContent');
22
18
 
23
19
  jest.mock('@magento/peregrine/lib/context/app', () => {
@@ -50,7 +46,7 @@ const props = {
50
46
  id: 1
51
47
  };
52
48
 
53
- test('fullPageLoadingIndicator is present when loading but no data', () => {
49
+ test('Shimmer is present when loading but no data', () => {
54
50
  useQuery.mockImplementation(() => {
55
51
  return {
56
52
  data: false,
@@ -59,9 +55,8 @@ test('fullPageLoadingIndicator is present when loading but no data', () => {
59
55
  };
60
56
  });
61
57
 
62
- const { root } = createTestInstance(<CMSPage {...props} />);
63
- expect(root.children.length).toEqual(1);
64
- expect(root.children[0]).toEqual('LoadingIndicator');
58
+ const instance = createTestInstance(<CMSPage {...props} />);
59
+ expect(instance.toJSON()).toMatchSnapshot();
65
60
  });
66
61
 
67
62
  test('page is set to loading when checking the network for updates', () => {
@@ -1,7 +1,7 @@
1
1
  import React, { Fragment } from 'react';
2
2
  import { shape, string } from 'prop-types';
3
3
 
4
- import { fullPageLoadingIndicator } from '../../components/LoadingIndicator';
4
+ import CMSPageShimmer from './cms.shimmer';
5
5
  import { useCmsPage } from '@magento/peregrine/lib/talons/Cms/useCmsPage';
6
6
  import RichContent from '../../components/RichContent';
7
7
  import { Meta, StoreTitle } from '../../components/Head';
@@ -18,7 +18,7 @@ const CMSPage = props => {
18
18
  const classes = useStyle(defaultClasses, props.classes);
19
19
 
20
20
  if (shouldShowLoadingIndicator) {
21
- return fullPageLoadingIndicator;
21
+ return <CMSPageShimmer classes={classes} />;
22
22
  }
23
23
 
24
24
  const {
@@ -32,14 +32,15 @@ const CMSPage = props => {
32
32
 
33
33
  const headingElement =
34
34
  content_heading !== '' ? (
35
- <h1 className={classes.heading}>{content_heading}</h1>
35
+ <h1 data-cy="Cms-contentHeading" className={classes.heading}>
36
+ {content_heading}
37
+ </h1>
36
38
  ) : null;
37
39
 
38
40
  const pageTitle = meta_title || title;
39
41
  const rootClassName = page_layout
40
42
  ? classes[`root_${toCamelCase(page_layout)}`]
41
43
  : classes.root;
42
-
43
44
  return (
44
45
  <Fragment>
45
46
  <StoreTitle>{pageTitle}</StoreTitle>
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+
3
+ import Shimmer from '@magento/venia-ui/lib/components/Shimmer/shimmer.js';
4
+ import { useStyle } from '../../classify';
5
+
6
+ import defaultClasses from './cms.module.css';
7
+
8
+ const CMSPageShimmer = props => {
9
+ const classes = useStyle(defaultClasses, props.classes);
10
+
11
+ return (
12
+ <div className={classes.root} aria-live="polite" aria-busy="true">
13
+ <Shimmer width="100%" height="880px" key="banner" />
14
+ </div>
15
+ );
16
+ };
17
+
18
+ export default CMSPageShimmer;
@@ -143,6 +143,7 @@ Array [
143
143
  className="image placeholder"
144
144
  loading="eager"
145
145
  src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc0JyBoZWlnaHQ9JzUnPjxyZWN0IHdpZHRoPSc0JyBoZWlnaHQ9JzUnIHN0eWxlPSdmaWxsOiBub25lJyAvPjwvc3ZnPg=="
146
+ style={Object {}}
146
147
  />
147
148
  <img
148
149
  alt="Placeholder for gallery item image"
@@ -151,6 +152,7 @@ Array [
151
152
  onError={[Function]}
152
153
  onLoad={[Function]}
153
154
  src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc0JyBoZWlnaHQ9JzUnPjxyZWN0IHdpZHRoPSc0JyBoZWlnaHQ9JzUnIHN0eWxlPSdmaWxsOiBub25lJyAvPjwvc3ZnPg=="
155
+ style={Object {}}
154
156
  />
155
157
  </div>
156
158
  </div>
@@ -192,6 +194,7 @@ Array [
192
194
  className="image placeholder"
193
195
  loading="eager"
194
196
  src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc0JyBoZWlnaHQ9JzUnPjxyZWN0IHdpZHRoPSc0JyBoZWlnaHQ9JzUnIHN0eWxlPSdmaWxsOiBub25lJyAvPjwvc3ZnPg=="
197
+ style={Object {}}
195
198
  />
196
199
  <img
197
200
  alt="Placeholder for gallery item image"
@@ -200,6 +203,7 @@ Array [
200
203
  onError={[Function]}
201
204
  onLoad={[Function]}
202
205
  src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc0JyBoZWlnaHQ9JzUnPjxyZWN0IHdpZHRoPSc0JyBoZWlnaHQ9JzUnIHN0eWxlPSdmaWxsOiBub25lJyAvPjwvc3ZnPg=="
206
+ style={Object {}}
203
207
  />
204
208
  </div>
205
209
  </div>
@@ -241,6 +245,7 @@ Array [
241
245
  className="image placeholder"
242
246
  loading="eager"
243
247
  src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc0JyBoZWlnaHQ9JzUnPjxyZWN0IHdpZHRoPSc0JyBoZWlnaHQ9JzUnIHN0eWxlPSdmaWxsOiBub25lJyAvPjwvc3ZnPg=="
248
+ style={Object {}}
244
249
  />
245
250
  <img
246
251
  alt="Placeholder for gallery item image"
@@ -249,6 +254,7 @@ Array [
249
254
  onError={[Function]}
250
255
  onLoad={[Function]}
251
256
  src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc0JyBoZWlnaHQ9JzUnPjxyZWN0IHdpZHRoPSc0JyBoZWlnaHQ9JzUnIHN0eWxlPSdmaWxsOiBub25lJyAvPjwvc3ZnPg=="
257
+ style={Object {}}
252
258
  />
253
259
  </div>
254
260
  </div>
@@ -290,6 +296,7 @@ Array [
290
296
  className="image placeholder"
291
297
  loading="eager"
292
298
  src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc0JyBoZWlnaHQ9JzUnPjxyZWN0IHdpZHRoPSc0JyBoZWlnaHQ9JzUnIHN0eWxlPSdmaWxsOiBub25lJyAvPjwvc3ZnPg=="
299
+ style={Object {}}
293
300
  />
294
301
  <img
295
302
  alt="Placeholder for gallery item image"
@@ -298,6 +305,7 @@ Array [
298
305
  onError={[Function]}
299
306
  onLoad={[Function]}
300
307
  src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc0JyBoZWlnaHQ9JzUnPjxyZWN0IHdpZHRoPSc0JyBoZWlnaHQ9JzUnIHN0eWxlPSdmaWxsOiBub25lJyAvPjwvc3ZnPg=="
308
+ style={Object {}}
301
309
  />
302
310
  </div>
303
311
  </div>
@@ -339,6 +347,7 @@ Array [
339
347
  className="image placeholder"
340
348
  loading="eager"
341
349
  src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc0JyBoZWlnaHQ9JzUnPjxyZWN0IHdpZHRoPSc0JyBoZWlnaHQ9JzUnIHN0eWxlPSdmaWxsOiBub25lJyAvPjwvc3ZnPg=="
350
+ style={Object {}}
342
351
  />
343
352
  <img
344
353
  alt="Placeholder for gallery item image"
@@ -347,6 +356,7 @@ Array [
347
356
  onError={[Function]}
348
357
  onLoad={[Function]}
349
358
  src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc0JyBoZWlnaHQ9JzUnPjxyZWN0IHdpZHRoPSc0JyBoZWlnaHQ9JzUnIHN0eWxlPSdmaWxsOiBub25lJyAvPjwvc3ZnPg=="
359
+ style={Object {}}
350
360
  />
351
361
  </div>
352
362
  </div>
@@ -388,6 +398,7 @@ Array [
388
398
  className="image placeholder"
389
399
  loading="eager"
390
400
  src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc0JyBoZWlnaHQ9JzUnPjxyZWN0IHdpZHRoPSc0JyBoZWlnaHQ9JzUnIHN0eWxlPSdmaWxsOiBub25lJyAvPjwvc3ZnPg=="
401
+ style={Object {}}
391
402
  />
392
403
  <img
393
404
  alt="Placeholder for gallery item image"
@@ -396,6 +407,7 @@ Array [
396
407
  onError={[Function]}
397
408
  onLoad={[Function]}
398
409
  src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc0JyBoZWlnaHQ9JzUnPjxyZWN0IHdpZHRoPSc0JyBoZWlnaHQ9JzUnIHN0eWxlPSdmaWxsOiBub25lJyAvPjwvc3ZnPg=="
410
+ style={Object {}}
399
411
  />
400
412
  </div>
401
413
  </div>
@@ -173,7 +173,10 @@ const CategoryContent = props => {
173
173
  </div>
174
174
  <div className={classes.categoryContent}>
175
175
  <div className={classes.heading}>
176
- <div className={classes.categoryInfo}>
176
+ <div
177
+ data-cy="CategoryContent-categoryInfo"
178
+ className={classes.categoryInfo}
179
+ >
177
180
  {categoryResultsHeading}
178
181
  </div>
179
182
  <div className={classes.headerButtons}>
@@ -54,7 +54,9 @@ const AccountChip = props => {
54
54
  return (
55
55
  <span className={classes.root}>
56
56
  <Icon src={AccountIcon} />
57
- <span className={classes.text}>{chipText}</span>
57
+ <span data-cy="AccountChip-text" className={classes.text}>
58
+ {chipText}
59
+ </span>
58
60
  </span>
59
61
  );
60
62
  };
@@ -30,7 +30,8 @@ const AccountInformationPage = props => {
30
30
  isUpdateMode,
31
31
  loadDataError,
32
32
  shouldShowNewPassword,
33
- showUpdateMode
33
+ showUpdateMode,
34
+ recaptchaWidgetProps
34
35
  } = talonProps;
35
36
  const { formatMessage } = useIntl();
36
37
 
@@ -110,6 +111,7 @@ const AccountInformationPage = props => {
110
111
  onChangePassword={handleChangePassword}
111
112
  onSubmit={handleSubmit}
112
113
  shouldShowNewPassword={shouldShowNewPassword}
114
+ recaptchaWidgetProps={recaptchaWidgetProps}
113
115
  />
114
116
  </Suspense>
115
117
  </Fragment>
@@ -6,6 +6,7 @@ import { useStyle } from '../../classify';
6
6
  import EditForm from './editForm';
7
7
  import FormError from '../FormError';
8
8
  import Dialog from '../Dialog';
9
+ import GoogleReCaptcha from '../GoogleReCaptcha';
9
10
  import defaultClasses from './editModal.module.css';
10
11
 
11
12
  const EditModal = props => {
@@ -18,7 +19,8 @@ const EditModal = props => {
18
19
  initialValues,
19
20
  isDisabled,
20
21
  isOpen,
21
- shouldShowNewPassword
22
+ shouldShowNewPassword,
23
+ recaptchaWidgetProps
22
24
  } = props;
23
25
  const { formatMessage } = useIntl();
24
26
 
@@ -50,6 +52,7 @@ const EditModal = props => {
50
52
  handleChangePassword={onChangePassword}
51
53
  shouldShowNewPassword={shouldShowNewPassword}
52
54
  />
55
+ <GoogleReCaptcha {...recaptchaWidgetProps} />
53
56
  </Dialog>
54
57
  );
55
58
  };
@@ -65,5 +68,9 @@ EditModal.propTypes = {
65
68
  handleSubmit: func,
66
69
  initialValues: object,
67
70
  isDisabled: bool,
68
- isOpen: bool
71
+ isOpen: bool,
72
+ recaptchaWidgetProps: shape({
73
+ containerElement: func,
74
+ shouldRender: bool
75
+ })
69
76
  };
@@ -18,20 +18,25 @@ const AccountMenuItems = props => {
18
18
 
19
19
  const menu = menuItems.map(item => {
20
20
  return (
21
- <Link className={classes.link} key={item.name} to={item.url}>
21
+ <Link
22
+ data-cy="AccountMenuItems-link"
23
+ className={classes.link}
24
+ key={item.name}
25
+ to={item.url}
26
+ >
22
27
  <FormattedMessage id={item.id} defaultMessage={item.name} />
23
28
  </Link>
24
29
  );
25
30
  });
26
31
 
27
32
  return (
28
- <div className={classes.root} data-cy="accountMenuItems-root">
33
+ <div className={classes.root} data-cy="AccountMenuItems-root">
29
34
  {menu}
30
35
  <button
31
36
  className={classes.signOut}
32
37
  onClick={handleSignOut}
33
38
  type="button"
34
- data-cy="accountMenuItems-signOut"
39
+ data-cy="AccountMenuItems-signOut"
35
40
  >
36
41
  <FormattedMessage
37
42
  id={'accountMenu.signOutButtonText'}
@@ -221,7 +221,7 @@ const GiftCards = props => {
221
221
 
222
222
  export default props => {
223
223
  return (
224
- <Form>
224
+ <Form data-cy="GiftCards-form">
225
225
  <GiftCards {...props} />
226
226
  </Form>
227
227
  );
@@ -123,7 +123,11 @@ const CouponCode = props => {
123
123
  : classes.entryForm;
124
124
 
125
125
  return (
126
- <Form className={formClass} onSubmit={handleApplyCoupon}>
126
+ <Form
127
+ data-cy="CouponCode-form"
128
+ className={formClass}
129
+ onSubmit={handleApplyCoupon}
130
+ >
127
131
  <Field
128
132
  id="couponCode"
129
133
  label={formatMessage({