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

Conversation

danieldudzic
Copy link
Contributor

@danieldudzic danieldudzic commented Sep 7, 2023

What

The goal of this PR is to ensure the Product Gallery block displays correctly in all setting configurations and is not dependent on the neighboring blocks.

Fixes #10838 #10750

Why

This PR attempts to rectify styling shortcomings that arose from various Product Gallery settings being added and adding complexity.

Testing Instructions

  1. Using a block theme, go to Appearance > Editor.
  2. Go to Templates > Single Product.
  3. Make sure you are using the blockified template.
  4. Add the Product Gallery block (replacing the legacy Product Image Gallery block).
  5. After completing the below steps, go back to step 4. and insert the Product Gallery block just above Product Details tabs, so that it doesn't have any neighboring columns.
  6. Verify that the Product Gallery displays correctly (doesn't overflow etc.) in all possible configurations of the Thumbnails Positon setting and the Next/Prev Buttons appearance setting, both in the editor and frontend.
  • Do not include in the Testing Notes
  • Should be tested by the development team exclusively

Screenshots or screencast

Before After
Single_Product_‹_Template_‹_Editor_‹_newproductgallery_—_WordPress-2 Single_Product_‹_Template_‹_Editor_‹_newproductgallery_—_WordPress
Before After
V-Neck_T-Shirt_–_newproductgallery-2 V-Neck_T-Shirt_–_newproductgallery

WooCommerce Visibility

Required:

  • WooCommerce Core
  • Feature plugin
  • Experimental
  • N/A

Checklist

Required:

  • This PR has either a [type] label or a [skip-changelog] label.
  • This PR is assigned to a milestone.

Conditional:

  • This PR has a changelog description (if [skip-changelog] label is not present).
  • This PR adds/removes a feature flag & I've updated this doc.
  • This PR adds/removes an experimental interfaces, and I've updated this doc.
  • This PR has been accessibility tested.
  • This PR has had any necessary documentation added/updated.

Changelog

Product Gallery: Fix display issues in the editor and the page.

@danieldudzic danieldudzic added type: bug The issue/PR concerns a confirmed bug. block: product gallery Issues related to the Product Gallery block. labels Sep 7, 2023
@danieldudzic danieldudzic added this to the 10.8.3 milestone Sep 7, 2023
@woocommercebot woocommercebot requested review from a team and nefeline and removed request for a team September 7, 2023 12:06
@danieldudzic danieldudzic modified the milestones: 10.8.3, 11.1.0 Sep 7, 2023
@github-actions
Copy link
Contributor

github-actions bot commented Sep 7, 2023

The release ZIP for this PR is accessible via:

https://wcblocks.wpcomstaging.com/wp-content/uploads/woocommerce-gutenberg-products-block-10867.zip

Script Dependencies Report

There is no changed script dependency between this branch and trunk.

This comment was automatically generated by the ./github/compare-assets action.

TypeScript Errors Report

  • Files with errors: 507
  • Total errors: 2304

⚠️ ⚠️ This PR introduces new TS errors on 1 files:

assets/js/blocks/product-gallery/index.tsx

comments-aggregator

@danieldudzic
Copy link
Contributor Author

danieldudzic commented Sep 7, 2023

Known conflict/limitation

There's one compromise in the below solution for the outside Next/Previous Button mode:

Due to the fact that the Sale Badge supports margin Global Styles, and doesn't have an additional wrapper in the editor (such wrapper exists on the frontend and therefore the issue doesn't exist) there's a margin clash:

Single_Product_‹_Template_‹_Editor_‹_newproductgallery_—_WordPress  
I don't see a simple fix.

 

The potential 2 fixes I see (without removing the current margin-based styling fix) are:

  • Add a wrapper to the Sale Badge in the editor
  • Remove the margin support from the Sale Bade (when used in the Product Gallery) - not sure if this is even possible.

@github-actions
Copy link
Contributor

github-actions bot commented Sep 7, 2023

Size Change: -685 B (0%)

Total Size: 1.47 MB

Filename Size Change
build/product-gallery-large-image-next-previous-rtl.css 0 B -491 B (removed) 🏆
build/product-gallery-large-image-next-previous.css 0 B -493 B (removed) 🏆
build/product-gallery-large-image-next-previous.js 4.15 kB +211 B (+5%) 🔍
build/product-gallery-large-image-rtl.css 0 B -391 B (removed) 🏆
build/product-gallery-large-image.css 0 B -388 B (removed) 🏆
build/product-gallery-large-image.js 2.47 kB +815 B (+49%) 🚨
build/product-gallery-pager-rtl.css 0 B -296 B (removed) 🏆
build/product-gallery-pager.css 0 B -296 B (removed) 🏆
build/product-gallery-pager.js 3.4 kB +31 B (+1%)
build/product-gallery-rtl.css 870 B +183 B (+27%) 🚨
build/product-gallery-thumbnails-rtl.css 0 B -294 B (removed) 🏆
build/product-gallery-thumbnails.css 0 B -295 B (removed) 🏆
build/product-gallery-thumbnails.js 3.81 kB +24 B (+1%)
build/product-gallery.css 871 B +183 B (+27%) 🚨
build/product-gallery.js 10 kB +636 B (+7%) 🔍
build/wc-blocks-editor-style-rtl.css 7.05 kB +85 B (+1%)
build/wc-blocks-editor-style.css 7.05 kB +87 B (+1%)
build/wc-blocks-vendors.js 64 kB +4 B (0%)
ℹ️ View Unchanged
Filename Size
build/1796-frontend.js 23.2 kB
build/4124-frontend.js 23.9 kB
build/7138-frontend.js 24.2 kB
build/8280-frontend.js 8.48 kB
build/active-filters-frontend.js 7.03 kB
build/active-filters-rtl.css 2 kB
build/active-filters-wrapper-frontend.js 7.39 kB
build/active-filters-wrapper-rtl.css 1.86 kB
build/active-filters-wrapper.css 1.86 kB
build/active-filters.css 2 kB
build/active-filters.js 6.5 kB
build/add-to-cart-form-rtl.css 375 B
build/add-to-cart-form.css 373 B
build/all-products-frontend.js 9.87 kB
build/all-products-rtl.css 4.56 kB
build/all-products.css 4.56 kB
build/all-products.js 40 kB
build/all-reviews-rtl.css 1.79 kB
build/all-reviews.css 1.79 kB
build/all-reviews.js 7.84 kB
build/attribute-filter-frontend.js 20.4 kB
build/attribute-filter-rtl.css 4.16 kB
build/attribute-filter-wrapper-frontend.js 21.6 kB
build/attribute-filter-wrapper-rtl.css 1.65 kB
build/attribute-filter-wrapper.css 1.65 kB
build/attribute-filter.css 4.14 kB
build/attribute-filter.js 11.7 kB
build/base-components-stock-filter-wrapper~attribute-filter-wrapper~rating-filter-wrapper-style.scss-rtl.css 3.12 kB
build/base-components-stock-filter-wrapper~attribute-filter-wrapper~rating-filter-wrapper-style.scss.css 3.12 kB
build/blocks-checkout.js 33.8 kB
build/breadcrumbs-rtl.css 234 B
build/breadcrumbs.css 234 B
build/breadcrumbs.js 2.03 kB
build/cart-blocks/cart-accepted-payment-methods-frontend.js 1.4 kB
build/cart-blocks/cart-accepted-payment-methods-style.js 153 B
build/cart-blocks/cart-cross-sells-frontend.js 268 B
build/cart-blocks/cart-cross-sells-products-frontend.js 10.9 kB
build/cart-blocks/cart-cross-sells-products-style.js 153 B
build/cart-blocks/cart-cross-sells-style.js 269 B
build/cart-blocks/cart-express-payment-frontend.js 5.36 kB
build/cart-blocks/cart-express-payment-style.js 155 B
build/cart-blocks/cart-items-frontend.js 273 B
build/cart-blocks/cart-items-style.js 240 B
build/cart-blocks/cart-line-items-frontend.js 14.4 kB
build/cart-blocks/cart-line-items-style.js 153 B
build/cart-blocks/cart-order-summary-frontend.js 3.5 kB
build/cart-blocks/cart-order-summary-style.js 341 B
build/cart-blocks/cart-totals-frontend.js 290 B
build/cart-blocks/cart-totals-style.js 253 B
build/cart-blocks/empty-cart-frontend.js 367 B
build/cart-blocks/empty-cart-style.js 365 B
build/cart-blocks/filled-cart-frontend.js 605 B
build/cart-blocks/filled-cart-style.js 333 B
build/cart-blocks/order-summary-coupon-form-frontend.js 3.88 kB
build/cart-blocks/order-summary-coupon-form-style.js 155 B
build/cart-blocks/order-summary-discount-frontend.js 3.98 kB
build/cart-blocks/order-summary-discount-style.js 155 B
build/cart-blocks/order-summary-fee-frontend.js 288 B
build/cart-blocks/order-summary-fee-style.js 153 B
build/cart-blocks/order-summary-heading-frontend.js 346 B
build/cart-blocks/order-summary-heading-style.js 351 B
build/cart-blocks/order-summary-shipping-frontend.js 3.53 kB
build/cart-blocks/order-summary-shipping-style.js 204 B
build/cart-blocks/order-summary-subtotal-frontend.js 291 B
build/cart-blocks/order-summary-subtotal-style.js 154 B
build/cart-blocks/order-summary-taxes-frontend.js 456 B
build/cart-blocks/order-summary-taxes-style.js 202 B
build/cart-blocks/proceed-to-checkout-frontend.js 7.59 kB
build/cart-blocks/proceed-to-checkout-style.js 1.08 kB
build/cart-frontend.js 28.9 kB
build/cart-rtl.css 9.9 kB
build/cart.css 9.89 kB
build/cart.js 39.6 kB
build/catalog-sorting-rtl.css 259 B
build/catalog-sorting.css 259 B
build/catalog-sorting.js 1.69 kB
build/checkout-blocks/actions-frontend.js 8.11 kB
build/checkout-blocks/actions-style.js 1.01 kB
build/checkout-blocks/billing-address-frontend.js 9.76 kB
build/checkout-blocks/billing-address-style.js 573 B
build/checkout-blocks/contact-information-frontend.js 2.08 kB
build/checkout-blocks/contact-information-style.js 651 B
build/checkout-blocks/express-payment-frontend.js 5.89 kB
build/checkout-blocks/fields-frontend.js 297 B
build/checkout-blocks/fields-style.js 271 B
build/checkout-blocks/order-note-frontend.js 1.14 kB
build/checkout-blocks/order-summary-cart-items-frontend.js 11.8 kB
build/checkout-blocks/order-summary-cart-items-style.js 153 B
build/checkout-blocks/order-summary-coupon-form-frontend.js 3.97 kB
build/checkout-blocks/order-summary-coupon-form-style.js 155 B
build/checkout-blocks/order-summary-discount-frontend.js 4.06 kB
build/checkout-blocks/order-summary-discount-style.js 154 B
build/checkout-blocks/order-summary-fee-frontend.js 291 B
build/checkout-blocks/order-summary-fee-style.js 155 B
build/checkout-blocks/order-summary-frontend.js 3.58 kB
build/checkout-blocks/order-summary-shipping-frontend.js 3.53 kB
build/checkout-blocks/order-summary-shipping-style.js 154 B
build/checkout-blocks/order-summary-style.js 341 B
build/checkout-blocks/order-summary-subtotal-frontend.js 289 B
build/checkout-blocks/order-summary-subtotal-style.js 155 B
build/checkout-blocks/order-summary-taxes-frontend.js 456 B
build/checkout-blocks/order-summary-taxes-style.js 201 B
build/checkout-blocks/payment-frontend.js 15.6 kB
build/checkout-blocks/payment-style.js 504 B
build/checkout-blocks/pickup-options-frontend.js 17.4 kB
build/checkout-blocks/pickup-options-style.js 476 B
build/checkout-blocks/shipping-address-frontend.js 9.74 kB
build/checkout-blocks/shipping-address-style.js 514 B
build/checkout-blocks/shipping-method-frontend.js 2.65 kB
build/checkout-blocks/shipping-method-style.js 1.41 kB
build/checkout-blocks/shipping-methods-frontend.js 25.3 kB
build/checkout-blocks/shipping-methods-style.js 450 B
build/checkout-blocks/terms-frontend.js 1.55 kB
build/checkout-blocks/terms-style.js 1.02 kB
build/checkout-blocks/totals-frontend.js 334 B
build/checkout-blocks/totals-style.js 301 B
build/checkout-frontend.js 30.5 kB
build/checkout-rtl.css 9.37 kB
build/checkout.css 9.37 kB
build/checkout.js 42.6 kB
build/classic-shortcode-rtl.css 242 B
build/classic-shortcode.css 241 B
build/classic-shortcode.js 4.4 kB
build/collection-filters.js 1.62 kB
build/customer-account-rtl.css 410 B
build/customer-account.css 409 B
build/customer-account.js 3.17 kB
build/featured-category-rtl.css 974 B
build/featured-category.css 973 B
build/featured-category.js 13.6 kB
build/featured-product-rtl.css 1.02 kB
build/featured-product.css 1.02 kB
build/featured-product.js 13.7 kB
build/filter-wrapper-frontend.js 14.5 kB
build/filter-wrapper-rtl.css 378 B
build/filter-wrapper.css 378 B
build/filter-wrapper.js 2.37 kB
build/handpicked-products.js 7.22 kB
build/legacy-template-rtl.css 240 B
build/legacy-template.css 240 B
build/legacy-template.js 7.72 kB
build/mini-cart-component-frontend.js 30.7 kB
build/mini-cart-contents-block/cart-button-frontend.js 1.86 kB
build/mini-cart-contents-block/cart-button-style.js 1.23 kB
build/mini-cart-contents-block/checkout-button-frontend.js 1.95 kB
build/mini-cart-contents-block/checkout-button-style.js 1.43 kB
build/mini-cart-contents-block/empty-cart-frontend.js 374 B
build/mini-cart-contents-block/empty-cart-style.js 378 B
build/mini-cart-contents-block/filled-cart-frontend.js 284 B
build/mini-cart-contents-block/filled-cart-style.js 288 B
build/mini-cart-contents-block/footer-frontend.js 3.87 kB
build/mini-cart-contents-block/footer-style.js 1.95 kB
build/mini-cart-contents-block/items-frontend.js 247 B
build/mini-cart-contents-block/items-style.js 251 B
build/mini-cart-contents-block/products-table-frontend.js 13.8 kB
build/mini-cart-contents-block/shopping-button-frontend.js 501 B
build/mini-cart-contents-block/shopping-button-style.js 361 B
build/mini-cart-contents-block/title-frontend.js 2.04 kB
build/mini-cart-contents-block/title-items-counter-frontend.js 1.74 kB
build/mini-cart-contents-block/title-items-counter-style.js 1.2 kB
build/mini-cart-contents-block/title-label-frontend.js 1.68 kB
build/mini-cart-contents-block/title-label-style.js 1.14 kB
build/mini-cart-contents-block/title-style.js 1.38 kB
build/mini-cart-contents-rtl.css 3.23 kB
build/mini-cart-contents.css 3.21 kB
build/mini-cart-contents.js 16.1 kB
build/mini-cart-frontend.js 2.25 kB
build/mini-cart-rtl.css 2.44 kB
build/mini-cart.css 2.45 kB
build/mini-cart.js 5.98 kB
build/order-confirmation-additional-information-rtl.css 365 B
build/order-confirmation-additional-information.css 364 B
build/order-confirmation-additional-information.js 1.57 kB
build/order-confirmation-billing-address-rtl.css 398 B
build/order-confirmation-billing-address.css 397 B
build/order-confirmation-billing-address.js 1.55 kB
build/order-confirmation-billing-wrapper.js 1.5 kB
build/order-confirmation-downloads-rtl.css 478 B
build/order-confirmation-downloads-wrapper.js 1.53 kB
build/order-confirmation-downloads.css 479 B
build/order-confirmation-downloads.js 1.9 kB
build/order-confirmation-shipping-address-rtl.css 399 B
build/order-confirmation-shipping-address.css 397 B
build/order-confirmation-shipping-address.js 1.55 kB
build/order-confirmation-shipping-wrapper.js 1.5 kB
build/order-confirmation-status-rtl.css 280 B
build/order-confirmation-status.css 280 B
build/order-confirmation-status.js 1.54 kB
build/order-confirmation-summary-rtl.css 461 B
build/order-confirmation-summary.css 460 B
build/order-confirmation-summary.js 1.75 kB
build/order-confirmation-totals-rtl.css 595 B
build/order-confirmation-totals-wrapper.js 1.83 kB
build/order-confirmation-totals.css 594 B
build/order-confirmation-totals.js 2.16 kB
build/packages-style-rtl.css 3.59 kB
build/packages-style.css 3.59 kB
build/page-content-wrapper.js 1.85 kB
build/price-filter-frontend.js 13.1 kB
build/price-filter-rtl.css 2.68 kB
build/price-filter-wrapper-frontend.js 13.3 kB
build/price-filter-wrapper-rtl.css 2.54 kB
build/price-filter-wrapper.css 2.54 kB
build/price-filter.css 2.68 kB
build/price-filter.js 7.77 kB
build/price-format.js 913 B
build/product-add-to-cart-frontend.js 8.11 kB
build/product-add-to-cart-rtl.css 1.38 kB
build/product-add-to-cart.css 1.38 kB
build/product-add-to-cart.js 8.35 kB
build/product-average-rating-frontend.js 1.88 kB
build/product-average-rating.js 1.4 kB
build/product-best-sellers.js 7.04 kB
build/product-button-frontend.js 4.93 kB
build/product-button-interactivity-frontend.js 8.46 kB
build/product-button-rtl.css 1.14 kB
build/product-button.css 1.14 kB
build/product-button.js 4.64 kB
build/product-categories-rtl.css 654 B
build/product-categories.css 654 B
build/product-categories.js 2.58 kB
build/product-category.js 7.97 kB
build/product-collection.js 13.6 kB
build/product-details-rtl.css 397 B
build/product-details.css 394 B
build/product-gallery-frontend.js 220 B
build/product-gallery-large-image-frontend.js 400 B
build/product-image-frontend.js 2.87 kB
build/product-image-gallery-rtl.css 307 B
build/product-image-gallery.css 306 B
build/product-image-rtl.css 997 B
build/product-image.css 995 B
build/product-image.js 2.66 kB
build/product-new.js 7.3 kB
build/product-on-sale.js 7.29 kB
build/product-price-frontend.js 8.1 kB
build/product-price-rtl.css 678 B
build/product-price.css 677 B
build/product-price.js 2.65 kB
build/product-query-rtl.css 350 B
build/product-query.css 349 B
build/product-query.js 11.3 kB
build/product-rating-counter-frontend.js 2.19 kB
build/product-rating-counter.js 1.71 kB
build/product-rating-frontend.js 2.53 kB
build/product-rating-rtl.css 247 B
build/product-rating-stars-frontend.js 2.43 kB
build/product-rating-stars-rtl.css 899 B
build/product-rating-stars.css 900 B
build/product-rating-stars.js 1.95 kB
build/product-rating.css 246 B
build/product-rating.js 2.05 kB
build/product-results-count-rtl.css 230 B
build/product-results-count.css 230 B
build/product-results-count.js 1.65 kB
build/product-reviews-rtl.css 458 B
build/product-reviews.css 458 B
build/product-sale-badge-frontend.js 2.01 kB
build/product-sale-badge-rtl.css 438 B
build/product-sale-badge.css 437 B
build/product-sale-badge.js 1.69 kB
build/product-search-rtl.css 419 B
build/product-search.css 417 B
build/product-search.js 2.6 kB
build/product-sku-frontend.js 2.02 kB
build/product-sku-rtl.css 240 B
build/product-sku.css 239 B
build/product-sku.js 1.53 kB
build/product-stock-indicator-frontend.js 2.19 kB
build/product-stock-indicator-rtl.css 232 B
build/product-stock-indicator.css 232 B
build/product-stock-indicator.js 1.71 kB
build/product-summary-frontend.js 2.35 kB
build/product-summary-rtl.css 549 B
build/product-summary.css 549 B
build/product-summary.js 1.87 kB
build/product-tag.js 7.5 kB
build/product-template-rtl.css 423 B
build/product-template.css 422 B
build/product-template.js 2.8 kB
build/product-title-frontend.js 2.31 kB
build/product-title-rtl.css 693 B
build/product-title.css 694 B
build/product-title.js 2.04 kB
build/product-top-rated.js 7.57 kB
build/products-by-attribute.js 8.02 kB
build/rating-filter-frontend.js 19.3 kB
build/rating-filter-rtl.css 4.22 kB
build/rating-filter-wrapper-frontend.js 20.3 kB
build/rating-filter-wrapper-rtl.css 1.73 kB
build/rating-filter-wrapper.css 1.73 kB
build/rating-filter.css 4.21 kB
build/rating-filter.js 6.33 kB
build/reviews-by-category-rtl.css 1.79 kB
build/reviews-by-category.css 1.79 kB
build/reviews-by-category.js 11.4 kB
build/reviews-by-product-rtl.css 1.79 kB
build/reviews-by-product.css 1.79 kB
build/reviews-by-product.js 12.7 kB
build/reviews-frontend.js 6.52 kB
build/single-product-rtl.css 378 B
build/single-product.css 378 B
build/single-product.js 11.1 kB
build/stock-filter-frontend.js 19.4 kB
build/stock-filter-rtl.css 4.01 kB
build/stock-filter-wrapper-frontend.js 20.5 kB
build/stock-filter-wrapper-rtl.css 1.49 kB
build/stock-filter-wrapper.css 1.49 kB
build/stock-filter.css 4 kB
build/stock-filter.js 6.95 kB
build/store-notices.js 1.67 kB
build/wc-blocks-classic-template-revert-button-style-rtl.css 240 B
build/wc-blocks-classic-template-revert-button-style.css 239 B
build/wc-blocks-classic-template-revert-button.js 1.18 kB
build/wc-blocks-data.js 19.4 kB
build/wc-blocks-google-analytics.js 1.16 kB
build/wc-blocks-middleware.js 735 B
build/wc-blocks-registry.js 2.74 kB
build/wc-blocks-rtl.css 2.47 kB
build/wc-blocks-shared-context.js 850 B
build/wc-blocks-shared-hocs.js 1.4 kB
build/wc-blocks.css 2.47 kB
build/wc-blocks.js 2.61 kB
build/wc-interactivity.js 10.7 kB
build/wc-payment-method-bacs.js 406 B
build/wc-payment-method-cheque.js 401 B
build/wc-payment-method-cod.js 508 B
build/wc-payment-method-paypal.js 437 B
build/wc-settings.js 2.4 kB
build/wc-shipping-method-pickup-location.js 29.3 kB

compressed-size-action

@gigitux gigitux self-requested a review September 8, 2023 07:24
@gigitux
Copy link
Contributor

gigitux commented Sep 8, 2023

Hey @danieldudzic, thanks for your great work on this PR! Now, the Large Image and arrows never overflow! However, I noticed two things that I think that we should address:

  • We are targeting wp-block classes. We should create a dedicated wc classes.
  • In the style/editor.scss of a child block, we are using the class .wp-block-woocommerce-product-gallery[data-next-previous-buttons-position="outsideTheImage"], which refers to the main product-gallery block. My primary concern is the complexity this approach introduces, and I believe we could enhance clarity by using SCSS variables for some of the calculations.

As we discussed earlier, we agreed to consolidate all styles affecting multiple child blocks into a dedicated style.scss file located in the main /product-gallery folder. Additionally, instead of relying on .wp-block-woocommerce-product-gallery[data-next-previous-buttons-position="outsideTheImage"], we will implement a custom class, wc-block-product-gallery--has-next-previous-buttons-${position}, to be applied to the main div of the Product Gallery block.

The new style.scss and the logic to add the custom class has been added with 91c67ce.

@tarhi-saad tarhi-saad modified the milestones: 11.1.0, 11.2.0 Sep 11, 2023
@tarhi-saad
Copy link
Contributor

@danieldudzic, I bumped this issue to the next release!

@danieldudzic
Copy link
Contributor Author

danieldudzic commented Sep 14, 2023

We are targeting wp-block classes. We should create a dedicated wc classes.

Would you mind elaborating on why we shouldn't be targeting those? It seems that a lot of block styles in our repo target the .wp-block-woocommerce-* classes.

@gigitux
Copy link
Contributor

gigitux commented Sep 15, 2023

We are targeting wp-block classes. We should create a dedicated wc classes.

Would you mind elaborating on why we shouldn't be targeting those? It seems that a lot of block styles in our repo target the .wp-block-woocommerce-* classes.

You're right! The wp-block-woocommerce is consumed by WordPress for global styles. I think that every CSS that we write should target a wc-block class: this increases the separation of responsibility and allows us to debug the CSS better.

@danieldudzic
Copy link
Contributor Author

We are targeting wp-block classes. We should create a dedicated wc classes.

Would you mind elaborating on why we shouldn't be targeting those? It seems that a lot of block styles in our repo target the .wp-block-woocommerce-* classes.

You're right! The wp-block-woocommerce is consumed by WordPress for global styles. I think that every CSS that we write should target a wc-block class: this increases the separation of responsibility and allows us to debug the CSS better.

Thanks for explaining. This does make sense.

@nefeline nefeline removed their request for review September 16, 2023 08:20
…gle product gallery despite of the Next/Previous mode selected
@danieldudzic
Copy link
Contributor Author

@gigitux We should try to get this merged ASAP, as I can see already that getting this up to date with trunk will be a conflict nightmare.

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.

Gorgeous work! I added some comments, but they should be easy to address! Just to clarify, it is crucial to add the wp-* class in the right place, because this class is used by the Global Styles.

Also, let's change the destination branch to trunk given that this PR includes the fix for #10750 as well.

src/BlockTypes/ProductGalleryLargeImageNextPrevious.php Outdated Show resolved Hide resolved
src/BlockTypes/ProductGallery.php Show resolved Hide resolved
src/BlockTypes/ProductGalleryPager.php Show resolved Hide resolved
src/BlockTypes/ProductGalleryThumbnails.php Outdated Show resolved Hide resolved
…o 10750-product-gallery-block-different-icons-for-next-previous-block-css-layout-fix
@gigitux gigitux changed the base branch from 10750-product-gallery-block-different-icons-for-next-previous-block to trunk September 20, 2023 10:00
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.

Code-wise LGTM. I noticed some regressions that we should address, but since this PR is huge and impacts other PRs, let's merge it and continue the iteration in the next PRs. Please open a dedicated issue for each point:

Fix Zoom Animation

Currently, the zoom animation is broken:
https://github-production-user-asset-6210df.s3.amazonaws.com/4463174/269297195-f7e43dd6-736b-4be4-a0c1-2923a5891f66.mp4

Move classes to the main div and remove the additional wrapper

Currently, there is an unnecessary div that exists because we don't invoke this function anymore, otherwise, the layout is broken. We should check why this happens and fix it:

image

Thumbnail Position

I'm not sure about the thumbnail position:

image

E2E test fail

I noticed that the product-gallery-large-image-next-previous.block_theme.side_effects.spec.ts test failed. We should skip it and fix it in a dedicated PR.

cc @thealexandrelara for awareness.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
block: product gallery Issues related to the Product Gallery block. type: bug The issue/PR concerns a confirmed bug.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Product Gallery: the block overflows on other column
4 participants