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

Fix: Mini Cart template part editor height #5825

Merged
merged 2 commits into from
Feb 15, 2022
Merged

Fix: Mini Cart template part editor height #5825

merged 2 commits into from
Feb 15, 2022

Conversation

dinhtungdu
Copy link
Member

@dinhtungdu dinhtungdu commented Feb 14, 2022

Fixes #5813

When a template part is loaded, Gutenberg set the height of the editor area using iframe.contentDocument.documentElement.scrollHeight, at this point, the editor CSS hasn't been loaded yet, which causes the issue in #5813. If we switch to edit another template, then switch back to edit the Mini Cart template part, the height is correct because, at that point, the CSS had been loaded.

This PR uses the inline style to set the height of the Mini Cart Contents block so Gutenberg can calculate the correct height when loading the template part.

Screenshots

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. Go to Site Editor.
  2. From the W icon, select Template Parts, then select Mini Cart.
  3. See the height of the editor area expanded to the remaining browser height.

User Facing Testing

These are steps for user testing (where "user" is someone interacting with this change that is not editing any code).

  • Same as above, or
  • See steps below.

@dinhtungdu dinhtungdu self-assigned this Feb 14, 2022
@rubikuserbot rubikuserbot requested review from a team and tomasztunik and removed request for a team February 14, 2022 05:15
@dinhtungdu dinhtungdu added skip-changelog PRs that you don't want to appear in the changelog. status: needs review type: bug The issue/PR concerns a confirmed bug. block: mini-cart Issues related to the Mini-Cart block. labels Feb 14, 2022
@github-actions
Copy link
Contributor

github-actions bot commented Feb 14, 2022

Size Change: +2.26 kB (0%)

Total Size: 816 kB

Filename Size Change
build/active-filters-frontend.js 6.37 kB +4 B (0%)
build/active-filters.js 7.05 kB +5 B (0%)
build/all-products.js 34.2 kB +239 B (+1%)
build/all-reviews.js 8.05 kB -3 B (0%)
build/atomic-block-components/add-to-cart--atomic-block-components/button--atomic-block-components/image---8f355022.js 0 B -255 B (removed) 🏆
build/atomic-block-components/add-to-cart--atomic-block-components/button--atomic-block-components/image---a7e2bb9b.js 2.7 kB +3 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-frontend.js 6.94 kB +2 B (0%)
build/atomic-block-components/add-to-cart.js 6.5 kB -1 B (0%)
build/atomic-block-components/button.js 912 B -2 B (0%)
build/atomic-block-components/category-list-frontend.js 826 B +369 B (+81%) 🆘
build/atomic-block-components/category-list.js 500 B +41 B (+9%) 🔍
build/atomic-block-components/image-frontend.js 1.77 kB +395 B (+29%) 🚨
build/atomic-block-components/image.js 1.1 kB +43 B (+4%)
build/atomic-block-components/price-frontend.js 1.74 kB +1 B (0%)
build/atomic-block-components/price.js 1.69 kB +1 B (0%)
build/atomic-block-components/rating.js 701 B +1 B (0%)
build/atomic-block-components/sale-badge-frontend.js 1 kB +378 B (+60%) 🆘
build/atomic-block-components/sale-badge.js 684 B +60 B (+10%) ⚠️
build/atomic-block-components/stock-indicator--atomic-block-components/summary--atomic-block-components/title.js 0 B -468 B (removed) 🏆
build/atomic-block-components/stock-indicator-frontend.js 942 B +3 B (0%)
build/atomic-block-components/summary-frontend.js 1.24 kB +1 B (0%)
build/atomic-block-components/tag-list-frontend.js 825 B +365 B (+79%) 🆘
build/atomic-block-components/tag-list.js 500 B +41 B (+9%) 🔍
build/atomic-block-components/title-frontend.js 1.21 kB +2 B (0%)
build/attribute-filter-frontend.js 16.8 kB -2 B (0%)
build/attribute-filter.js 13 kB -8 B (0%)
build/cart-blocks/order-summary-frontend.js 8.87 kB +1 B (0%)
build/cart-frontend.js 45.6 kB -2 B (0%)
build/cart.js 43.7 kB +5 B (0%)
build/checkout-blocks/actions-frontend.js 1.41 kB -1 B (0%)
build/checkout-blocks/order-summary-frontend.js 11.3 kB -1 B (0%)
build/checkout-blocks/shipping-methods-frontend.js 4.81 kB +2 B (0%)
build/checkout-frontend.js 47.7 kB -5 B (0%)
build/checkout.js 45.2 kB +15 B (0%)
build/featured-category.js 8.61 kB -3 B (0%)
build/handpicked-products.js 7.09 kB -2 B (0%)
build/legacy-template.js 2.18 kB +1 B (0%)
build/mini-cart-component-frontend.js 14.3 kB -9 B (0%)
build/mini-cart-contents.js 3.83 kB +14 B (0%)
build/mini-cart.js 6.4 kB +1 B (0%)
build/price-filter-frontend.js 12.6 kB +1 B (0%)
build/price-filter.js 8.51 kB +1 B (0%)
build/product-best-sellers.js 7.37 kB -2 B (0%)
build/product-categories.js 3.17 kB +2 B (0%)
build/product-category.js 8.49 kB -1 B (0%)
build/product-new.js 7.66 kB -2 B (0%)
build/product-search.js 2.18 kB +1 B (0%)
build/product-tag.js 7.81 kB +3 B (0%)
build/product-top-rated.js 7.9 kB -1 B (0%)
build/reviews-by-category.js 11.5 kB -5 B (0%)
build/reviews-by-product.js 12.6 kB -1 B (0%)
build/single-product-frontend.js 22.2 kB -4 B (0%)
build/single-product.js 10 kB +20 B (0%)
build/stock-filter.js 6.69 kB -1 B (0%)
build/vendors--atomic-block-components/price--cart-blocks/line-items--cart-blocks/order-summary--checkout--8a3571de-frontend.js 5.71 kB +1 B (0%)
build/wc-blocks-editor-style-rtl.css 4.85 kB +14 B (0%)
build/wc-blocks-editor-style.css 4.85 kB +15 B (0%)
build/wc-blocks-style-rtl.css 22.1 kB +139 B (+1%)
build/wc-blocks-style.css 22.1 kB +130 B (+1%)
build/wc-blocks-vendors.js 69.7 kB -4 B (0%)
build/atomic-block-components/add-to-cart--atomic-block-components/button--atomic-block-components/catego--ce653f6d.js 255 B +255 B (new file) 🆕
build/atomic-block-components/category-list--atomic-block-components/image--atomic-block-components/sale---5e68150f.js 468 B +468 B (new file) 🆕
ℹ️ View Unchanged
Filename Size
build/all-products-frontend.js 18.8 kB
build/atomic-block-components/button-frontend.js 1.54 kB
build/atomic-block-components/rating-frontend.js 703 B
build/atomic-block-components/sku-frontend.js 386 B
build/atomic-block-components/sku.js 386 B
build/atomic-block-components/stock-indicator.js 623 B
build/atomic-block-components/summary.js 924 B
build/atomic-block-components/title.js 934 B
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.15 kB
build/cart-blocks/empty-cart-frontend.js 345 B
build/cart-blocks/express-payment-frontend.js 5.18 kB
build/cart-blocks/filled-cart-frontend.js 766 B
build/cart-blocks/items-frontend.js 299 B
build/cart-blocks/line-items-frontend.js 5.49 kB
build/cart-blocks/totals-frontend.js 320 B
build/checkout-blocks/billing-address--checkout-blocks/shipping-address-frontend.js 4.22 kB
build/checkout-blocks/billing-address-frontend.js 888 B
build/checkout-blocks/contact-information-frontend.js 2.94 kB
build/checkout-blocks/express-payment-frontend.js 5.46 kB
build/checkout-blocks/fields-frontend.js 344 B
build/checkout-blocks/order-note-frontend.js 1.13 kB
build/checkout-blocks/payment-frontend.js 7.75 kB
build/checkout-blocks/shipping-address-frontend.js 976 B
build/checkout-blocks/terms-frontend.js 1.22 kB
build/checkout-blocks/totals-frontend.js 324 B
build/featured-product.js 9.62 kB
build/mini-cart-frontend.js 1.81 kB
build/price-format.js 1.18 kB
build/product-on-sale.js 7.99 kB
build/products-by-attribute.js 8.39 kB
build/reviews-frontend.js 7.34 kB
build/stock-filter-frontend.js 6.61 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.51 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-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-vendors-style-rtl.css 1.28 kB
build/wc-blocks-vendors-style.css 1.28 kB
build/wc-blocks.js 2.62 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

Copy link
Contributor

@tomasztunik tomasztunik left a comment

Choose a reason for hiding this comment

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

The fix works great 🎉 but it would be great if we could keep it in scss along other overrides.

Comment on lines 46 to 50
const blockProps = useBlockProps( {
style: {
minHeight: '100vh',
},
} );
Copy link
Contributor

Choose a reason for hiding this comment

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

Copy link
Member Author

Choose a reason for hiding this comment

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

@tomasztunik Hey there 👋🏽 , #5813 is caused by a race condition related to loading CSS files. When we switch to edit the Mini Cart template part, the Site Editor calculates the height of the editor based on the height of template content, the editor style of the Mini Cart Contents block hasn't been loaded yet, which causes the issue we're fixing in this PR. I have to use the inline style to avoid the race condition so the Site Editor can calculate the correct height every time the template part is loaded.

Copy link
Member Author

@dinhtungdu dinhtungdu Feb 15, 2022

Choose a reason for hiding this comment

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

On trunk, if you switch back and forth editing the template part, the editor height is correct the second time.

Copy link
Contributor

@tomasztunik tomasztunik Feb 15, 2022

Choose a reason for hiding this comment

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

Ah, I see. I didn't understand the full context properly. Would it be worth to document it with a comment so whoever stumbles upon it doesn't move it to styles in the future?

Copy link
Member Author

Choose a reason for hiding this comment

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

Would it be worth to document it with a comment so whoever stumbles upon it doesn't move it to styles in the future?

@tomasztunik I added the comment explaining the usage of the inline style.

Copy link
Contributor

Choose a reason for hiding this comment

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

thanks!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
block: mini-cart Issues related to the Mini-Cart block. skip-changelog PRs that you don't want to appear in the changelog. type: bug The issue/PR concerns a confirmed bug.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Mini Cart template part editor height
2 participants