Skip to content
This repository has been archived by the owner on Feb 23, 2024. It is now read-only.

Fix JS console error when COD is enabled and no shipping method is available. #3086

Merged
merged 2 commits into from Aug 31, 2020

Conversation

senadir
Copy link
Member

@senadir senadir commented Aug 31, 2020

Only return selected shipping methods from useSelectShippingRate, this fixes an issue with COD in which we try to see if user can make a payment based on the selected shipping method, the hook returned a broken object { 0: undefined } but it should have returned an empty object instead.

Fixes #2987

How to test the changes in this Pull Request:

  1. Enable COD and limit it to a certain shipping method type.
  2. Add that method to a certain address.
  3. Select another address on the Checkout block, you shouldn't see an error with selectedMethod is undefined on the console.

Changelog

Fix JS console error when COD is enabled and no shipping method is available.

@senadir senadir requested a review from a team as a code owner August 31, 2020 13:27
@senadir senadir requested review from Aljullu and removed request for a team August 31, 2020 13:27
@senadir senadir self-assigned this Aug 31, 2020
@senadir senadir added type: bug The issue/PR concerns a confirmed bug. block: checkout Issues related to the checkout block. status: needs review labels Aug 31, 2020
@senadir senadir modified the milestones: 3.3.0, 3.4.0 Aug 31, 2020
@github-actions
Copy link
Contributor

github-actions bot commented Aug 31, 2020

Size Change: +19 B (0%)

Total Size: 1.11 MB

Filename Size Change
build/cart-frontend.js 69 kB +4 B (0%)
build/cart.js 37.4 kB +6 B (0%)
build/checkout-frontend.js 84.1 kB +3 B (0%)
build/checkout.js 40.8 kB +6 B (0%)
ℹ️ View Unchanged
Filename Size Change
build/active-filters-frontend.js 8.76 kB 0 B
build/active-filters.js 8.83 kB 0 B
build/all-products-frontend.js 31.2 kB 0 B
build/all-products.js 35.7 kB 0 B
build/all-reviews.js 9.76 kB 0 B
build/atomic-block-components/add-to-cart-frontend.js 8.89 kB 0 B
build/atomic-block-components/add-to-cart.js 7.46 kB 0 B
build/atomic-block-components/add-to-cart~atomic-block-components/button.js 3.16 kB 0 B
build/atomic-block-components/add-to-cart~atomic-block-components/image~atomic-block-components/title.js 335 B 0 B
build/atomic-block-components/button-frontend.js 2.02 kB 0 B
build/atomic-block-components/button.js 835 B 0 B
build/atomic-block-components/category-list-frontend.js 469 B 0 B
build/atomic-block-components/category-list.js 475 B 0 B
build/atomic-block-components/image-frontend.js 1.71 kB 0 B
build/atomic-block-components/image.js 1.15 kB 0 B
build/atomic-block-components/price-frontend.js 2.1 kB 0 B
build/atomic-block-components/price.js 2.13 kB 0 B
build/atomic-block-components/rating-frontend.js 524 B 0 B
build/atomic-block-components/rating.js 527 B 0 B
build/atomic-block-components/sale-badge-frontend.js 863 B 0 B
build/atomic-block-components/sale-badge.js 864 B 0 B
build/atomic-block-components/sku-frontend.js 389 B 0 B
build/atomic-block-components/sku.js 394 B 0 B
build/atomic-block-components/stock-indicator-frontend.js 568 B 0 B
build/atomic-block-components/stock-indicator.js 571 B 0 B
build/atomic-block-components/summary-frontend.js 918 B 0 B
build/atomic-block-components/summary.js 925 B 0 B
build/atomic-block-components/tag-list-frontend.js 466 B 0 B
build/atomic-block-components/tag-list.js 472 B 0 B
build/atomic-block-components/title-frontend.js 1.22 kB 0 B
build/atomic-block-components/title.js 1.05 kB 0 B
build/attribute-filter-frontend.js 18.1 kB 0 B
build/attribute-filter.js 12.4 kB 0 B
build/blocks.js 3.54 kB 0 B
build/editor-rtl.css 13.9 kB 0 B
build/editor.css 13.9 kB 0 B
build/featured-category.js 7.7 kB 0 B
build/featured-product.js 9.94 kB 0 B
build/handpicked-products.js 7.34 kB 0 B
build/price-filter-frontend.js 14.4 kB 0 B
build/price-filter.js 10.2 kB 0 B
build/product-best-sellers.js 7.42 kB 0 B
build/product-categories.js 3.23 kB 0 B
build/product-category.js 8.35 kB 0 B
build/product-new.js 7.58 kB 0 B
build/product-on-sale.js 7.96 kB 0 B
build/product-search.js 3.54 kB 0 B
build/product-tag.js 6.49 kB 0 B
build/product-top-rated.js 7.55 kB 0 B
build/products-by-attribute.js 8.29 kB 0 B
build/reviews-by-category.js 11.8 kB 0 B
build/reviews-by-product.js 13.3 kB 0 B
build/reviews-frontend.js 9.35 kB 0 B
build/single-product-frontend.js 34 kB 0 B
build/single-product.js 10.1 kB 0 B
build/style-rtl.css 18 kB 0 B
build/style.css 18 kB 0 B
build/vendors-style-rtl.css 1.03 kB 0 B
build/vendors-style.css 1.03 kB 0 B
build/vendors.js 416 kB 0 B
build/vendors~atomic-block-components/price-frontend.js 5.65 kB 0 B
build/wc-blocks-data.js 7.09 kB 0 B
build/wc-blocks-middleware.js 931 B 0 B
build/wc-blocks-registry.js 2.28 kB 0 B
build/wc-payment-method-bacs.js 790 B 0 B
build/wc-payment-method-cheque.js 787 B 0 B
build/wc-payment-method-cod.js 875 B 0 B
build/wc-payment-method-paypal.js 831 B 0 B
build/wc-payment-method-stripe.js 11.9 kB 0 B
build/wc-settings.js 2.33 kB 0 B
build/wc-shared-context.js 1.53 kB 0 B
build/wc-shared-hocs.js 1.66 kB 0 B

compressed-size-action

Copy link
Contributor

@Aljullu Aljullu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This solution looks good to me. 👍

If I understand it correctly, that means selectedShippingRates will only contain packages that have a selected shipping rate, correct? Do you think we could add this info to the doc comment above useSelectShippingRate? I feel this area might be confusing so maybe it's better to explicitly explain it.

@senadir senadir force-pushed the fix/js-error-with-cod-and-shipping branch from 1716e18 to ee809a2 Compare August 31, 2020 15:24
@senadir senadir merged commit 761de3d into main Aug 31, 2020
@senadir senadir deleted the fix/js-error-with-cod-and-shipping branch August 31, 2020 16:15
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
block: checkout Issues related to the checkout block. type: bug The issue/PR concerns a confirmed bug.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

JS error when selecting an address with no available shipping options
3 participants