github magento/pwa-studio v12.0.0

latest releases: v14.1.0-beta.2, v14.1.0, v14.1.0-beta.1...
3 years ago

Release 12.0.0

NOTE:
This changelog only contains release notes for PWA Studio and Venia 12.0.0.
For older release notes, see PWA Studio releases.

New Features

  • Added Shimmer loading component to improve page loading
  • Prepared PWA Studio for Theming with Tailwind CSS
  • Added Add to Cart button for products displayed on category pages
  • Added new route-authentication handling
  • Improved Lighthouse scores

Add To Cart from product category pages

Shoppers can now add products to their cart directly from the product category pages, without going to the product detail page. Each product listed on the category page now has an Add to Cart button. If the product is out of stock, we either hide the button or disable the button and change its text to Out of Stock.

Pull Requests

Description PR
Add to Cart on Category Listing - Out of stock are not visible. 3272
Add to Cart on Category Listing - Out of stock is visible. 3356
Add to Cart on Search Results - Out of stock is visible. 3361
Add to Cart on CMS - Out of stock is visible. 3433

Added Shimmer loader component

The Shimmer component is a loading indicator that takes the shape of the component being loaded. This gives users an idea of what content will be on the page before it's fully loaded, which improves the perceived loading performance and eliminates layout shift.
This loading improvement is most notable on product listing and product detail pages.

Pull Requests

Description PR
Improve loading perception while navigating between pages 3308
UPWARD PHP inlining and Shimmer enhancements 3353
Improved Loading Experience - Shimmer and Inlining 3428
PoC: Pre-fetching and Inlining with Upward Connector Module (PHP) 3353
Slider movement causing Cypress test failures 3436
Customizing shimmer loader 3353

Prepared PWA Studio for Theming with Tailwind CSS

In preparation for our full theming implementation in the next release, we have added the Tailwind CSS framework and updated our CSS infrastructure to support a wider variety of custom theming approaches. Significant changes in this release include:

Pull Requests

Description PR
Added Tailwind to PWA Studio for Theme configuration. 3341
Created a Tailwind theme package in the monorepo. 3400
Fixed PostCSS console errors and warnings during yarn build. 3394
Renamed our existing CSS files to match the standard CSS Module pattern: *.module.css. This limits the scope of CSS Modules to prevent it from reprocessing Tailwind CSS and your own .css files. 3414

Added new route-authentication handling

Guest users (users not signed-in to the site) are now redirected to a new /sign-in page when trying to access pages that require authentication, such as the /order-history page. To support the new routing authentication, we created several new components:

  • AuthRoute — New component that returns the Route or a Redirect to the sign-in page if the user is not signed-in.
  • SignInPage — New component that returns a page with a sign-in form where users can sign-in to their existing account, create a new account, or reset their password.
  • ForgotPasswordPage — New page that shows a form to reset user's password.
  • RouteDefinition - Updated object with authed and redirectTo properties to support route-based authentication handling.
  • CreateAccountPage — Updated to work with the new route-authentication handling.

Pull Requests

Description PR
Route authentication handling 3406

Improved Lighthouse scores

Google Lighthouse scores are now 100 for Best Practices, Accessibility, and SEO categories. Average scores for the Performance category have also improved.

Pull Requests

Description PR
Avoid an excessive DOM size from duplication of navigation 3388
Improved loading experience for PLP and PDP page types 3353
Page Builder Slider Keyboard nav improved 3420
Page Builder Banner and Slider content types load without layout shifts on the page. 3328
Markup updates to improve SEO and Accessibility 3412
Tap Targets size and Color Contrast 3421
Image placeholders updates to improve the Best Practices score 3411
Meta information for Category Meta Descriptions 3471

Updates

Description PR
Migrated magento-commerce/upward-php from Zend to Laminas. upward-php/3
Updated the service worker to cache more than just URLs with .html suffixes. 3448
Updated the Venia splash image shown when JavaScript is disabled in the browser. 3355
Moved all project CartPage/.../*.gql.js files from venia-ui to the peregrine/talons directory. 3457
Moved all project CheckoutPage/.../*.gql.js files from venia-ui to the peregrine/talons directory. 3441
Refactor all queries that use category or product url_suffix to use the storeConfig suffix. 3393
Added keyboard accessiblity to the MegaMenu component. Users can now navigate through all the MegaMenu links with their keyboards. 3319
Enabled trusted extension vendors to change code outside their namespace, namely within @magento/[packages]. 3266
Enabled Page Builder Row appearances (Full Width, Full Bleed) to work as expected on the Venia storefront. 3221
Implemented new GraphQL caching header that Venia and other storefronts must send to GraphQL. 3278
Updated CSS Module source maps to make CSS className easy to find and change during development. 3407
Added extensibility point (new target) for new Page Builder content types: setContentTypeConfig 3307
Added two new status to Order History page: received (order submitted but not processed) and rejected (failure when placing order). 3431
Updated Workbox packages to version 6.2.4 to fix the backwards compatibility issue we had with our previous version 6.0.2. 3378

Bug fixes

Description PR
Fixed direct GraphQL errors displayed on Venia forms. Replaced with helpful, user-focused errors. 3281
Fixed a checkout error that occurred when Braintree was enabled. Added missing import statement to BraintreeSummary component. 3470
Fixed form issue with Region/State fields not clearing after user changes the Country field from US to UK or UK to US. 3364
Fixed Home page styling on scaffolded apps. 3391
Fixed an issue where editing items in the cart could remove the item after clicking the Update button. 3279
Fixed issue where small images used in the Carousel component could expand into the description area. 3398
Fixed the useFieldState hook in the TextInput and QuantityFields components to prevent false console warnings. The hook checked their states before the fields rendered. 3399
Fixed the region/state codes on billing forms (for countries like France) to display names instead of numbers. 3335
Fixed the ProductImageCarousel to no longer duplicate thumbnails of the product's default variant. 3186
Fixed the Lighthouse warning: Avoid an excessive DOM size. This warning appeared after the implementation of #3115. 3388
Fixed the WishList Edit dialog to remove errors that remained after closing and reopening the dialog. 3405
Fixed the ErrorView component from throwing console warnings on pages with missing translations. 3236
Fixed URL Rewrite to work properly for Venia. 3309
Fixed Page Builder products from showing "Out of Stock" message for products that are in stock. 3336
Fixed the Known Issue from v11.0.0 in which the URL for a suggested category contained two store codes (/default/default/) instead of one, creating a 404 error when selected. 3344
Fixed dependency warnings displayed when scaffolding a new PWA app with yarn create @magento/pwa. 3380
Fixed CSS background-repeat property issue on Safari. 3348
Fixed alignment of "Add to Favorites" icon on product category pages. 3351
Fixed Page Builder product descriptions (Mobile only) from rendering with the wrong HTML tags. All descriptions now use the correct component: RichContent instead of RichText. 3409
Fixed image caching issue where the maxEntries setting on service workers was ignored. This caused the site to slow as the image cache grew with 100s of entries. 3452
Fixed error in SubmenuColumn component that occurred when a sub-category had no children (sub-catagories of its own). 3427
Fixed the InjectManifest build error that occurred when running (yarn run build) on scaffolded apps. 3454
Fixed an Apollo cache issue in which checkout data was not cleared from cache if users switched store views before checkout. 3482

Documentation Updates

Description PR
Added table to show which Adobe Commerce and Magento Open Source features PWA Studio supporst out of the box. 3459
Added additional guidelines for overriding Adapter. 3395
Updated wrappable talons documenation. 3243
Fixed example in TargetableReactComponent page. 3259
Completed migration to AdobeIO PWA Docs site. 3480
Added Commerce feature support table that PWA Studio provides out-of-the-box. 3459
Added a solution to a possible error during SASS loader installation. 3269
Updated Magento capability table. 3467
Fixed grammar in the Internationalization topic. 3274

Breaking Changes

Description PR
Removed Enzyme and @wojtekmaj/enzyme-adapter-react-17 packages. Update any tests that use the Enzyme or @wojtekmaj/enzyme-adapter-react-17 packages. 3393
Changed the UPWARD configuration to prevent a race condition that could prevent yarn build command from emmitting images. Overriden static asset configurations now only take the overriden value, instead of both. 3410
Hundreds of CSS files have been renamed and their components updated to point to the new filenames. 3414
Page loading indicator component refactored/moved to LoadingIndicator. 3308
makeRoutes has changed to also export a list of available routes. 3308
Any use of getUserConfirmation external of Venia must be updated as we are now using this functionality. 3308
Response from useMagentoRoute has changed for loading state. Wrappers should take account of this change. 3353
Added exports to index.js files for Shimmers. 3284
Changed content of categoryContent root component so targetables may change. 3284

Known Issues

Scaffolding projects using npm version 7 or above (npm init @magento/pwa) results in errors. While we investigate, you can use one of the following workarounds:

  1. Use yarn instead: yarn create @magento/pwa.
  2. When installing the scaffolded project, use the --legacy-peer-deps flag to force npm to treat peer dependencies as it did in versions 4-6.

Test Updates

Description PR
New jest tests for Filters components. 3372
Extensibility — Trusted vendors can now modify dependency sources. 3362
Fixed product snaps after icon adjustment. 3362
Fixed local URL support for running Cypress tests with Docker. 3422
New code build test that runs the create-pwa scaffolding app for PRs. pwa-studio-cicd/79
New Cypress test to verify that Page Builder content types render and function correctly in the Venia storefront. 3315
New Cypress test for Page Builder Map. 3346
New Cypress test for Page Builder Dynamic Block. 3326
New Cypress test for Page Builder Divider. 3313
New Cypress test for Page Builder Products. 3331
New Cypress test for Page Builder Text. 3321
New Cypress test for Page Builder Video. 3349
New Cypress test for Page Builder Slider. 3310
New Cypress test for Page Builder Block. 3317
New Cypress test for Page Builder Column. 3326
New Cypress test for Page Builder Row. 3333
New Cypress test for Page Builder Tabs. 3324
MFTF Fix tests because of Mega Menu UI updates (Automate Mega menu) pwa-tests/10
Added Cypress tests to our CICD pipeline so that they will run on GitHub with every PR. pwa-studio-cicd/87
Updated Cypress tests to wait for network responses without relying on explicit waits. 3343
Updated Cypress single and multiple WishList tests. 3257

Repo Maintenance Tasks

Description PR
Updated pwa-studio repo dependencies to clear various GitHub security alerts. 3318
Updated PR template. 3280
Fix CICD Scaffolding job. 3318
Update Community Contributor statistics. 3489

Upgrading from a previous version

Use the steps outlined in this section to update your scaffolded project from 11.0.0 to 12.0.0.
See Upgrading versions for more information about upgrading between PWA Studio versions.

Update dependencies

Open your package.json file and update the PWA Studio package dependencies to the versions associated with this release.
The following table lists the latest versions of each package as of 12.0.0.
Versions that are in bold indicate a version change for this release.

Note:
Your project may not depend on some of the packages listed on this table.

Package Latest version
babel-preset-peregrine 1.1.0
create-pwa 2.0.0
upward-security-headers 1.0.4
venia-adobe-data-layer 1.0.1
venia-sample-backends 0.0.4
venia-sample-language-packs 0.0.4
venia-sample-payments-checkmo 0.0.2
pagebuilder 7.0.0
peregrine 12.0.0
pwa-buildpack 10.0.0
upward-js 5.2.0
upward-spec 5.1.0
venia-concept 12.0.0
venia-ui 9.0.0
magento2-upward-connector 1.3.0
upward-php 1.2.0

Update template files

The following template files contain updates in 12.0.0:

If you did not make any modifications to these files, you can copy and paste the new content over your old template files in your project.
If you made modifications to these files in your project, you will have to manually apply the changes by using git diff on the PWA Studio repository or by using a diff tool.

New template files

The following template files have been added in 12.0.0:

Add these files to your project as part of your project upgrade to 12.0.0.

Don't miss a new pwa-studio release

NewReleases is sending notifications on new releases.