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

Fix: Spilled icecream error with Filter Products by Attribute when no attribute was selected #4847

Merged
merged 6 commits into from
Oct 15, 2021

Conversation

dinhtungdu
Copy link
Member

This PR:

  • Fixes the Spilled ice cream error on the front end when the site has no attribute or no attribute was selected for the block.
  • Adds a warning in the editor when users didn't select any attribute.
  • Adds a warning in the editor when the site doesn't have any attribute term assigned to products.
  • Prevents flashing title on the front-end if the users didn't select attribute or the site doesn't have any term assigned.
  • Fixes the preview error when previewing the block without selecting any attributed, see Spilled icecream (js error) with Filter Products by Attribute when store has no attributes #2441 (comment).

Fixes #2441

Screenshots

New warning messages:

image

Testing

Automated Tests

  • Changes in this PR are covered by Automated Tests.
    • Unit tests
    • E2E tests

Manual Testing

How to test the changes in this Pull Request:

  1. Adding a new Filter by Attribute block.
  2. Click Save button without selecting any attribute.
  3. See the warning message.
  4. Edit the block, select an attribute that isn't assigned to any product.
  5. See the warning message.

Performance Impact

Changelog

Fix: Render error of Filter by Attribute block when no attribute was selected.

@dinhtungdu dinhtungdu added status: needs review type: bug The issue/PR concerns a confirmed bug. block: filter by attribute Issues related to the Filter by Attribute block. labels Sep 26, 2021
@dinhtungdu dinhtungdu self-assigned this Sep 26, 2021
@nerrad nerrad requested review from a team and tjcafferkey and removed request for a team September 26, 2021 14:58
@github-actions
Copy link
Contributor

github-actions bot commented Sep 26, 2021

Size Change: +215 B (0%)

Total Size: 1.23 MB

Filename Size Change
build/active-filters-frontend.js 8.35 kB -5 B (0%)
build/all-products-frontend.js 23.1 kB -1 B (0%)
build/atomic-block-components/add-to-cart-frontend.js 8.52 kB +3 B (0%)
build/atomic-block-components/image-frontend.js 1.88 kB -1 B (0%)
build/atomic-block-components/summary-frontend.js 909 B +1 B (0%)
build/atomic-block-components/title-frontend.js 1.47 kB -2 B (0%)
build/attribute-filter-frontend.js 18.7 kB +138 B (+1%)
build/attribute-filter.js 12.3 kB +97 B (+1%)
build/cart-blocks/checkout-button-frontend.js 2.37 kB -2 B (0%)
build/cart-blocks/express-payment-frontend.js 1.58 kB -1 B (0%)
build/cart-blocks/filled-cart-frontend.js 780 B -1 B (0%)
build/cart-blocks/line-items-frontend.js 5.53 kB +2 B (0%)
build/cart-blocks/order-summary-frontend.js 7.3 kB -4 B (0%)
build/cart-frontend.js 91.5 kB -9 B (0%)
build/cart-i2-frontend.js 52.5 kB -2 B (0%)
build/checkout-blocks/actions-frontend.js 1.47 kB -2 B (0%)
build/checkout-blocks/billing-address-frontend.js 2.64 kB +2 B (0%)
build/checkout-blocks/order-summary-frontend.js 12.7 kB -3 B (0%)
build/checkout-blocks/payment-frontend.js 4.59 kB +3 B (0%)
build/checkout-blocks/shipping-methods-frontend.js 5.55 kB +3 B (0%)
build/checkout-frontend.js 54.4 kB -3 B (0%)
build/mini-cart-component-frontend.js 36.7 kB -6 B (0%)
build/price-filter-frontend.js 14.4 kB +2 B (0%)
build/reviews-frontend.js 8.96 kB +2 B (0%)
build/single-product-frontend.js 26.2 kB +3 B (0%)
build/stock-filter-frontend.js 8.77 kB +4 B (0%)
build/vendors--atomic-block-components/add-to-cart-frontend.js 4.77 kB -3 B (0%)
ℹ️ View Unchanged
Filename Size
build/active-filters.js 8.01 kB
build/all-products.js 37.2 kB
build/all-reviews.js 9.56 kB
build/atomic-block-components/add-to-cart--atomic-block-components/button--atomic-block-components/image---a7e2bb9b.js 2.67 kB
build/atomic-block-components/add-to-cart--atomic-block-components/button.js 1.81 kB
build/atomic-block-components/add-to-cart--atomic-block-components/image--atomic-block-components/title.js 332 B
build/atomic-block-components/add-to-cart.js 7.84 kB
build/atomic-block-components/button-frontend.js 1.74 kB
build/atomic-block-components/button.js 875 B
build/atomic-block-components/category-list-frontend.js 466 B
build/atomic-block-components/category-list.js 471 B
build/atomic-block-components/image.js 1.35 kB
build/atomic-block-components/price-frontend.js 2.13 kB
build/atomic-block-components/price.js 2.11 kB
build/atomic-block-components/rating-frontend.js 563 B
build/atomic-block-components/rating.js 567 B
build/atomic-block-components/sale-badge-frontend.js 861 B
build/atomic-block-components/sale-badge.js 869 B
build/atomic-block-components/sku-frontend.js 392 B
build/atomic-block-components/sku.js 392 B
build/atomic-block-components/stock-indicator-frontend.js 612 B
build/atomic-block-components/stock-indicator.js 611 B
build/atomic-block-components/summary.js 912 B
build/atomic-block-components/tag-list-frontend.js 467 B
build/atomic-block-components/tag-list.js 472 B
build/atomic-block-components/title.js 1.29 kB
build/blocks-checkout.js 21.1 kB
build/cart-blocks/empty-cart-frontend.js 327 B
build/cart-blocks/express-payment--checkout-blocks/express-payment--checkout-blocks/payment-frontend.js 4.73 kB
build/cart-blocks/items-frontend.js 254 B
build/cart-blocks/order-summary--checkout-blocks/billing-address--checkout-blocks/shipping-address-frontend.js 3.69 kB
build/cart-blocks/totals-frontend.js 269 B
build/cart-i2.js 47.8 kB
build/cart.js 46.5 kB
build/checkout-blocks/contact-information-frontend.js 3.88 kB
build/checkout-blocks/express-payment-frontend.js 1.92 kB
build/checkout-blocks/fields-frontend.js 290 B
build/checkout-blocks/order-note-frontend.js 1.56 kB
build/checkout-blocks/shipping-address-frontend.js 3.04 kB
build/checkout-blocks/terms-frontend.js 1.64 kB
build/checkout-blocks/totals-frontend.js 271 B
build/checkout.js 52.7 kB
build/featured-category.js 7.73 kB
build/featured-product.js 9.42 kB
build/handpicked-products.js 6.26 kB
build/mini-cart-frontend.js 2.29 kB
build/mini-cart.js 2.34 kB
build/price-filter.js 9.66 kB
build/price-format.js 1.37 kB
build/product-best-sellers.js 6.62 kB
build/product-categories.js 3.38 kB
build/product-category.js 7.49 kB
build/product-new.js 6.77 kB
build/product-on-sale.js 7.13 kB
build/product-search.js 2.69 kB
build/product-tag.js 6.58 kB
build/product-top-rated.js 6.74 kB
build/products-by-attribute.js 7.7 kB
build/reviews-by-category.js 11.5 kB
build/reviews-by-product.js 13 kB
build/single-product.js 9.76 kB
build/stock-filter.js 7.81 kB
build/vendors--atomic-block-components/add-to-cart--cart-blocks/order-summary--checkout-blocks/billing-ad--c5eb4dcd-frontend.js 16.2 kB
build/vendors--atomic-block-components/price--cart-blocks/line-items--cart-blocks/order-summary--checkout--8a3571de-frontend.js 5.71 kB
build/vendors--cart-blocks/line-items--checkout-blocks/order-summary-frontend.js 3.1 kB
build/vendors--cart-blocks/order-summary--checkout-blocks/billing-address--checkout-blocks/order-summary---eb4d2cec-frontend.js 5.02 kB
build/wc-blocks-data.js 11.3 kB
build/wc-blocks-editor-style-rtl.css 15.6 kB
build/wc-blocks-editor-style.css 15.6 kB
build/wc-blocks-google-analytics.js 1.98 kB
build/wc-blocks-middleware.js 1.47 kB
build/wc-blocks-registry.js 3.71 kB
build/wc-blocks-shared-context.js 1.54 kB
build/wc-blocks-shared-hocs.js 1.75 kB
build/wc-blocks-style-rtl.css 20.5 kB
build/wc-blocks-style.css 20.5 kB
build/wc-blocks-vendors-style-rtl.css 1.37 kB
build/wc-blocks-vendors-style.css 1.37 kB
build/wc-blocks-vendors.js 254 kB
build/wc-blocks.js 3.5 kB
build/wc-payment-method-bacs.js 806 B
build/wc-payment-method-cheque.js 806 B
build/wc-payment-method-cod.js 898 B
build/wc-payment-method-paypal.js 839 B
build/wc-payment-method-stripe.js 12.2 kB
build/wc-settings.js 2.91 kB

compressed-size-action

@dinhtungdu dinhtungdu changed the title fix: return early if no attribute is selected Fix: Spilled icecream error with Filter Products by Attribute when no attribute was selected Oct 4, 2021
Copy link
Contributor

@tjcafferkey tjcafferkey left a comment

Choose a reason for hiding this comment

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

This tests well for me and code changes look good. However there's a conflict that will need resolving now.

@dinhtungdu
Copy link
Member Author

@tjcafferkey I'm sorry for the late reply! I fixed the merge conflict. Can you take another look at this?

@tjcafferkey
Copy link
Contributor

@dinhtungdu LGTM 😄 thanks for solving the conflict.

@dinhtungdu dinhtungdu merged commit f22c8b6 into trunk Oct 15, 2021
@dinhtungdu dinhtungdu deleted the fix/2441 branch October 15, 2021 14:50
@haszari
Copy link
Member

haszari commented Oct 17, 2021

Nice to see this get fixed, thanks team! 🙌

@frontdevde frontdevde added this to the 6.2.0 milestone Oct 26, 2021
jonny-bull pushed a commit to jonny-bull/woocommerce-gutenberg-products-block that referenced this pull request Dec 14, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
block: filter by attribute Issues related to the Filter by Attribute block. type: bug The issue/PR concerns a confirmed bug.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Spilled icecream (js error) with Filter Products by Attribute when store has no attributes
4 participants