Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Inline font-sizes to fix themes that don't enqueue the preset classes #22668

Merged
merged 3 commits into from
Jul 6, 2020

Conversation

oandregal
Copy link
Member

@oandregal oandregal commented May 27, 2020

Depends on #22356

I've set fix/themes-not-loading-palette as the base to easy review. This should be changed before merging the PR.

This PR follows suit on what is proposed at #22356

It adds the font-size attribute as an inline style for the editor, regardless of the font value being a preset or a custom value. This is to fix themes that don't enqueue the preset classes. See context.

How to test

  • Apply this PR.
  • Open the editor and create two paragraphs:
    • Apply a given preset class to one of them. Check that the p node has the proper font-size value as an inline style.
    • Apply a custom font size to another. Check that the p node still has the custom font-size value as an inline style.

@oandregal oandregal self-assigned this May 27, 2020
@oandregal oandregal added the [Type] Bug An existing feature does not function as intended label May 27, 2020
@oandregal
Copy link
Member Author

Note that I've prepared this on top of #22356 which should be merged first.

@oandregal oandregal changed the base branch from master to fix/themes-not-loading-palette May 27, 2020 10:23
if (
! hasBlockSupport( blockName, FONT_SIZE_SUPPORT_KEY ) ||
style?.typography?.fontSize ||
! fontSize
Copy link
Contributor

Choose a reason for hiding this comment

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

We shouldn't return early if the font size is not defined because it remounts the whole block when you select aa font size closing the inspector panels.

Copy link
Member Author

Choose a reason for hiding this comment

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

I haven't seen that 🤔

2005-27-font-size-filter

Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe because the typography panel is open by default. if we change it to be closed by default you'll notice the issue. I had the issue with the color panel.

Copy link
Contributor

Choose a reason for hiding this comment

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

I still think we need to remove style?.typography?.fontSize || ! fontSize from here and only check the support here before merging.

Copy link
Member

Choose a reason for hiding this comment

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

Yes, I'll check it now

Copy link
Member

Choose a reason for hiding this comment

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

@youknowriad Do you know what style?.typography is? That's not a CSS prop?

@oandregal
Copy link
Member Author

I've set fix/themes-not-loading-palette as the base to easy review. This should be changed before merging the PR.

@github-actions
Copy link

github-actions bot commented May 27, 2020

Size Change: +106 B (0%)

Total Size: 1.13 MB

Filename Size Change
build/block-editor/index.js 109 kB +106 B (0%)
ℹ️ View Unchanged
Filename Size Change
build/a11y/index.js 1.14 kB 0 B
build/annotations/index.js 3.68 kB 0 B
build/api-fetch/index.js 3.4 kB 0 B
build/autop/index.js 2.82 kB 0 B
build/blob/index.js 620 B 0 B
build/block-directory/index.js 7.48 kB 0 B
build/block-directory/style-rtl.css 944 B 0 B
build/block-directory/style.css 945 B 0 B
build/block-editor/style-rtl.css 10.7 kB 0 B
build/block-editor/style.css 10.7 kB 0 B
build/block-library/editor-rtl.css 7.57 kB 0 B
build/block-library/editor.css 7.57 kB 0 B
build/block-library/index.js 130 kB 0 B
build/block-library/style-rtl.css 7.78 kB 0 B
build/block-library/style.css 7.79 kB 0 B
build/block-library/theme-rtl.css 728 B 0 B
build/block-library/theme.css 729 B 0 B
build/block-serialization-default-parser/index.js 1.88 kB 0 B
build/block-serialization-spec-parser/index.js 3.1 kB 0 B
build/blocks/index.js 48.2 kB 0 B
build/components/index.js 198 kB 0 B
build/components/style-rtl.css 15.8 kB 0 B
build/components/style.css 15.8 kB 0 B
build/compose/index.js 9.65 kB 0 B
build/core-data/index.js 11.4 kB 0 B
build/data-controls/index.js 1.29 kB 0 B
build/data/index.js 8.44 kB 0 B
build/date/index.js 5.47 kB 0 B
build/deprecated/index.js 772 B 0 B
build/dom-ready/index.js 569 B 0 B
build/dom/index.js 3.19 kB 0 B
build/edit-navigation/index.js 9.98 kB 0 B
build/edit-navigation/style-rtl.css 1.02 kB 0 B
build/edit-navigation/style.css 1.02 kB 0 B
build/edit-post/index.js 304 kB 0 B
build/edit-post/style-rtl.css 5.57 kB 0 B
build/edit-post/style.css 5.57 kB 0 B
build/edit-site/index.js 16.6 kB 0 B
build/edit-site/style-rtl.css 3.03 kB 0 B
build/edit-site/style.css 3.03 kB 0 B
build/edit-widgets/index.js 9.32 kB 0 B
build/edit-widgets/style-rtl.css 2.45 kB 0 B
build/edit-widgets/style.css 2.45 kB 0 B
build/editor/editor-styles-rtl.css 537 B 0 B
build/editor/editor-styles.css 539 B 0 B
build/editor/index.js 44.8 kB 0 B
build/editor/style-rtl.css 3.78 kB 0 B
build/editor/style.css 3.77 kB 0 B
build/element/index.js 4.65 kB 0 B
build/escape-html/index.js 733 B 0 B
build/format-library/index.js 7.73 kB 0 B
build/format-library/style-rtl.css 547 B 0 B
build/format-library/style.css 548 B 0 B
build/hooks/index.js 2.13 kB 0 B
build/html-entities/index.js 622 B 0 B
build/i18n/index.js 3.56 kB 0 B
build/is-shallow-equal/index.js 710 B 0 B
build/keyboard-shortcuts/index.js 2.52 kB 0 B
build/keycodes/index.js 1.94 kB 0 B
build/list-reusable-blocks/index.js 3.12 kB 0 B
build/list-reusable-blocks/style-rtl.css 476 B 0 B
build/list-reusable-blocks/style.css 476 B 0 B
build/media-utils/index.js 5.3 kB 0 B
build/notices/index.js 1.79 kB 0 B
build/nux/index.js 3.41 kB 0 B
build/nux/style-rtl.css 671 B 0 B
build/nux/style.css 668 B 0 B
build/plugins/index.js 2.56 kB 0 B
build/primitives/index.js 1.5 kB 0 B
build/priority-queue/index.js 788 B 0 B
build/redux-routine/index.js 2.85 kB 0 B
build/rich-text/index.js 14 kB 0 B
build/server-side-render/index.js 2.68 kB 0 B
build/shortcode/index.js 1.69 kB 0 B
build/token-list/index.js 1.28 kB 0 B
build/url/index.js 4.06 kB 0 B
build/viewport/index.js 1.85 kB 0 B
build/warning/index.js 1.14 kB 0 B
build/wordcount/index.js 1.17 kB 0 B

compressed-size-action

@youknowriad youknowriad force-pushed the fix/themes-not-loading-palette branch from 99d6a8a to 84f06b1 Compare July 1, 2020 08:58
@ellatrix ellatrix force-pushed the fix/themes-not-loading-palette branch from 84f06b1 to bb0ae85 Compare July 3, 2020 13:11
Base automatically changed from fix/themes-not-loading-palette to master July 6, 2020 08:55
@ellatrix ellatrix force-pushed the fix/themes-not-loading-font-sizes branch from 3b91591 to ba0e7ca Compare July 6, 2020 09:11
@ellatrix ellatrix force-pushed the fix/themes-not-loading-font-sizes branch from ba0e7ca to 0cb918b Compare July 6, 2020 09:17
@youknowriad
Copy link
Contributor

We should address this before merging too #22668 (comment)

style?.typography?.fontSize
).size;

props.wrapperProps = {
Copy link
Contributor

Choose a reason for hiding this comment

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

I don't like mutating arguments personally. Ideally, we'd have a lint rule for that as it can potentially create weird issues. (Not certain it's the case here though)

Copy link
Member

Choose a reason for hiding this comment

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

It's spread a few lines below, so it should be ok

Copy link
Contributor

Choose a reason for hiding this comment

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

It should be spread before making the change. The problem here is that you're changing the value of an object defined elsewhere (the caller) which means potentially unexpected side effects there.

Copy link
Contributor

Choose a reason for hiding this comment

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

This breaks throwing:
Uncaught TypeError: can't define property "wrapperProps": Object is not extensible

Copy link
Contributor

Choose a reason for hiding this comment

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

Fixed by @Copons in #23717

@ellatrix ellatrix merged commit 71d5580 into master Jul 6, 2020
@ellatrix ellatrix deleted the fix/themes-not-loading-font-sizes branch July 6, 2020 11:44
@github-actions github-actions bot added this to the Gutenberg 8.5 milestone Jul 6, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Type] Bug An existing feature does not function as intended
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants