diff --git a/README.md b/README.md index 337a3a34fb..2abe9b542c 100644 --- a/README.md +++ b/README.md @@ -22,8 +22,11 @@ Here, you can learn PWA Studio concepts, find API reference docs, and read tutor Here are some popular topics to help you get started: - [PWA Studio Overview][] - A high level overview of PWA Studio and what it provides to developers +- [PWA Studio Beginner Guide](https://www.youtube.com/watch?v=n8C87KQT-Bg) - [Tools and libraries][] - A list of tools and libraries developers need to be familiar with to use PWA Studio - [PWA Studio fundamentals][] - A series of tutorials covering common storefront development tasks +- [PWA Studio best Practices](https://developer.adobe.com/commerce/pwa-studio/guides/best-practices/) + ### Venia diff --git a/packages/peregrine/lib/talons/CheckoutPage/__tests__/__snapshots__/useCheckoutPage.spec.js.snap b/packages/peregrine/lib/talons/CheckoutPage/__tests__/__snapshots__/useCheckoutPage.spec.js.snap index f209f578f6..df9b26fcf9 100644 --- a/packages/peregrine/lib/talons/CheckoutPage/__tests__/__snapshots__/useCheckoutPage.spec.js.snap +++ b/packages/peregrine/lib/talons/CheckoutPage/__tests__/__snapshots__/useCheckoutPage.spec.js.snap @@ -13,6 +13,7 @@ Object { "error": undefined, "guestSignInUsername": "", "handlePlaceOrder": [Function], + "handlePlaceOrderEnterKeyPress": [Function], "handleReviewOrder": [Function], "handleReviewOrderEnterKeyPress": [Function], "hasError": false, diff --git a/packages/peregrine/lib/talons/CheckoutPage/useCheckoutPage.js b/packages/peregrine/lib/talons/CheckoutPage/useCheckoutPage.js index 617249044b..e084d05794 100644 --- a/packages/peregrine/lib/talons/CheckoutPage/useCheckoutPage.js +++ b/packages/peregrine/lib/talons/CheckoutPage/useCheckoutPage.js @@ -40,6 +40,7 @@ export const CHECKOUT_STEP = { * customer: Object, * error: ApolloError, * handlePlaceOrder: Function, + * handlePlaceOrderEnterKeyPress: Function, * hasError: Boolean, * isCartEmpty: Boolean, * isGuestCheckout: Boolean, @@ -250,6 +251,14 @@ export const useCheckoutPage = (props = {}) => { setIsPlacingOrder(true); }, [cartId, getOrderDetails]); + const handlePlaceOrderEnterKeyPress = useCallback(() => { + event => { + if (event.key === 'Enter') { + handlePlaceOrder(); + } + }; + }, [handlePlaceOrder]); + const [, { dispatch }] = useEventingContext(); // Go back to checkout if shopper logs in @@ -386,6 +395,7 @@ export const useCheckoutPage = (props = {}) => { error: checkoutError, guestSignInUsername, handlePlaceOrder, + handlePlaceOrderEnterKeyPress, hasError: !!checkoutError, isCartEmpty: !(checkoutData && checkoutData?.cart?.total_quantity), isGuestCheckout: !isSignedIn, diff --git a/packages/venia-ui/i18n/en_US.json b/packages/venia-ui/i18n/en_US.json index b21dec20a7..4db67d96c8 100644 --- a/packages/venia-ui/i18n/en_US.json +++ b/packages/venia-ui/i18n/en_US.json @@ -184,6 +184,7 @@ "filterModal.item.clearFilter": "Remove filter \"{optionName}\".", "filterModal.item.hideOptions": "Hide \"{itemName}\" filter item options.", "filterModal.item.showOptions": "Show \"{itemName}\" filter item options.", + "filterModalOpenButton.ariaLabel": "Filter Button for Filter Options.", "filterSearch.name": "Enter a {name}", "footer.calloutText": "Lorem ipsum dolor sit amet, consectetur adipsicing elit, sed do eiusmod tempor incididunt ut labore et dolore.", "footer.followText": "Follow Us!", @@ -373,6 +374,8 @@ "productQuantity.label": "product's quantity", "productSort.sortByButton": "Sort by", "productSort.sortButton": "Sort", + "productSort.sortButtonCollapsed": "Sort Button Collapsed", + "productSort.sortButtonExpanded": "Sort Button Expanded", "quantity.buttonDecrement": "Decrease Quantity", "quantity.buttonIncrement": "Increase Quantity", "quantity.input": "Item Quantity", diff --git a/packages/venia-ui/lib/components/CheckoutPage/checkoutPage.js b/packages/venia-ui/lib/components/CheckoutPage/checkoutPage.js index 15d43d07f5..cb319f4d5f 100644 --- a/packages/venia-ui/lib/components/CheckoutPage/checkoutPage.js +++ b/packages/venia-ui/lib/components/CheckoutPage/checkoutPage.js @@ -52,6 +52,7 @@ const CheckoutPage = props => { error, guestSignInUsername, handlePlaceOrder, + handlePlaceOrderEnterKeyPress, hasError, isCartEmpty, isGuestCheckout, @@ -272,6 +273,7 @@ const CheckoutPage = props => { checkoutStep === CHECKOUT_STEP.REVIEW ? ( diff --git a/packages/venia-ui/lib/components/ProductSort/__tests__/__snapshots__/productSort.spec.js.snap b/packages/venia-ui/lib/components/ProductSort/__tests__/__snapshots__/productSort.spec.js.snap index 9f766d280e..f30825021a 100644 --- a/packages/venia-ui/lib/components/ProductSort/__tests__/__snapshots__/productSort.spec.js.snap +++ b/packages/venia-ui/lib/components/ProductSort/__tests__/__snapshots__/productSort.spec.js.snap @@ -5,6 +5,7 @@ exports[`renders correctly 1`] = ` aria-busy="false" >