@riosst100/pwa-marketplace 1.8.9 → 1.9.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 +9 -9
- package/package.json +1 -1
- package/src/componentOverrideMapping.js +15 -1
- package/src/components/AccountLayout/accountlayout.module.css +3 -0
- package/src/components/AccountLayout/index.js +147 -0
- package/src/components/BecomeSeller/becomeSeller.js +304 -178
- package/src/components/BecomeSeller/becomeSeller.module.css +3 -3
- package/src/components/BecomeSellerPage/becomeSellerPage.js +2 -1
- package/src/components/BecomeSellerPage/becomeSellerPage.module.css +2 -10
- package/src/components/LegoSets/legoSets.js +1 -2
- package/src/components/LiveChat/chatContent.js +39 -0
- package/src/components/LiveChat/index.js +52 -0
- package/src/components/LiveChat/liveChat.js +160 -0
- package/src/components/SellerCountry/sellerCountry.js +1 -1
- package/src/components/SellerDetail/sellerDetail.js +34 -3
- package/src/components/ShopBy/shopBy.js +92 -4
- package/src/components/ShopBy/shopBy.module.css +22 -0
- package/src/components/ShopByVehicles/shopByVehicles.js +1 -2
- package/src/components/ShopByVehicles/shopByVehicles.module.css +76 -0
- package/src/components/SocialLogin/img/facebook.svg +3 -0
- package/src/components/SocialLogin/img/google.svg +6 -0
- package/src/components/SocialLogin/img/instagram.svg +27 -0
- package/src/components/SocialLogin/img/wechat.svg +15 -0
- package/src/components/SocialLogin/img/weibo.svg +7 -0
- package/src/components/SocialLogin/index.js +10 -0
- package/src/components/SocialLogin/socialLogin.js +70 -0
- package/src/components/TrainsSets/index.js +2 -0
- package/src/components/TrainsSets/trainsSets.js +331 -0
- package/src/components/TrainsSets/trainsSets.module.css +76 -0
- package/src/components/TrainsSets/trainsSets.shimmer.js +49 -0
- package/src/overwrites/venia-ui/lib/RootComponents/Category/category.js +5 -0
- package/src/overwrites/venia-ui/lib/components/AccountInformationPage/accountInformationPage.gql.js +48 -0
- package/src/overwrites/venia-ui/lib/components/AccountInformationPage/accountInformationPage.js +147 -0
- package/src/overwrites/venia-ui/lib/components/AccountInformationPage/accountInformationPage.module.css +52 -0
- package/src/overwrites/venia-ui/lib/components/AccountInformationPage/accountInformationPageFragment.gql.js +10 -0
- package/src/overwrites/venia-ui/lib/components/AccountInformationPage/editForm.js +206 -0
- package/src/overwrites/venia-ui/lib/components/AccountInformationPage/editForm.module.css +40 -0
- package/src/overwrites/venia-ui/lib/components/AccountInformationPage/editModal.js +107 -0
- package/src/overwrites/venia-ui/lib/components/AccountInformationPage/editModal.module.css +3 -0
- package/src/overwrites/venia-ui/lib/components/AccountInformationPage/index.js +14 -0
- package/src/overwrites/venia-ui/lib/components/AccountMenu/accountMenu.js +107 -0
- package/src/overwrites/venia-ui/lib/components/AccountMenu/accountMenu.module.css +73 -0
- package/src/overwrites/venia-ui/lib/components/AccountMenu/accountMenuItems.js +58 -0
- package/src/overwrites/venia-ui/lib/components/AccountMenu/accountMenuItems.module.css +31 -0
- package/src/overwrites/venia-ui/lib/components/AccountMenu/index.js +1 -0
- package/src/overwrites/venia-ui/lib/components/Button/button.js +1 -1
- package/src/overwrites/venia-ui/lib/components/CartPage/GiftCards/giftCard.js +50 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/GiftCards/giftCard.module.css +11 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/GiftCards/giftCards.js +238 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/GiftCards/giftCards.module.css +98 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/GiftCards/index.js +1 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/PriceAdjustments/CouponCode/couponCode.js +178 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/PriceAdjustments/CouponCode/couponCode.module.css +52 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/PriceAdjustments/CouponCode/index.js +1 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/PriceAdjustments/GiftOptions/giftOptions.js +321 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/PriceAdjustments/GiftOptions/giftOptions.module.css +61 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/PriceAdjustments/GiftOptions/index.js +1 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/PriceAdjustments/ShippingMethods/index.js +1 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/PriceAdjustments/ShippingMethods/shippingForm.js +103 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/PriceAdjustments/ShippingMethods/shippingForm.module.css +36 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/PriceAdjustments/ShippingMethods/shippingMethods.js +103 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/PriceAdjustments/ShippingMethods/shippingMethods.module.css +33 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/PriceAdjustments/ShippingMethods/shippingRadio.js +37 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/PriceAdjustments/ShippingMethods/shippingRadio.module.css +3 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/PriceAdjustments/ShippingMethods/shippingRadios.js +106 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/PriceAdjustments/ShippingMethods/shippingRadios.module.css +10 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/PriceAdjustments/giftCardSection.ce.js +7 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/PriceAdjustments/giftCardSection.ee.js +28 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/PriceAdjustments/giftOptionsSection.ce.js +7 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/PriceAdjustments/giftOptionsSection.ee.js +38 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/PriceAdjustments/index.js +1 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/PriceAdjustments/priceAdjustments.js +95 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/PriceAdjustments/priceAdjustments.module.css +2 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/PriceSummary/discountSummary.js +123 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/PriceSummary/discountSummary.module.css +40 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/PriceSummary/giftCardSummary.ce.js +1 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/PriceSummary/giftCardSummary.ee.js +60 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/PriceSummary/giftOptionsSummary.ce.js +5 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/PriceSummary/giftOptionsSummary.ee.js +40 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/PriceSummary/index.js +1 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/PriceSummary/priceSummary.js +210 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/PriceSummary/priceSummary.module.css +51 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/PriceSummary/shippingSummary.js +58 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/PriceSummary/taxSummary.js +57 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/ProductListing/EditModal/editModal.js +41 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/ProductListing/EditModal/index.js +1 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/ProductListing/EditModal/productDetail.js +80 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/ProductListing/EditModal/productDetail.module.css +33 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/ProductListing/EditModal/productForm.js +153 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/ProductListing/EditModal/productForm.module.css +52 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/ProductListing/errorMessage.js +31 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/ProductListing/errorMessage.module.css +13 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/ProductListing/index.js +1 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/ProductListing/product.js +271 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/ProductListing/product.module.css +156 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/ProductListing/productListing.js +94 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/ProductListing/productListing.module.css +11 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/ProductListing/quantity.js +40 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/cartPage.js +126 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/cartPage.module.css +64 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/index.js +1 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/AddressBook/addressBook.js +190 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/AddressBook/addressBook.module.css +78 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/AddressBook/addressCard.js +125 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/AddressBook/addressCard.module.css +94 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/AddressBook/index.js +1 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/BillingAddress/billingAddress.js +213 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/BillingAddress/billingAddress.module.css +36 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/BillingAddress/index.js +1 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/GuestSignIn/guestSignIn.js +93 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/GuestSignIn/guestSignIn.module.css +55 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/GuestSignIn/index.js +1 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/ItemsReview/__fixtures__/cartItems.js +102 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/ItemsReview/index.js +1 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/ItemsReview/item.js +54 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/ItemsReview/item.module.css +60 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/ItemsReview/itemsReview.js +84 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/ItemsReview/itemsReview.module.css +20 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/ItemsReview/showAllButton.js +38 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/ItemsReview/showAllButton.module.css +28 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/OrderConfirmationPage/createAccount.js +213 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/OrderConfirmationPage/createAccount.module.css +24 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/OrderConfirmationPage/index.js +1 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/OrderConfirmationPage/orderConfirmationPage.js +162 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/OrderConfirmationPage/orderConfirmationPage.module.css +70 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/OrderSummary/index.js +1 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/OrderSummary/orderSummary.js +34 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/OrderSummary/orderSummary.module.css +17 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/PaymentInformation/brainTreeDropIn.js +196 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/PaymentInformation/braintreeDropin.module.css +26 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/PaymentInformation/braintreeSummary.js +160 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/PaymentInformation/braintreeSummary.module.css +62 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/PaymentInformation/creditCard.js +348 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/PaymentInformation/creditCard.module.css +58 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/PaymentInformation/editCard.js +44 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/PaymentInformation/editCard.module.css +5 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/PaymentInformation/editModal.js +88 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/PaymentInformation/editablePaymentCollection.js +23 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/PaymentInformation/index.js +1 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/PaymentInformation/paymentInformation.js +99 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/PaymentInformation/paymentInformation.module.css +23 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/PaymentInformation/paymentMethodCollection.js +23 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/PaymentInformation/paymentMethods.js +121 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/PaymentInformation/paymentMethods.module.css +34 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/PaymentInformation/summary.js +71 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/PaymentInformation/summary.module.css +23 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/PaymentInformation/summaryPaymentCollection.js +23 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/PriceAdjustments/index.js +1 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/PriceAdjustments/priceAdjustments.js +63 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/PriceAdjustments/priceAdjustments.module.css +2 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/ShippingInformation/AddressForm/addressForm.js +18 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/ShippingInformation/AddressForm/customerForm.js +401 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/ShippingInformation/AddressForm/customerForm.module.css +58 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/ShippingInformation/AddressForm/guestForm.js +455 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/ShippingInformation/AddressForm/guestForm.module.css +52 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/ShippingInformation/AddressForm/index.js +3 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/ShippingInformation/card.js +66 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/ShippingInformation/card.module.css +12 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/ShippingInformation/editModal.js +65 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/ShippingInformation/editModal.module.css +90 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/ShippingInformation/index.js +1 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/ShippingInformation/shippingInformation.js +149 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/ShippingInformation/shippingInformation.module.css +88 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/ShippingMethod/completedView.js +114 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/ShippingMethod/completedView.module.css +48 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/ShippingMethod/index.js +1 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/ShippingMethod/shippingMethod.js +154 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/ShippingMethod/shippingMethod.module.css +27 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/ShippingMethod/shippingRadios.js +80 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/ShippingMethod/shippingRadios.module.css +22 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/ShippingMethod/updateModal.js +85 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/ShippingMethod/updateModal.module.css +3 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/checkoutPage.js +472 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/checkoutPage.module.css +186 -0
- package/src/overwrites/venia-ui/lib/components/CheckoutPage/index.js +1 -0
- package/src/overwrites/venia-ui/lib/components/CreateAccount/createAccount.js +323 -0
- package/src/overwrites/venia-ui/lib/components/CreateAccount/createAccount.module.css +52 -0
- package/src/overwrites/venia-ui/lib/components/CreateAccount/index.js +1 -0
- package/src/overwrites/venia-ui/lib/components/CreateAccountPage/createAccountPage.js +48 -0
- package/src/overwrites/venia-ui/lib/components/CreateAccountPage/createAccountPage.module.css +21 -0
- package/src/overwrites/venia-ui/lib/components/CreateAccountPage/index.js +1 -0
- package/src/overwrites/venia-ui/lib/components/Dialog/dialog.js +198 -0
- package/src/overwrites/venia-ui/lib/components/Dialog/dialog.module.css +189 -0
- package/src/overwrites/venia-ui/lib/components/Dialog/index.js +1 -0
- package/src/overwrites/venia-ui/lib/components/FilterSidebar/filterSidebar.js +8 -7
- package/src/overwrites/venia-ui/lib/components/Gallery/item.js +12 -4
- package/src/overwrites/venia-ui/lib/components/Gallery/item.module.css +2 -2
- package/src/overwrites/venia-ui/lib/components/Header/header.js +37 -2
- package/src/overwrites/venia-ui/lib/components/Main/main.js +1 -1
- package/src/overwrites/venia-ui/lib/components/MegaMenu/shopByColumn.js +3 -2
- package/src/overwrites/venia-ui/lib/components/MegaMenu/submenu.js +1 -1
- package/src/overwrites/venia-ui/lib/components/MyAccount/ResetPassword/index.js +1 -0
- package/src/overwrites/venia-ui/lib/components/MyAccount/ResetPassword/resetPassword.gql.js +22 -0
- package/src/overwrites/venia-ui/lib/components/MyAccount/ResetPassword/resetPassword.js +143 -0
- package/src/overwrites/venia-ui/lib/components/MyAccount/ResetPassword/resetPassword.module.css +53 -0
- package/src/overwrites/venia-ui/lib/components/MyAccount/accountLink.js +42 -0
- package/src/overwrites/venia-ui/lib/components/MyAccount/accountLink.module.css +33 -0
- package/src/overwrites/venia-ui/lib/components/MyAccount/index.js +1 -0
- package/src/overwrites/venia-ui/lib/components/MyAccount/myAccount.js +38 -0
- package/src/overwrites/venia-ui/lib/components/MyAccount/myAccount.module.css +5 -0
- package/src/overwrites/venia-ui/lib/components/OrderHistoryPage/OrderDetails/billingInformation.js +71 -0
- package/src/overwrites/venia-ui/lib/components/OrderHistoryPage/OrderDetails/billingInformation.module.css +9 -0
- package/src/overwrites/venia-ui/lib/components/OrderHistoryPage/OrderDetails/index.js +1 -0
- package/src/overwrites/venia-ui/lib/components/OrderHistoryPage/OrderDetails/item.js +121 -0
- package/src/overwrites/venia-ui/lib/components/OrderHistoryPage/OrderDetails/item.module.css +35 -0
- package/src/overwrites/venia-ui/lib/components/OrderHistoryPage/OrderDetails/items.js +70 -0
- package/src/overwrites/venia-ui/lib/components/OrderHistoryPage/OrderDetails/items.module.css +16 -0
- package/src/overwrites/venia-ui/lib/components/OrderHistoryPage/OrderDetails/orderDetails.js +207 -0
- package/src/overwrites/venia-ui/lib/components/OrderHistoryPage/OrderDetails/orderDetails.module.css +102 -0
- package/src/overwrites/venia-ui/lib/components/OrderHistoryPage/OrderDetails/orderTotal.js +159 -0
- package/src/overwrites/venia-ui/lib/components/OrderHistoryPage/OrderDetails/orderTotal.module.css +50 -0
- package/src/overwrites/venia-ui/lib/components/OrderHistoryPage/OrderDetails/paymentMethod.js +45 -0
- package/src/overwrites/venia-ui/lib/components/OrderHistoryPage/OrderDetails/paymentMethod.module.css +14 -0
- package/src/overwrites/venia-ui/lib/components/OrderHistoryPage/OrderDetails/shippingInformation.js +90 -0
- package/src/overwrites/venia-ui/lib/components/OrderHistoryPage/OrderDetails/shippingInformation.module.css +9 -0
- package/src/overwrites/venia-ui/lib/components/OrderHistoryPage/OrderDetails/shippingMethod.js +86 -0
- package/src/overwrites/venia-ui/lib/components/OrderHistoryPage/OrderDetails/shippingMethod.module.css +19 -0
- package/src/overwrites/venia-ui/lib/components/OrderHistoryPage/collapsedImageGallery.js +63 -0
- package/src/overwrites/venia-ui/lib/components/OrderHistoryPage/collapsedImageGallery.module.css +16 -0
- package/src/overwrites/venia-ui/lib/components/OrderHistoryPage/index.js +15 -0
- package/src/overwrites/venia-ui/lib/components/OrderHistoryPage/orderHistoryPage.js +227 -0
- package/src/overwrites/venia-ui/lib/components/OrderHistoryPage/orderHistoryPage.module.css +70 -0
- package/src/overwrites/venia-ui/lib/components/OrderHistoryPage/orderProgressBar.js +70 -0
- package/src/overwrites/venia-ui/lib/components/OrderHistoryPage/orderProgressBar.module.css +14 -0
- package/src/overwrites/venia-ui/lib/components/OrderHistoryPage/orderRow.js +324 -0
- package/src/overwrites/venia-ui/lib/components/OrderHistoryPage/orderRow.module.css +146 -0
- package/src/overwrites/venia-ui/lib/components/OrderHistoryPage/resetButton.js +41 -0
- package/src/overwrites/venia-ui/lib/components/Password/index.js +1 -0
- package/src/overwrites/venia-ui/lib/components/Password/password.js +102 -0
- package/src/overwrites/venia-ui/lib/components/Password/password.module.css +26 -0
- package/src/overwrites/venia-ui/lib/components/ProductFullDetail/productFullDetail.js +29 -14
- package/src/overwrites/venia-ui/lib/components/Select/index.js +1 -0
- package/src/overwrites/venia-ui/lib/components/Select/option.js +28 -0
- package/src/overwrites/venia-ui/lib/components/Select/select.js +74 -0
- package/src/overwrites/venia-ui/lib/components/Select/select.module.css +25 -0
- package/src/overwrites/venia-ui/lib/components/SignIn/index.js +1 -0
- package/src/overwrites/venia-ui/lib/components/SignIn/signIn.gql.js +50 -0
- package/src/overwrites/venia-ui/lib/components/SignIn/signIn.js +224 -0
- package/src/overwrites/venia-ui/lib/components/SignIn/signIn.module.css +65 -0
- package/src/overwrites/venia-ui/lib/components/SignInPage/index.js +1 -0
- package/src/overwrites/venia-ui/lib/components/SignInPage/signInPage.js +50 -0
- package/src/overwrites/venia-ui/lib/components/SignInPage/signInPage.module.css +17 -0
- package/src/overwrites/venia-ui/lib/components/TextInput/textInput.js +1 -1
- package/src/talons/Header/logo.gql.js +19 -0
- package/src/talons/Header/useLogo.js +19 -0
- package/src/talons/ShopBy/shopBy.gql.js +2 -2
- package/src/talons/ShopBy/useShopBy.js +10 -9
- package/src/talons/ShopByVehicles/shopByVehicles.gql.js +1 -0
- package/src/talons/TrainsSets/trainsSets.gql.js +60 -0
- package/src/talons/TrainsSets/useTrainsSets.js +223 -0
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
.root {
|
|
2
|
+
composes: gap-y-2xs from global;
|
|
3
|
+
composes: grid from global;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.item {
|
|
7
|
+
composes: gap-x-2xs from global;
|
|
8
|
+
composes: gap-y-xs from global;
|
|
9
|
+
composes: grid from global;
|
|
10
|
+
composes: items-start from global;
|
|
11
|
+
grid-template-areas: 'image details kebab';
|
|
12
|
+
grid-template-columns: 100px 1fr min-content;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.item_disabled {
|
|
16
|
+
composes: item;
|
|
17
|
+
composes: opacity-50 from global;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.errorText {
|
|
21
|
+
composes: leading-normal from global;
|
|
22
|
+
composes: text-error from global;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/* TODO @TW: cannot compose */
|
|
26
|
+
.errorText:empty {
|
|
27
|
+
display: none;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.imageContainer {
|
|
31
|
+
grid-area: image;
|
|
32
|
+
flex-basis: 100px;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.imageRoot {
|
|
36
|
+
composes: h-full from global;
|
|
37
|
+
composes: w-[100px] from global;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.image {
|
|
41
|
+
composes: bg-subtle from global;
|
|
42
|
+
composes: border from global;
|
|
43
|
+
composes: border-solid from global;
|
|
44
|
+
composes: border-subtle from global;
|
|
45
|
+
composes: h-full from global;
|
|
46
|
+
composes: object-contain from global;
|
|
47
|
+
composes: object-center from global;
|
|
48
|
+
composes: rounded-sm from global;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.details {
|
|
52
|
+
composes: gap-2xs from global;
|
|
53
|
+
composes: leading-normal from global;
|
|
54
|
+
|
|
55
|
+
composes: sm_grid from global;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
@media (min-width: 640px) {
|
|
59
|
+
.details {
|
|
60
|
+
grid-area: details;
|
|
61
|
+
grid-template-areas:
|
|
62
|
+
'name name'
|
|
63
|
+
'options quantity'
|
|
64
|
+
'price quantity'
|
|
65
|
+
'stock quantity';
|
|
66
|
+
grid-template-columns: 2fr 1fr;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.name {
|
|
71
|
+
composes: font-semibold from global;
|
|
72
|
+
grid-area: name;
|
|
73
|
+
display: -webkit-box;
|
|
74
|
+
-webkit-line-clamp: 2;
|
|
75
|
+
-webkit-box-orient: vertical;
|
|
76
|
+
overflow: hidden;
|
|
77
|
+
line-height: normal;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.price {
|
|
81
|
+
composes: text-sm from global;
|
|
82
|
+
grid-area: price;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.quantity {
|
|
86
|
+
composes: grid from global;
|
|
87
|
+
composes: items-start from global;
|
|
88
|
+
composes: justify-items-start from global;
|
|
89
|
+
grid-area: quantity;
|
|
90
|
+
|
|
91
|
+
composes: sm_justify-items-center from global;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.kebab {
|
|
95
|
+
composes: relative from global;
|
|
96
|
+
grid-area: kebab;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.sectionText {
|
|
100
|
+
composes: pointer-events-none from global;
|
|
101
|
+
composes: px-2xs from global;
|
|
102
|
+
composes: py-1 from global;
|
|
103
|
+
composes: text-sm from global;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.options {
|
|
107
|
+
composes: gap-0.5 from global;
|
|
108
|
+
composes: grid from global;
|
|
109
|
+
composes: text-sm from global;
|
|
110
|
+
grid-area: options;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.optionLabel {
|
|
114
|
+
composes: auto-cols-max from global;
|
|
115
|
+
composes: grid from global;
|
|
116
|
+
composes: grid-flow-col from global;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.stockStatusMessage {
|
|
120
|
+
composes: font-semibold from global;
|
|
121
|
+
composes: text-error from global;
|
|
122
|
+
composes: text-sm from global;
|
|
123
|
+
grid-area: stock;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/* TODO @TW: cannot compose */
|
|
127
|
+
.stockStatusMessage:empty {
|
|
128
|
+
display: none;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.addToListButton {
|
|
132
|
+
--stroke: rgb(var(--venia-global-color-teal));
|
|
133
|
+
|
|
134
|
+
composes: content-center from global;
|
|
135
|
+
composes: gap-x-xs from global;
|
|
136
|
+
composes: inline-flex from global;
|
|
137
|
+
composes: px-2.5 from global;
|
|
138
|
+
composes: py-3.5 from global;
|
|
139
|
+
composes: text-sm from global;
|
|
140
|
+
composes: w-full from global;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
.addToListButton_selected {
|
|
144
|
+
composes: hidden from global;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
@media (max-width: 639px) {
|
|
148
|
+
|
|
149
|
+
.name,
|
|
150
|
+
.options,
|
|
151
|
+
.price,
|
|
152
|
+
.stockStatusMessage,
|
|
153
|
+
.quantity {
|
|
154
|
+
grid-area: auto;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import React, { Fragment, Suspense } from 'react';
|
|
2
|
+
import { FormattedMessage } from 'react-intl';
|
|
3
|
+
import { useProductListing } from '@magento/peregrine/lib/talons/CartPage/ProductListing/useProductListing';
|
|
4
|
+
|
|
5
|
+
import { useStyle } from '@magento/venia-ui/lib/classify';
|
|
6
|
+
import LoadingIndicator from '@magento/venia-ui/lib/components/LoadingIndicator';
|
|
7
|
+
import defaultClasses from './productListing.module.css';
|
|
8
|
+
import Product from './product';
|
|
9
|
+
import ErrorMessage from './errorMessage';
|
|
10
|
+
import cn from 'classnames';
|
|
11
|
+
|
|
12
|
+
const EditModal = React.lazy(() => import('./EditModal'));
|
|
13
|
+
/**
|
|
14
|
+
* A child component of the CartPage component.
|
|
15
|
+
* This component renders the product listing on the cart page.
|
|
16
|
+
*
|
|
17
|
+
* @param {Object} props
|
|
18
|
+
* @param {Function} props.setIsCartUpdating Function for setting the updating state of the cart.
|
|
19
|
+
* @param {Object} props.classes CSS className overrides.
|
|
20
|
+
* See [productListing.module.css]{@link https://github.com/magento/pwa-studio/blob/develop/packages/venia-ui/lib/components/CartPage/ProductListing/productListing.module.css}
|
|
21
|
+
* for a list of classes you can override.
|
|
22
|
+
*
|
|
23
|
+
* @returns {React.Element}
|
|
24
|
+
*
|
|
25
|
+
* @example <caption>Importing into your project</caption>
|
|
26
|
+
* import ProductListing from "@magento/venia-ui/lib/components/CartPage/ProductListing";
|
|
27
|
+
*/
|
|
28
|
+
const ProductListing = props => {
|
|
29
|
+
const {
|
|
30
|
+
onAddToWishlistSuccess,
|
|
31
|
+
setIsCartUpdating,
|
|
32
|
+
fetchCartDetails
|
|
33
|
+
} = props;
|
|
34
|
+
|
|
35
|
+
const talonProps = useProductListing();
|
|
36
|
+
|
|
37
|
+
const {
|
|
38
|
+
activeEditItem,
|
|
39
|
+
isLoading,
|
|
40
|
+
error,
|
|
41
|
+
items,
|
|
42
|
+
setActiveEditItem,
|
|
43
|
+
wishlistConfig
|
|
44
|
+
} = talonProps;
|
|
45
|
+
|
|
46
|
+
const classes = useStyle(defaultClasses, props.classes);
|
|
47
|
+
|
|
48
|
+
if (isLoading) {
|
|
49
|
+
return (
|
|
50
|
+
<LoadingIndicator>
|
|
51
|
+
<FormattedMessage
|
|
52
|
+
id={'productListing.loading'}
|
|
53
|
+
defaultMessage={'Fetching Cart...'}
|
|
54
|
+
/>
|
|
55
|
+
</LoadingIndicator>
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
if (items.length) {
|
|
60
|
+
const productComponents = items.map(product => (
|
|
61
|
+
<Product
|
|
62
|
+
item={product}
|
|
63
|
+
key={product.uid}
|
|
64
|
+
setActiveEditItem={setActiveEditItem}
|
|
65
|
+
setIsCartUpdating={setIsCartUpdating}
|
|
66
|
+
onAddToWishlistSuccess={onAddToWishlistSuccess}
|
|
67
|
+
fetchCartDetails={fetchCartDetails}
|
|
68
|
+
wishlistConfig={wishlistConfig}
|
|
69
|
+
/>
|
|
70
|
+
));
|
|
71
|
+
|
|
72
|
+
return (
|
|
73
|
+
<Fragment>
|
|
74
|
+
<ErrorMessage error={error} />
|
|
75
|
+
<ul className={cn(classes.root, 'border border-gray-100 rounded-md')} data-cy="ProductListing-root">
|
|
76
|
+
<div className='px-4'>
|
|
77
|
+
{productComponents}
|
|
78
|
+
</div>
|
|
79
|
+
</ul>
|
|
80
|
+
<Suspense fallback={null}>
|
|
81
|
+
<EditModal
|
|
82
|
+
item={activeEditItem}
|
|
83
|
+
setIsCartUpdating={setIsCartUpdating}
|
|
84
|
+
setActiveEditItem={setActiveEditItem}
|
|
85
|
+
/>
|
|
86
|
+
</Suspense>
|
|
87
|
+
</Fragment>
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
return null;
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
export default ProductListing;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Form } from 'informed';
|
|
3
|
+
import { func, number, string } from 'prop-types';
|
|
4
|
+
import QuantityStepper from '@magento/venia-ui/lib/components/QuantityStepper';
|
|
5
|
+
|
|
6
|
+
const Quantity = props => {
|
|
7
|
+
return (
|
|
8
|
+
<Form
|
|
9
|
+
initialValues={{
|
|
10
|
+
quantity: props.initialValue
|
|
11
|
+
}}
|
|
12
|
+
>
|
|
13
|
+
<QuantityStepper {...props} />
|
|
14
|
+
</Form>
|
|
15
|
+
);
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
Quantity.propTypes = {
|
|
19
|
+
initialValue: number,
|
|
20
|
+
itemId: string,
|
|
21
|
+
label: string,
|
|
22
|
+
min: number,
|
|
23
|
+
onChange: func,
|
|
24
|
+
message: string
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
Quantity.defaultProps = {
|
|
28
|
+
label: 'Quantity',
|
|
29
|
+
min: 0,
|
|
30
|
+
initialValue: 1,
|
|
31
|
+
onChange: () => { }
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* @deprecated - moved to component directory in 12.4.0
|
|
36
|
+
* @see QuantityStepper
|
|
37
|
+
*/
|
|
38
|
+
export const QuantityFields = QuantityStepper;
|
|
39
|
+
|
|
40
|
+
export default Quantity;
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import React, { useEffect } from 'react';
|
|
2
|
+
import { FormattedMessage, useIntl } from 'react-intl';
|
|
3
|
+
import { Check } from 'react-feather';
|
|
4
|
+
import { useCartPage } from '@magento/peregrine/lib/talons/CartPage/useCartPage';
|
|
5
|
+
import { useStyle } from '@magento/venia-ui/lib/classify';
|
|
6
|
+
import { useToasts } from '@magento/peregrine';
|
|
7
|
+
|
|
8
|
+
import Icon from '@magento/venia-ui/lib/components/Icon';
|
|
9
|
+
import { StoreTitle } from '@magento/venia-ui/lib/components/Head';
|
|
10
|
+
import { fullPageLoadingIndicator } from '@magento/venia-ui/lib/components/LoadingIndicator';
|
|
11
|
+
import StockStatusMessage from '@magento/venia-ui/lib/components/StockStatusMessage';
|
|
12
|
+
import PriceAdjustments from './PriceAdjustments';
|
|
13
|
+
import PriceSummary from './PriceSummary';
|
|
14
|
+
import ProductListing from './ProductListing';
|
|
15
|
+
import defaultClasses from './cartPage.module.css';
|
|
16
|
+
import cn from 'classnames';
|
|
17
|
+
|
|
18
|
+
const CheckIcon = <Icon size={20} src={Check} />;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Structural page component for the shopping cart.
|
|
22
|
+
* This is the main component used in the `/cart` route in Venia.
|
|
23
|
+
* It uses child components to render the different pieces of the cart page.
|
|
24
|
+
*
|
|
25
|
+
* @see {@link https://venia.magento.com/cart}
|
|
26
|
+
*
|
|
27
|
+
* @param {Object} props
|
|
28
|
+
* @param {Object} props.classes CSS className overrides for the component.
|
|
29
|
+
* See [cartPage.module.css]{@link https://github.com/magento/pwa-studio/blob/develop/packages/venia-ui/lib/components/CartPage/cartPage.module.css}
|
|
30
|
+
* for a list of classes you can override.
|
|
31
|
+
*
|
|
32
|
+
* @returns {React.Element}
|
|
33
|
+
*
|
|
34
|
+
* @example <caption>Importing into your project</caption>
|
|
35
|
+
* import CartPage from "@magento/venia-ui/lib/components/CartPage";
|
|
36
|
+
*/
|
|
37
|
+
const CartPage = props => {
|
|
38
|
+
const talonProps = useCartPage();
|
|
39
|
+
|
|
40
|
+
const {
|
|
41
|
+
cartItems,
|
|
42
|
+
hasItems,
|
|
43
|
+
isCartUpdating,
|
|
44
|
+
fetchCartDetails,
|
|
45
|
+
onAddToWishlistSuccess,
|
|
46
|
+
setIsCartUpdating,
|
|
47
|
+
shouldShowLoadingIndicator,
|
|
48
|
+
wishlistSuccessProps
|
|
49
|
+
} = talonProps;
|
|
50
|
+
|
|
51
|
+
const classes = useStyle(defaultClasses, props.classes);
|
|
52
|
+
const { formatMessage } = useIntl();
|
|
53
|
+
const [, { addToast }] = useToasts();
|
|
54
|
+
|
|
55
|
+
useEffect(() => {
|
|
56
|
+
if (wishlistSuccessProps) {
|
|
57
|
+
addToast({ ...wishlistSuccessProps, icon: CheckIcon });
|
|
58
|
+
}
|
|
59
|
+
}, [addToast, wishlistSuccessProps]);
|
|
60
|
+
|
|
61
|
+
if (shouldShowLoadingIndicator) {
|
|
62
|
+
return fullPageLoadingIndicator;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
const productListing = hasItems ? (
|
|
66
|
+
<ProductListing
|
|
67
|
+
onAddToWishlistSuccess={onAddToWishlistSuccess}
|
|
68
|
+
setIsCartUpdating={setIsCartUpdating}
|
|
69
|
+
fetchCartDetails={fetchCartDetails}
|
|
70
|
+
/>
|
|
71
|
+
) : (
|
|
72
|
+
<h3>
|
|
73
|
+
<FormattedMessage
|
|
74
|
+
id={'cartPage.emptyCart'}
|
|
75
|
+
defaultMessage={'There are no items in your cart.'}
|
|
76
|
+
/>
|
|
77
|
+
</h3>
|
|
78
|
+
);
|
|
79
|
+
|
|
80
|
+
const priceAdjustments = hasItems ? (
|
|
81
|
+
<PriceAdjustments setIsCartUpdating={setIsCartUpdating} />
|
|
82
|
+
) : null;
|
|
83
|
+
|
|
84
|
+
const priceSummary = hasItems ? (
|
|
85
|
+
<PriceSummary isUpdating={isCartUpdating} />
|
|
86
|
+
) : null;
|
|
87
|
+
|
|
88
|
+
return (
|
|
89
|
+
<div className={classes.root} data-cy="CartPage-root">
|
|
90
|
+
<StoreTitle>
|
|
91
|
+
{formatMessage({
|
|
92
|
+
id: 'cartPage.title',
|
|
93
|
+
defaultMessage: 'Cart'
|
|
94
|
+
})}
|
|
95
|
+
</StoreTitle>
|
|
96
|
+
<div className={cn(classes.heading_container, 'mb-[30px]')}>
|
|
97
|
+
<h1
|
|
98
|
+
aria-live="polite"
|
|
99
|
+
data-cy="CartPage-heading"
|
|
100
|
+
className={cn(classes.heading, 'text-xl font-medium')}
|
|
101
|
+
>
|
|
102
|
+
<FormattedMessage
|
|
103
|
+
id={'cartPage.heading'}
|
|
104
|
+
defaultMessage={'Cart'}
|
|
105
|
+
/>
|
|
106
|
+
</h1>
|
|
107
|
+
<div className={classes.stockStatusMessageContainer}>
|
|
108
|
+
<StockStatusMessage cartItems={cartItems} />
|
|
109
|
+
</div>
|
|
110
|
+
</div>
|
|
111
|
+
<div className={classes.body}>
|
|
112
|
+
<div className={classes.items_container}>{productListing}</div>
|
|
113
|
+
<div className={classes.price_adjustments_container}>
|
|
114
|
+
{priceAdjustments}
|
|
115
|
+
</div>
|
|
116
|
+
<div className={classes.summary_container}>
|
|
117
|
+
<div className={classes.summary_contents}>
|
|
118
|
+
{priceSummary}
|
|
119
|
+
</div>
|
|
120
|
+
</div>
|
|
121
|
+
</div>
|
|
122
|
+
</div>
|
|
123
|
+
);
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
export default CartPage;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
.root {
|
|
2
|
+
composes: mx-auto from global;
|
|
3
|
+
composes: my-[26px] from global;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.body {
|
|
7
|
+
composes: grid from global;
|
|
8
|
+
composes: gap-md from global;
|
|
9
|
+
grid-template-columns: 1fr 18rem;
|
|
10
|
+
/* The summary grid item spans the entire right column. */
|
|
11
|
+
grid-template-areas:
|
|
12
|
+
'items summary'
|
|
13
|
+
'adjustments summary';
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.heading_container {
|
|
17
|
+
composes: gap-y-xs from global;
|
|
18
|
+
composes: grid from global;
|
|
19
|
+
composes: mb-xs from global;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.heading {
|
|
23
|
+
composes: leading-tight from global;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/* TODO @TW: cannot compose */
|
|
27
|
+
.stockStatusMessageContainer:empty {
|
|
28
|
+
display: none;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.items_container {
|
|
32
|
+
grid-area: items;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.price_adjustments_container {
|
|
36
|
+
grid-area: adjustments;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.summary_container {
|
|
40
|
+
composes: h-full from global;
|
|
41
|
+
grid-area: summary;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.summary_contents {
|
|
45
|
+
composes: sticky from global;
|
|
46
|
+
/*
|
|
47
|
+
* TODO: Use CSS Properties (variables) or something instead of hardcoding this.
|
|
48
|
+
* - 3.5rem = min-height of nav header. See the "toolbar" class in header.css.
|
|
49
|
+
* - 2rem = padding-top of the cart page.
|
|
50
|
+
*/
|
|
51
|
+
composes: top-[9rem] from global;
|
|
52
|
+
/* TODO @TW: review */
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
@media (max-width: 959px) {
|
|
56
|
+
.body {
|
|
57
|
+
/* Only one column in mobile view. */
|
|
58
|
+
grid-template-columns: 100%;
|
|
59
|
+
grid-template-areas:
|
|
60
|
+
'items'
|
|
61
|
+
'adjustments'
|
|
62
|
+
'summary';
|
|
63
|
+
}
|
|
64
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './cartPage';
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import React, { Fragment, useEffect, useMemo, Suspense } from 'react';
|
|
2
|
+
import { FormattedMessage } from 'react-intl';
|
|
3
|
+
import { shape, string, func } from 'prop-types';
|
|
4
|
+
import { PlusSquare, AlertCircle as AlertCircleIcon } from 'react-feather';
|
|
5
|
+
import { useToasts } from '@magento/peregrine';
|
|
6
|
+
import { useAddressBook } from '@magento/peregrine/lib/talons/CheckoutPage/AddressBook/useAddressBook';
|
|
7
|
+
|
|
8
|
+
import { useStyle } from '@magento/venia-ui/lib/classify';
|
|
9
|
+
import Button from '@magento/venia-ui/lib/components/Button';
|
|
10
|
+
import defaultClasses from './addressBook.module.css';
|
|
11
|
+
import AddressCard from './addressCard';
|
|
12
|
+
import Icon from '@magento/venia-ui/lib/components/Icon';
|
|
13
|
+
import LinkButton from '@magento/venia-ui/lib/components/LinkButton';
|
|
14
|
+
|
|
15
|
+
const EditModal = React.lazy(() => import('../ShippingInformation/editModal'));
|
|
16
|
+
|
|
17
|
+
const errorIcon = (
|
|
18
|
+
<Icon
|
|
19
|
+
src={AlertCircleIcon}
|
|
20
|
+
attrs={{
|
|
21
|
+
width: 18
|
|
22
|
+
}}
|
|
23
|
+
/>
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
const AddressBook = props => {
|
|
27
|
+
const {
|
|
28
|
+
activeContent,
|
|
29
|
+
classes: propClasses,
|
|
30
|
+
toggleActiveContent,
|
|
31
|
+
onSuccess
|
|
32
|
+
} = props;
|
|
33
|
+
|
|
34
|
+
const talonProps = useAddressBook({
|
|
35
|
+
toggleActiveContent,
|
|
36
|
+
onSuccess
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
const {
|
|
40
|
+
activeAddress,
|
|
41
|
+
customerAddresses,
|
|
42
|
+
errorMessage,
|
|
43
|
+
handleAddAddress,
|
|
44
|
+
handleApplyAddress,
|
|
45
|
+
handleCancel,
|
|
46
|
+
handleEditAddress,
|
|
47
|
+
handleSelectAddress,
|
|
48
|
+
isLoading,
|
|
49
|
+
selectedAddress
|
|
50
|
+
} = talonProps;
|
|
51
|
+
|
|
52
|
+
const classes = useStyle(defaultClasses, propClasses);
|
|
53
|
+
|
|
54
|
+
const [, { addToast }] = useToasts();
|
|
55
|
+
|
|
56
|
+
useEffect(() => {
|
|
57
|
+
if (errorMessage) {
|
|
58
|
+
addToast({
|
|
59
|
+
type: 'error',
|
|
60
|
+
icon: errorIcon,
|
|
61
|
+
message: errorMessage,
|
|
62
|
+
dismissable: true,
|
|
63
|
+
timeout: 10000
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}, [addToast, errorMessage]);
|
|
67
|
+
|
|
68
|
+
const rootClass =
|
|
69
|
+
activeContent === 'addressBook' ? classes.root_active : classes.root;
|
|
70
|
+
|
|
71
|
+
const addAddressButton = useMemo(
|
|
72
|
+
() => (
|
|
73
|
+
<LinkButton
|
|
74
|
+
className={classes.addButton}
|
|
75
|
+
key="addAddressButton"
|
|
76
|
+
onClick={handleAddAddress}
|
|
77
|
+
>
|
|
78
|
+
<Icon
|
|
79
|
+
size={24}
|
|
80
|
+
src={PlusSquare}
|
|
81
|
+
classes={{
|
|
82
|
+
icon: classes.addIcon
|
|
83
|
+
}}
|
|
84
|
+
/>
|
|
85
|
+
<span className={classes.addText}>
|
|
86
|
+
<FormattedMessage
|
|
87
|
+
id={'addressBook.addNewAddresstext'}
|
|
88
|
+
defaultMessage={'Add New Address'}
|
|
89
|
+
/>
|
|
90
|
+
</span>
|
|
91
|
+
</LinkButton>
|
|
92
|
+
),
|
|
93
|
+
[classes.addButton, classes.addIcon, classes.addText, handleAddAddress]
|
|
94
|
+
);
|
|
95
|
+
|
|
96
|
+
const addressElements = useMemo(() => {
|
|
97
|
+
let defaultIndex;
|
|
98
|
+
const addresses = customerAddresses.map((address, index) => {
|
|
99
|
+
const isSelected = selectedAddress === address.id;
|
|
100
|
+
|
|
101
|
+
if (address.default_shipping) {
|
|
102
|
+
defaultIndex = index;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
return (
|
|
106
|
+
<AddressCard
|
|
107
|
+
address={address}
|
|
108
|
+
isSelected={isSelected}
|
|
109
|
+
key={address.id}
|
|
110
|
+
onSelection={handleSelectAddress}
|
|
111
|
+
onEdit={handleEditAddress}
|
|
112
|
+
/>
|
|
113
|
+
);
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
// Position the default address first in the elements list
|
|
117
|
+
if (defaultIndex) {
|
|
118
|
+
[addresses[0], addresses[defaultIndex]] = [
|
|
119
|
+
addresses[defaultIndex],
|
|
120
|
+
addresses[0]
|
|
121
|
+
];
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
return [...addresses, addAddressButton];
|
|
125
|
+
}, [
|
|
126
|
+
addAddressButton,
|
|
127
|
+
customerAddresses,
|
|
128
|
+
handleEditAddress,
|
|
129
|
+
handleSelectAddress,
|
|
130
|
+
selectedAddress
|
|
131
|
+
]);
|
|
132
|
+
|
|
133
|
+
return (
|
|
134
|
+
<Fragment>
|
|
135
|
+
<div className={rootClass}>
|
|
136
|
+
<h1 aria-live="polite" className={classes.headerText}>
|
|
137
|
+
<FormattedMessage
|
|
138
|
+
id={'addressBook.headerText'}
|
|
139
|
+
defaultMessage={'Change Shipping Information'}
|
|
140
|
+
/>
|
|
141
|
+
</h1>
|
|
142
|
+
<div className={classes.buttonContainer}>
|
|
143
|
+
<Button
|
|
144
|
+
disabled={isLoading}
|
|
145
|
+
onClick={handleCancel}
|
|
146
|
+
priority="low"
|
|
147
|
+
>
|
|
148
|
+
<FormattedMessage
|
|
149
|
+
id={'addressBook.cancelButtonText'}
|
|
150
|
+
defaultMessage={'Cancel'}
|
|
151
|
+
/>
|
|
152
|
+
</Button>
|
|
153
|
+
<Button
|
|
154
|
+
disabled={isLoading}
|
|
155
|
+
onClick={handleApplyAddress}
|
|
156
|
+
priority="high"
|
|
157
|
+
>
|
|
158
|
+
<FormattedMessage
|
|
159
|
+
id={'addressBook.applyButtonText'}
|
|
160
|
+
defaultMessage={'Apply'}
|
|
161
|
+
/>
|
|
162
|
+
</Button>
|
|
163
|
+
</div>
|
|
164
|
+
|
|
165
|
+
<div className={classes.content}>{addressElements}</div>
|
|
166
|
+
</div>
|
|
167
|
+
<Suspense fallback={null}>
|
|
168
|
+
<EditModal onSuccess={onSuccess} shippingData={activeAddress} />
|
|
169
|
+
</Suspense>
|
|
170
|
+
</Fragment>
|
|
171
|
+
);
|
|
172
|
+
};
|
|
173
|
+
|
|
174
|
+
export default AddressBook;
|
|
175
|
+
|
|
176
|
+
AddressBook.propTypes = {
|
|
177
|
+
activeContent: string.isRequired,
|
|
178
|
+
classes: shape({
|
|
179
|
+
root: string,
|
|
180
|
+
root_active: string,
|
|
181
|
+
headerText: string,
|
|
182
|
+
buttonContainer: string,
|
|
183
|
+
content: string,
|
|
184
|
+
addButton: string,
|
|
185
|
+
addIcon: string,
|
|
186
|
+
addText: string
|
|
187
|
+
}),
|
|
188
|
+
onSuccess: func.isRequired,
|
|
189
|
+
toggleActiveContent: func.isRequired
|
|
190
|
+
};
|