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

Fix default stockStatusOptions in tag and attribute blocks #5590

Merged
merged 7 commits into from
Jan 19, 2022

Conversation

mikejolley
Copy link
Member

@mikejolley mikejolley commented Jan 18, 2022

There is an issue with the default value of stockStatusOptions in the Products by Attribute and Products by tag blocks which causes a block error when using the stock filter.

We need an array of keys, rather than objects. This PR fixes this.

Additionally, in testing we found some strange issues where preview state did not match selections. This is in part a UI issue but to improve this I've:

  1. Added 400ms debounce to the controls
  2. Swapped checkbox controls for toggles to indicate status
  3. Made it so if all boxes are unchecked, no statuses get rendered

Screenshot 2022-01-18 at 18 15 12

Testing

How to test the changes in this Pull Request:

  1. Insert Products by Attribute block
  2. Click the stock status control in the inspector
  3. Confirm toggles are displayed without an error.
  4. Repeat for Products by tag

For the blocks, also check:

  • Toggling stock options
  • When you toggle, after a small 400ms delay the preview should update
  • If you deselect all checkboxes, confirm no products are rendered
  • Check the frontend. Does the product view match backend?

cc @gigitux

These should be an array of keys, not objects.
@mikejolley mikejolley added status: needs review status: blocker Used on issues or pulls that block work from being released. labels Jan 18, 2022
@mikejolley mikejolley self-assigned this Jan 18, 2022
@mikejolley mikejolley added this to the 6.8.0 milestone Jan 18, 2022
@rubikuserbot rubikuserbot requested review from a team and nielslange and removed request for a team January 18, 2022 14:17
@github-actions
Copy link
Contributor

github-actions bot commented Jan 18, 2022

Size Change: -2.65 kB (0%)

Total Size: 815 kB

Filename Size Change
build/active-filters.js 7.1 kB -3 B (0%)
build/all-products.js 35.2 kB +1 B (0%)
build/all-reviews.js 8.39 kB +2 B (0%)
build/atomic-block-components/add-to-cart--atomic-block-components/button--atomic-block-components/image---a7e2bb9b.js 2.67 kB -6 B (0%)
build/atomic-block-components/add-to-cart--atomic-block-components/button.js 1.48 kB -1 B (0%)
build/atomic-block-components/add-to-cart.js 6.61 kB -4 B (0%)
build/atomic-block-components/button.js 851 B +1 B (0%)
build/atomic-block-components/image.js 1.05 kB -1 B (0%)
build/atomic-block-components/price.js 1.7 kB -1 B (0%)
build/atomic-block-components/title.js 929 B -1 B (0%)
build/attribute-filter.js 12.7 kB +15 B (0%)
build/cart.js 44.5 kB -5 B (0%)
build/checkout.js 47.1 kB -2 B (0%)
build/featured-category.js 8.55 kB -3 B (0%)
build/handpicked-products.js 7.33 kB -2 B (0%)
build/mini-cart-contents.js 3.6 kB +2 B (0%)
build/mini-cart.js 6.46 kB -2 B (0%)
build/price-filter.js 8.92 kB -3 B (0%)
build/product-best-sellers.js 7.54 kB -5 B (0%)
build/product-categories.js 3.47 kB -1 B (0%)
build/product-category.js 8.68 kB -431 B (-5%)
build/product-new.js 7.99 kB -449 B (-5%)
build/product-on-sale.js 8.37 kB -441 B (-5%)
build/product-tag.js 8.08 kB -423 B (-5%)
build/product-top-rated.js 7.96 kB -451 B (-5%)
build/products-by-attribute.js 8.79 kB -423 B (-5%)
build/reviews-by-product.js 12.9 kB -6 B (0%)
build/single-product.js 10.5 kB -4 B (0%)
build/stock-filter.js 6.82 kB -11 B (0%)
build/wc-blocks-vendors.js 65.5 kB +5 B (0%)
ℹ️ View Unchanged
Filename Size
build/active-filters-frontend.js 6.21 kB
build/all-products-frontend.js 18.6 kB
build/atomic-block-components/add-to-cart--atomic-block-components/button--atomic-block-components/image---8f355022.js 238 B
build/atomic-block-components/add-to-cart-frontend.js 7.05 kB
build/atomic-block-components/button-frontend.js 1.48 kB
build/atomic-block-components/category-list-frontend.js 458 B
build/atomic-block-components/category-list.js 460 B
build/atomic-block-components/image-frontend.js 1.37 kB
build/atomic-block-components/price-frontend.js 1.74 kB
build/atomic-block-components/rating-frontend.js 699 B
build/atomic-block-components/rating.js 700 B
build/atomic-block-components/sale-badge-frontend.js 624 B
build/atomic-block-components/sale-badge.js 622 B
build/atomic-block-components/sku-frontend.js 386 B
build/atomic-block-components/sku.js 386 B
build/atomic-block-components/stock-indicator--atomic-block-components/summary--atomic-block-components/title.js 451 B
build/atomic-block-components/stock-indicator-frontend.js 924 B
build/atomic-block-components/stock-indicator.js 626 B
build/atomic-block-components/summary-frontend.js 1.22 kB
build/atomic-block-components/summary.js 925 B
build/atomic-block-components/tag-list-frontend.js 460 B
build/atomic-block-components/tag-list.js 459 B
build/atomic-block-components/title-frontend.js 1.2 kB
build/attribute-filter-frontend.js 16.3 kB
build/blocks-checkout.js 17.6 kB
build/cart-blocks/accepted-payment-methods-frontend.js 1.14 kB
build/cart-blocks/checkout-button-frontend.js 1.14 kB
build/cart-blocks/empty-cart-frontend.js 345 B
build/cart-blocks/express-payment-frontend.js 4.86 kB
build/cart-blocks/filled-cart-frontend.js 767 B
build/cart-blocks/items-frontend.js 299 B
build/cart-blocks/line-items-frontend.js 5.49 kB
build/cart-blocks/order-summary-frontend.js 8.97 kB
build/cart-blocks/totals-frontend.js 321 B
build/cart-frontend.js 45.4 kB
build/checkout-blocks/actions-frontend.js 1.44 kB
build/checkout-blocks/billing-address--checkout-blocks/shipping-address-frontend.js 4.22 kB
build/checkout-blocks/billing-address-frontend.js 887 B
build/checkout-blocks/contact-information-frontend.js 2.94 kB
build/checkout-blocks/express-payment-frontend.js 5.15 kB
build/checkout-blocks/fields-frontend.js 344 B
build/checkout-blocks/order-note-frontend.js 1.13 kB
build/checkout-blocks/order-summary-frontend.js 11.4 kB
build/checkout-blocks/payment-frontend.js 7.39 kB
build/checkout-blocks/shipping-address-frontend.js 973 B
build/checkout-blocks/shipping-methods-frontend.js 4.81 kB
build/checkout-blocks/terms-frontend.js 1.21 kB
build/checkout-blocks/totals-frontend.js 324 B
build/checkout-frontend.js 47.5 kB
build/featured-product.js 9.9 kB
build/legacy-template.js 2.35 kB
build/mini-cart-component-frontend.js 14.2 kB
build/mini-cart-frontend.js 1.76 kB
build/price-filter-frontend.js 12.6 kB
build/price-format.js 1.18 kB
build/product-search.js 2.47 kB
build/reviews-by-category.js 11.9 kB
build/reviews-frontend.js 7.29 kB
build/single-product-frontend.js 22.1 kB
build/stock-filter-frontend.js 6.81 kB
build/vendors--atomic-block-components/add-to-cart--cart-blocks/order-summary--checkout-blocks/billing-ad--c5eb4dcd-frontend.js 19 kB
build/vendors--atomic-block-components/add-to-cart-frontend.js 7.44 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.14 kB
build/vendors--cart-blocks/order-summary--checkout-blocks/billing-address--checkout-blocks/order-summary---eb4d2cec-frontend.js 4.74 kB
build/wc-blocks-data.js 8.84 kB
build/wc-blocks-editor-style-rtl.css 4.58 kB
build/wc-blocks-editor-style.css 4.58 kB
build/wc-blocks-google-analytics.js 1.56 kB
build/wc-blocks-middleware.js 949 B
build/wc-blocks-registry.js 2.7 kB
build/wc-blocks-shared-context.js 1.52 kB
build/wc-blocks-shared-hocs.js 1.14 kB
build/wc-blocks-style-rtl.css 21.7 kB
build/wc-blocks-style.css 21.7 kB
build/wc-blocks-vendors-style-rtl.css 1.28 kB
build/wc-blocks-vendors-style.css 1.28 kB
build/wc-blocks.js 2.96 kB
build/wc-payment-method-bacs.js 816 B
build/wc-payment-method-cheque.js 811 B
build/wc-payment-method-cod.js 909 B
build/wc-payment-method-paypal.js 837 B
build/wc-settings.js 2.61 kB

compressed-size-action

@mikejolley mikejolley requested a review from gigitux January 18, 2022 18:17
Copy link
Member

@nielslange nielslange left a comment

Choose a reason for hiding this comment

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

Functionality-wise, the PR works as expected.


Not directly related to this PR, but I noticed that we're using two different labels for the same functionality. Do you think it's worth to add this minor fix to this PR or shall I create a separate issue for that?

stock-level

Stock level

  • /assets/js/blocks/product-new/block.js
  • /assets/js/blocks/stock-filter/index.js

filter-by-stock-status

Filter by stock status

  • /assets/js/blocks/product-category/block.js
  • /assets/js/blocks/product-on-sale/block.js
  • /assets/js/blocks/product-tag/block.js
  • /assets/js/blocks/product-top-rated/block.js
  • /assets/js/blocks/products-by-attribute/block.js

@mikejolley
Copy link
Member Author

@nielslange I changed that too, want to look again or good to go?

Copy link
Contributor

@gigitux gigitux left a comment

Choose a reason for hiding this comment

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

LGTM!

Thanks for working on this fix!

@mikejolley mikejolley merged commit c181ad2 into trunk Jan 19, 2022
@mikejolley mikejolley deleted the fix/stockstatusoptions-defaults branch January 19, 2022 11:42
gigitux pushed a commit that referenced this pull request Jan 19, 2022
* Fix default stockStatusOptions in tag and attribute blocks

These should be an array of keys, not objects.

* Fix stockStatus definition on PHP side

* Swap state to debounce.

* Improve presentation of stock filters

* Remove state usage for display options

* Remove debounce

* Consistent panel titles
@nielslange
Copy link
Member

@nielslange I changed that too, want to look again or good to go?

Sorry, @mikejolley. I missed your comment and @gigitux was too fast with merging. All good, though. Thanks for considering that change. 🙌

gigitux added a commit that referenced this pull request Jan 20, 2022
* Empty commit for release pull request

* Update readme.txt with 6.8.0 changelog

* initialize_session if it does not yet exist before calling the session class (#5577)

* Add testing notes for 6.8.0

* update testing release notes

* update testing notes

* Fix default `stockStatusOptions` in tag and attribute blocks (#5590)

* Fix default stockStatusOptions in tag and attribute blocks

These should be an array of keys, not objects.

* Fix stockStatus definition on PHP side

* Swap state to debounce.

* Improve presentation of stock filters

* Remove state usage for display options

* Remove debounce

* Consistent panel titles

* Fix global style for Product Summary block, Product Stock Indicator block, and Product Title block (#5595)

* Fix global style for Product Summary block, Product Stock Indicator block, and ProductTitle block

Fix global style for Product Summary block, Product Stock Indicator block, and ProductTitle block

* add feature flag

* fix lint errors

* fix global style bugs on Product Title block

* update testing release notes

* update new build with fixes

* Restore correct font style when the block is loaded in the editor (#5600)

* Restore correct font style when the block is loaded in the editor

Restore correct font style when the block is loaded in the editor

* fix style on Twenty Twenty theme

* update link for download the zip of the new release

* update readme.txt

* Bumping version strings to new version.

Co-authored-by: github-actions <[email protected]>
Co-authored-by: Luigi <[email protected]>
Co-authored-by: Mike Jolley <[email protected]>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
status: blocker Used on issues or pulls that block work from being released.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants