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

Fix Custom Palette colors and support multiple origins and theme cache issues. #38417

Merged
merged 26 commits into from
Feb 16, 2022

Conversation

geriux
Copy link
Member

@geriux geriux commented Feb 1, 2022

Fixes #38525 and #36152

This is a follow-up of #38474

Description

This PR fixes several issues, first, it fixes an ongoing issue where changing between themes would not refresh the current theme data and a restart of the editor was needed, as well as sometimes opening the editor for the first time and not seeing the theme colors.

Second, it adds support for multiple color and gradient palettes including the Custom ones.

Now both standard and block-based themes get the color data from these multiple origin palettes, so this PR removes setting the color and gradients on the top-level of the editor settings. Including the validate colors helpers.

The palette screen now supports rendering multiple palettes coming from useMultipleOriginColorsAndGradients. These are Theme, Default, and Custom (if there's one).

On global-styles-context/utils.native.js it now supports parsing color variables like var:preset|color|custom-color-2 this is the case for custom colors.

It introduces useMobileGlobalStylesColors which merges all colors from all palettes colors/gradients to get all available colors in one array.

It also introduces getColorsAndGradients which gets the default editor color/gradients for standard themes. It has a fallback just in case we can't get the data from the API rawFeatures so it sets the default colors that are built-in within the editor.

On Android, when subscribeUpdateEditorSettings is called to update the theme data, it wasn't passing the rawFeatures data, only when the editor was opened inside the initialProps. This was causing issues like the editor not showing the active theme colors.

These changes affect quite a few files where colors are used:

  • Buttons block
  • Cover block (for the placeholder and overlay settings)
  • Block settings (default color picker for Text and Background)
  • Highlight text
  • RichText
  • Block list

Testing Instructions - Block-based themes e.g. (Calvin, Quadrat)

Test case 1 (Multiple origin color palettes)

Precondition: Add a custom palette to your theme

  • Select a block-based theme
  • Enable Full site editing: On WordPress.com go to Settings > Full site editing (beta)
    Edit: This is no longer opt-in so now it's enabled by default.
  • Go to Appearance > Editor (beta)
  • On the upper right side select the Styles setting
    Screen Shot 2022-02-02 at 14 16 12
  • Select the Colors option
  • Open the Palette
  • Add a custom palette with a few colors
  • Save the settings (you have to confirm saving)

  • Open the app using the builds from the above PRs
  • Open the editor
  • Add a Paragraph block
  • Tap on the settings of the block
  • Go to Text
  • Expect to see the different color palettes: Theme, Default and Custom (in that order)

Test case 2 (Multiple origin gradient palettes)

Precondition: A custom gradient palette, use the same steps from the previous test case but for gradients.

  • Open the app using the builds from the above PRs
  • Open the editor
  • Add a Buttons block
  • Tap on the settings of the selected button block
  • Go to Background
  • Tap on the Gradient segment
  • Expect to see the different gradient palettes: Default and Custom (in that order). If your theme has built-in gradients, the Theme palette should show up as well.

Test case 3 (Test different blocks)

  • Open the app using the builds from the above PRs
  • Open the editor
  • Test setting Text/Background color to the following blocks:
    • Buttons block
    • Cover block (including the placeholder color palette)
    • Block settings (default color picker for Text and Background) e.g Paragraph block
    • Highlight text

Testing Instructions - Standard themes e.g. (Seedlet, Twenty Twenty-One)

Test case 1 (Multiple origin color palettes)

  • Open the app using the builds from the above PRs
  • Open the editor
  • Add a Paragraph block
  • Tap on the settings of the block
  • Go to Text
  • Expect to see the different color palettes: Theme, and Default

Test case 2 (Multiple origin gradient palettes)

  • Open the app using the builds from the above PRs
  • Open the editor
  • Add a Buttons block
  • Tap on the settings of the selected button block
  • Go to Background
  • Tap on the Gradient segment
  • Expect to see the different gradient palettes: Theme and Default

Test case 3 (Test different blocks)

  • Open the app using the builds from the above PRs
  • Open the editor
  • Test setting Text/Background color to the following blocks:
    • Buttons block
    • Cover block (including the placeholder color palette)
    • Block settings (default color picker for Text and Background) e.g Paragraph block
    • Highlight text

Testing Instructions - Changing between themes

Test case 1

  • Open the app using the builds from the above PRs
  • Activate a block-based theme
  • Open the editor
  • Expect to see your theme's colors on the first opening of the editor
  • Close the editor
  • Change to a standard theme, e.g Seedlet
  • Open the editor again
  • Expect to see the default light/dark background
  • Add a Paragraph block
  • Open the block settings
  • Tap on Text
  • Expect to see your theme's colors
  • Close the editor
  • Change to a different block-based theme
  • Open the editor
  • Expect to see your theme's colors in the editor on the first open

Screenshots

Block-based themes e.g. (Calvin, Quadrat)

Test case 1 (iOS) Test case 1 (Android)
Test case 2 (iOS) Test case 2 (Android)
Test case 3 (iOS) Test case 3 (Android)

Standard themes e.g. (Seedlet, Twenty Twenty-One)

Test case 1 (iOS) Test case 1 (Android)
Test case 2 (iOS) Test case 2 (Android)
Test case 3 (iOS) Test case 3 (Android)

Types of changes

Bug fix

Checklist:

  • My code is tested.
  • My code follows the WordPress code style.
  • My code follows the accessibility standards.
  • I've tested my changes with keyboard and screen readers.
  • My code has proper inline documentation.
  • I've included developer documentation if appropriate.
  • I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all *.native.js files for terms that need renaming or removal).
  • I've updated related schemas if appropriate.

…ne to Aztec, the color parser throws an error if its invalid.
@geriux geriux added [Status] In Progress Tracking issues with work in progress Mobile App - i.e. Android or iOS Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change) labels Feb 1, 2022
@github-actions
Copy link

github-actions bot commented Feb 1, 2022

Size Change: +549 B (0%)

Total Size: 1.15 MB

Filename Size Change
build/block-editor/index.min.js 142 kB +156 B (0%)
build/block-library/index.min.js 168 kB +21 B (0%)
build/blocks/index.min.js 46.4 kB +11 B (0%)
build/core-data/index.min.js 14 kB +26 B (0%)
build/edit-post/index.min.js 30 kB +45 B (0%)
build/edit-post/style-rtl.css 7.19 kB +15 B (0%)
build/edit-post/style.css 7.18 kB +15 B (0%)
build/edit-site/index.min.js 42.2 kB +243 B (+1%)
build/edit-site/style-rtl.css 7.23 kB +7 B (0%)
build/edit-site/style.css 7.22 kB +8 B (0%)
build/editor/index.min.js 38.4 kB +2 B (0%)
ℹ️ View Unchanged
Filename Size
build/a11y/index.min.js 993 B
build/admin-manifest/index.min.js 1.13 kB
build/annotations/index.min.js 2.77 kB
build/api-fetch/index.min.js 2.25 kB
build/autop/index.min.js 2.15 kB
build/blob/index.min.js 487 B
build/block-directory/index.min.js 6.51 kB
build/block-directory/style-rtl.css 1.01 kB
build/block-directory/style.css 1.01 kB
build/block-editor/default-editor-styles-rtl.css 378 B
build/block-editor/default-editor-styles.css 378 B
build/block-editor/style-rtl.css 14.8 kB
build/block-editor/style.css 14.8 kB
build/block-library/blocks/archives/editor-rtl.css 61 B
build/block-library/blocks/archives/editor.css 60 B
build/block-library/blocks/archives/style-rtl.css 65 B
build/block-library/blocks/archives/style.css 65 B
build/block-library/blocks/audio/editor-rtl.css 150 B
build/block-library/blocks/audio/editor.css 150 B
build/block-library/blocks/audio/style-rtl.css 111 B
build/block-library/blocks/audio/style.css 111 B
build/block-library/blocks/audio/theme-rtl.css 125 B
build/block-library/blocks/audio/theme.css 125 B
build/block-library/blocks/block/editor-rtl.css 161 B
build/block-library/blocks/block/editor.css 161 B
build/block-library/blocks/button/editor-rtl.css 470 B
build/block-library/blocks/button/editor.css 470 B
build/block-library/blocks/button/style-rtl.css 560 B
build/block-library/blocks/button/style.css 560 B
build/block-library/blocks/buttons/editor-rtl.css 292 B
build/block-library/blocks/buttons/editor.css 292 B
build/block-library/blocks/buttons/style-rtl.css 275 B
build/block-library/blocks/buttons/style.css 275 B
build/block-library/blocks/calendar/style-rtl.css 207 B
build/block-library/blocks/calendar/style.css 207 B
build/block-library/blocks/categories/editor-rtl.css 84 B
build/block-library/blocks/categories/editor.css 83 B
build/block-library/blocks/categories/style-rtl.css 79 B
build/block-library/blocks/categories/style.css 79 B
build/block-library/blocks/code/style-rtl.css 90 B
build/block-library/blocks/code/style.css 90 B
build/block-library/blocks/code/theme-rtl.css 131 B
build/block-library/blocks/code/theme.css 131 B
build/block-library/blocks/columns/editor-rtl.css 108 B
build/block-library/blocks/columns/editor.css 108 B
build/block-library/blocks/columns/style-rtl.css 406 B
build/block-library/blocks/columns/style.css 406 B
build/block-library/blocks/comment-author-avatar/editor-rtl.css 125 B
build/block-library/blocks/comment-author-avatar/editor.css 125 B
build/block-library/blocks/comment-template/style-rtl.css 127 B
build/block-library/blocks/comment-template/style.css 127 B
build/block-library/blocks/comments-pagination-numbers/editor-rtl.css 123 B
build/block-library/blocks/comments-pagination-numbers/editor.css 121 B
build/block-library/blocks/comments-pagination/editor-rtl.css 222 B
build/block-library/blocks/comments-pagination/editor.css 209 B
build/block-library/blocks/comments-pagination/style-rtl.css 235 B
build/block-library/blocks/comments-pagination/style.css 231 B
build/block-library/blocks/comments-query-loop/editor-rtl.css 95 B
build/block-library/blocks/comments-query-loop/editor.css 95 B
build/block-library/blocks/cover/editor-rtl.css 546 B
build/block-library/blocks/cover/editor.css 547 B
build/block-library/blocks/cover/style-rtl.css 1.55 kB
build/block-library/blocks/cover/style.css 1.55 kB
build/block-library/blocks/embed/editor-rtl.css 293 B
build/block-library/blocks/embed/editor.css 293 B
build/block-library/blocks/embed/style-rtl.css 417 B
build/block-library/blocks/embed/style.css 417 B
build/block-library/blocks/embed/theme-rtl.css 124 B
build/block-library/blocks/embed/theme.css 124 B
build/block-library/blocks/file/editor-rtl.css 300 B
build/block-library/blocks/file/editor.css 300 B
build/block-library/blocks/file/style-rtl.css 255 B
build/block-library/blocks/file/style.css 255 B
build/block-library/blocks/file/view.min.js 353 B
build/block-library/blocks/freeform/editor-rtl.css 2.44 kB
build/block-library/blocks/freeform/editor.css 2.44 kB
build/block-library/blocks/gallery/editor-rtl.css 965 B
build/block-library/blocks/gallery/editor.css 967 B
build/block-library/blocks/gallery/style-rtl.css 1.61 kB
build/block-library/blocks/gallery/style.css 1.61 kB
build/block-library/blocks/gallery/theme-rtl.css 122 B
build/block-library/blocks/gallery/theme.css 122 B
build/block-library/blocks/group/editor-rtl.css 159 B
build/block-library/blocks/group/editor.css 159 B
build/block-library/blocks/group/style-rtl.css 57 B
build/block-library/blocks/group/style.css 57 B
build/block-library/blocks/group/theme-rtl.css 78 B
build/block-library/blocks/group/theme.css 78 B
build/block-library/blocks/heading/style-rtl.css 114 B
build/block-library/blocks/heading/style.css 114 B
build/block-library/blocks/html/editor-rtl.css 332 B
build/block-library/blocks/html/editor.css 333 B
build/block-library/blocks/image/editor-rtl.css 731 B
build/block-library/blocks/image/editor.css 730 B
build/block-library/blocks/image/style-rtl.css 518 B
build/block-library/blocks/image/style.css 523 B
build/block-library/blocks/image/theme-rtl.css 124 B
build/block-library/blocks/image/theme.css 124 B
build/block-library/blocks/latest-comments/style-rtl.css 284 B
build/block-library/blocks/latest-comments/style.css 284 B
build/block-library/blocks/latest-posts/editor-rtl.css 199 B
build/block-library/blocks/latest-posts/editor.css 198 B
build/block-library/blocks/latest-posts/style-rtl.css 447 B
build/block-library/blocks/latest-posts/style.css 446 B
build/block-library/blocks/list/style-rtl.css 94 B
build/block-library/blocks/list/style.css 94 B
build/block-library/blocks/media-text/editor-rtl.css 266 B
build/block-library/blocks/media-text/editor.css 263 B
build/block-library/blocks/media-text/style-rtl.css 493 B
build/block-library/blocks/media-text/style.css 490 B
build/block-library/blocks/more/editor-rtl.css 431 B
build/block-library/blocks/more/editor.css 431 B
build/block-library/blocks/navigation-link/editor-rtl.css 649 B
build/block-library/blocks/navigation-link/editor.css 650 B
build/block-library/blocks/navigation-link/style-rtl.css 94 B
build/block-library/blocks/navigation-link/style.css 94 B
build/block-library/blocks/navigation-submenu/editor-rtl.css 299 B
build/block-library/blocks/navigation-submenu/editor.css 299 B
build/block-library/blocks/navigation-submenu/view.min.js 375 B
build/block-library/blocks/navigation/editor-rtl.css 1.98 kB
build/block-library/blocks/navigation/editor.css 1.99 kB
build/block-library/blocks/navigation/style-rtl.css 1.89 kB
build/block-library/blocks/navigation/style.css 1.88 kB
build/block-library/blocks/navigation/view.min.js 2.85 kB
build/block-library/blocks/nextpage/editor-rtl.css 395 B
build/block-library/blocks/nextpage/editor.css 395 B
build/block-library/blocks/page-list/editor-rtl.css 401 B
build/block-library/blocks/page-list/editor.css 402 B
build/block-library/blocks/page-list/style-rtl.css 175 B
build/block-library/blocks/page-list/style.css 175 B
build/block-library/blocks/paragraph/editor-rtl.css 157 B
build/block-library/blocks/paragraph/editor.css 157 B
build/block-library/blocks/paragraph/style-rtl.css 273 B
build/block-library/blocks/paragraph/style.css 273 B
build/block-library/blocks/post-author/style-rtl.css 175 B
build/block-library/blocks/post-author/style.css 176 B
build/block-library/blocks/post-comments-form/style-rtl.css 446 B
build/block-library/blocks/post-comments-form/style.css 446 B
build/block-library/blocks/post-comments/style-rtl.css 521 B
build/block-library/blocks/post-comments/style.css 521 B
build/block-library/blocks/post-excerpt/editor-rtl.css 73 B
build/block-library/blocks/post-excerpt/editor.css 73 B
build/block-library/blocks/post-excerpt/style-rtl.css 69 B
build/block-library/blocks/post-excerpt/style.css 69 B
build/block-library/blocks/post-featured-image/editor-rtl.css 721 B
build/block-library/blocks/post-featured-image/editor.css 721 B
build/block-library/blocks/post-featured-image/style-rtl.css 153 B
build/block-library/blocks/post-featured-image/style.css 153 B
build/block-library/blocks/post-template/editor-rtl.css 99 B
build/block-library/blocks/post-template/editor.css 98 B
build/block-library/blocks/post-template/style-rtl.css 323 B
build/block-library/blocks/post-template/style.css 323 B
build/block-library/blocks/post-terms/style-rtl.css 73 B
build/block-library/blocks/post-terms/style.css 73 B
build/block-library/blocks/post-title/style-rtl.css 80 B
build/block-library/blocks/post-title/style.css 80 B
build/block-library/blocks/preformatted/style-rtl.css 103 B
build/block-library/blocks/preformatted/style.css 103 B
build/block-library/blocks/pullquote/editor-rtl.css 198 B
build/block-library/blocks/pullquote/editor.css 198 B
build/block-library/blocks/pullquote/style-rtl.css 389 B
build/block-library/blocks/pullquote/style.css 388 B
build/block-library/blocks/pullquote/theme-rtl.css 167 B
build/block-library/blocks/pullquote/theme.css 167 B
build/block-library/blocks/query-pagination-numbers/editor-rtl.css 122 B
build/block-library/blocks/query-pagination-numbers/editor.css 121 B
build/block-library/blocks/query-pagination/editor-rtl.css 221 B
build/block-library/blocks/query-pagination/editor.css 211 B
build/block-library/blocks/query-pagination/style-rtl.css 234 B
build/block-library/blocks/query-pagination/style.css 231 B
build/block-library/blocks/query/editor-rtl.css 131 B
build/block-library/blocks/query/editor.css 132 B
build/block-library/blocks/quote/style-rtl.css 201 B
build/block-library/blocks/quote/style.css 201 B
build/block-library/blocks/quote/theme-rtl.css 223 B
build/block-library/blocks/quote/theme.css 226 B
build/block-library/blocks/read-more/style-rtl.css 132 B
build/block-library/blocks/read-more/style.css 132 B
build/block-library/blocks/rss/editor-rtl.css 202 B
build/block-library/blocks/rss/editor.css 204 B
build/block-library/blocks/rss/style-rtl.css 289 B
build/block-library/blocks/rss/style.css 288 B
build/block-library/blocks/search/editor-rtl.css 165 B
build/block-library/blocks/search/editor.css 165 B
build/block-library/blocks/search/style-rtl.css 397 B
build/block-library/blocks/search/style.css 398 B
build/block-library/blocks/search/theme-rtl.css 64 B
build/block-library/blocks/search/theme.css 64 B
build/block-library/blocks/separator/editor-rtl.css 99 B
build/block-library/blocks/separator/editor.css 99 B
build/block-library/blocks/separator/style-rtl.css 233 B
build/block-library/blocks/separator/style.css 233 B
build/block-library/blocks/separator/theme-rtl.css 172 B
build/block-library/blocks/separator/theme.css 172 B
build/block-library/blocks/shortcode/editor-rtl.css 474 B
build/block-library/blocks/shortcode/editor.css 474 B
build/block-library/blocks/site-logo/editor-rtl.css 744 B
build/block-library/blocks/site-logo/editor.css 744 B
build/block-library/blocks/site-logo/style-rtl.css 181 B
build/block-library/blocks/site-logo/style.css 181 B
build/block-library/blocks/site-tagline/editor-rtl.css 86 B
build/block-library/blocks/site-tagline/editor.css 86 B
build/block-library/blocks/site-title/editor-rtl.css 84 B
build/block-library/blocks/site-title/editor.css 84 B
build/block-library/blocks/social-link/editor-rtl.css 177 B
build/block-library/blocks/social-link/editor.css 177 B
build/block-library/blocks/social-links/editor-rtl.css 674 B
build/block-library/blocks/social-links/editor.css 673 B
build/block-library/blocks/social-links/style-rtl.css 1.37 kB
build/block-library/blocks/social-links/style.css 1.36 kB
build/block-library/blocks/spacer/editor-rtl.css 332 B
build/block-library/blocks/spacer/editor.css 332 B
build/block-library/blocks/spacer/style-rtl.css 48 B
build/block-library/blocks/spacer/style.css 48 B
build/block-library/blocks/table/editor-rtl.css 471 B
build/block-library/blocks/table/editor.css 472 B
build/block-library/blocks/table/style-rtl.css 481 B
build/block-library/blocks/table/style.css 481 B
build/block-library/blocks/table/theme-rtl.css 188 B
build/block-library/blocks/table/theme.css 188 B
build/block-library/blocks/tag-cloud/style-rtl.css 214 B
build/block-library/blocks/tag-cloud/style.css 215 B
build/block-library/blocks/template-part/editor-rtl.css 560 B
build/block-library/blocks/template-part/editor.css 559 B
build/block-library/blocks/template-part/theme-rtl.css 101 B
build/block-library/blocks/template-part/theme.css 101 B
build/block-library/blocks/text-columns/editor-rtl.css 95 B
build/block-library/blocks/text-columns/editor.css 95 B
build/block-library/blocks/text-columns/style-rtl.css 166 B
build/block-library/blocks/text-columns/style.css 166 B
build/block-library/blocks/verse/style-rtl.css 87 B
build/block-library/blocks/verse/style.css 87 B
build/block-library/blocks/video/editor-rtl.css 571 B
build/block-library/blocks/video/editor.css 572 B
build/block-library/blocks/video/style-rtl.css 173 B
build/block-library/blocks/video/style.css 173 B
build/block-library/blocks/video/theme-rtl.css 124 B
build/block-library/blocks/video/theme.css 124 B
build/block-library/common-rtl.css 921 B
build/block-library/common.css 919 B
build/block-library/editor-rtl.css 10.1 kB
build/block-library/editor.css 10.1 kB
build/block-library/reset-rtl.css 474 B
build/block-library/reset.css 474 B
build/block-library/style-rtl.css 11.3 kB
build/block-library/style.css 11.3 kB
build/block-library/theme-rtl.css 672 B
build/block-library/theme.css 676 B
build/block-serialization-default-parser/index.min.js 1.12 kB
build/block-serialization-spec-parser/index.min.js 2.83 kB
build/components/index.min.js 215 kB
build/components/style-rtl.css 15.5 kB
build/components/style.css 15.5 kB
build/compose/index.min.js 11.2 kB
build/customize-widgets/index.min.js 11.4 kB
build/customize-widgets/style-rtl.css 1.5 kB
build/customize-widgets/style.css 1.49 kB
build/data-controls/index.min.js 663 B
build/data/index.min.js 7.47 kB
build/date/index.min.js 31.9 kB
build/deprecated/index.min.js 518 B
build/dom-ready/index.min.js 336 B
build/dom/index.min.js 4.53 kB
build/edit-navigation/index.min.js 16.2 kB
build/edit-navigation/style-rtl.css 3.76 kB
build/edit-navigation/style.css 3.76 kB
build/edit-post/classic-rtl.css 546 B
build/edit-post/classic.css 547 B
build/edit-widgets/index.min.js 16.7 kB
build/edit-widgets/style-rtl.css 4.17 kB
build/edit-widgets/style.css 4.17 kB
build/editor/style-rtl.css 3.71 kB
build/editor/style.css 3.71 kB
build/element/index.min.js 3.32 kB
build/escape-html/index.min.js 548 B
build/format-library/index.min.js 6.62 kB
build/format-library/style-rtl.css 571 B
build/format-library/style.css 571 B
build/hooks/index.min.js 1.66 kB
build/html-entities/index.min.js 454 B
build/i18n/index.min.js 3.79 kB
build/is-shallow-equal/index.min.js 535 B
build/keyboard-shortcuts/index.min.js 1.83 kB
build/keycodes/index.min.js 1.41 kB
build/list-reusable-blocks/index.min.js 1.75 kB
build/list-reusable-blocks/style-rtl.css 838 B
build/list-reusable-blocks/style.css 838 B
build/media-utils/index.min.js 2.94 kB
build/notices/index.min.js 957 B
build/nux/index.min.js 2.12 kB
build/nux/style-rtl.css 747 B
build/nux/style.css 743 B
build/plugins/index.min.js 1.98 kB
build/primitives/index.min.js 949 B
build/priority-queue/index.min.js 611 B
build/react-i18n/index.min.js 704 B
build/react-refresh-entry/index.min.js 8.44 kB
build/react-refresh-runtime/index.min.js 7.31 kB
build/redux-routine/index.min.js 2.69 kB
build/reusable-blocks/index.min.js 2.25 kB
build/reusable-blocks/style-rtl.css 256 B
build/reusable-blocks/style.css 256 B
build/rich-text/index.min.js 11.1 kB
build/server-side-render/index.min.js 1.61 kB
build/shortcode/index.min.js 1.52 kB
build/token-list/index.min.js 668 B
build/url/index.min.js 1.92 kB
build/viewport/index.min.js 1.08 kB
build/warning/index.min.js 280 B
build/widgets/index.min.js 7.18 kB
build/widgets/style-rtl.css 1.16 kB
build/widgets/style.css 1.16 kB
build/wordcount/index.min.js 1.07 kB

compressed-size-action

@geriux geriux changed the title Mobile - Rich Text - Validate link colors Mobile - Fix Custom Palette colors and support multiple origins Feb 2, 2022
@geriux geriux force-pushed the rnmobile/fix/invalid-link-colors branch from b29ab8a to b542e4e Compare February 2, 2022 17:19
@geriux geriux removed the [Status] In Progress Tracking issues with work in progress label Feb 2, 2022
@geriux geriux marked this pull request as ready for review February 2, 2022 17:25
Copy link
Contributor

@fluiddot fluiddot left a comment

Choose a reason for hiding this comment

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

Thanks @geriux for addressing this issue 🙇 . I tested the changes and so far I encountered the following issues, I'd say that none of them are critical but it would be interesting to check them further:

Block-based themes - Highlight text within a Button block is not preserved when saving

Steps:

  1. Add a Buttons block.
  2. Type some text within a Button block.
  3. Select part of the text.
  4. Tap on the Highlight text color button (Button with A icon).
  5. Select a color.
  6. Observe that color of the selected text changed to previously picked.
  7. Save the post/page.
  8. Observe that the color of the selected text changes back to its original color.

NOTE: I couldn't reproduce this issue either in version 19.0 or the web version.

Standard themes - Default colors are reverse ordered

Steps:

  1. Add a Paragraph block.
  2. Open the block settings.
  3. Tap on the Text option.
  4. Observe that the colors are not ordered as listed here.

NOTE: I couldn't reproduce this issue in version 19.0.

Click here to display screenshot
Before After

Comment on lines 1019 to 1026
getLinkTextColor( defaultColor ) {
const { style } = this.props;
const customColor = style?.linkColor && colord( style.linkColor );

return customColor && customColor.isValid()
? customColor.toHex()
: defaultColor;
}
Copy link
Contributor

Choose a reason for hiding this comment

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

Now that the var:preset values are parsed via parseStylesVariables when getting the global styles, probably we no longer need to have this check, wdyt?

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 think we should keep it, if a user sets something like #fff for the links within the theme.json it would generate a crash on Android 😅

packages/rich-text/src/component/index.native.js Outdated Show resolved Hide resolved
Copy link
Contributor

@fluiddot fluiddot left a comment

Choose a reason for hiding this comment

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

I checked further the issue "Default colors are reverse ordered" (reference) and I'm getting different results by platform, site type and themes 🙃. I'm not sure what's causing it but it would be great to investigate it.

Simple site - Block-based theme (with a custom palette) ❌

Theme colors:
Screenshot 2022-02-04 at 12 16 05

iOS Android

iOS:

  • Colors are not inverted but the custom palette is placed after the theme palette ❌ .
  • Colors displayed in the Cover block are inverted ❌ .

Android:

  • Colors are displayed in correct order ✅ .
  • Colors displayed in the Cover block are inverted ❌ .

Simple site - Standard theme (Seedlet theme) ❌

iOS Android

iOS:

  • Colors are inverted ❌ .
  • Colors displayed in the Cover block are inverted ❌ .

Android:

  • Colors are displayed in correct order ✅ .
  • Colors displayed in the Cover block are not the first ones from the palette ❌ .

Self-hosted - Standard theme (Seedlet theme) ❌

iOS Android

iOS:

  • Colors are inverted ❌ .
  • Colors displayed in the Cover block are not the first ones from the palette ❌ .

Android:

  • Colors are displayed in correct order ✅ .
  • Colors displayed in the Cover block are not the first ones from the palette ❌ .

packages/block-library/src/cover/edit.native.js Outdated Show resolved Hide resolved
@geriux
Copy link
Member Author

geriux commented Feb 4, 2022

Hey @fluiddot Thank you so much for the review and testing! I'll start looking at the feedback and addressing your comments! 🙇

Gerardo added 2 commits February 7, 2022 11:57
# Conflicts:
#	packages/rich-text/src/component/index.native.js
@geriux geriux requested a review from ellatrix as a code owner February 8, 2022 12:56
@geriux
Copy link
Member Author

geriux commented Feb 11, 2022

@geriux I took a quick spin through the test build (iPhone 13 Pro, iOS 15.2.1) and it's looking good! Just one small design detail that I'd like to refine, if possible. The spacing above and below the color sections is a bit tight — can we add ~8px (our "base" spacing unit) of margin above and below the color swatch "group" of cells (before the first section heading and after the last row of color swatches)? Here's a quick example:

Thanks for testing it out @iamthomasbishop! I added an extra of 8px:

What do you think?

Thanks again!

@geriux
Copy link
Member Author

geriux commented Feb 11, 2022

New builds are available:

Copy link
Contributor

@fluiddot fluiddot left a comment

Choose a reason for hiding this comment

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

I've done another round of tests following the test instructions on both platforms using the installable builds, and everything works fine ✅, awesome work @geriux 🥇!

I also confirm that the issue "Color tabs disappear when selecting a color and navigating between Solid and Gradient" is addressed with the recent commits 🎊 .

Apart from the two comments I added, everything is ready from my side to consider the approval of this PR.

@iamthomasbishop
Copy link

@geriux that looks better, thank you! :shipit:

Gerardo added 2 commits February 14, 2022 14:33
@geriux geriux requested a review from fluiddot February 14, 2022 13:45
Copy link
Contributor

@fluiddot fluiddot left a comment

Choose a reason for hiding this comment

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

I verified that the latest comments have been addressed, I also performed a quick test locally as a smoke test since I fully tested the PR when doing this review. On the other hand, I added a minor comment on the code, but feel free to omit it if you wish.

LGTM 🎊 !

@geriux geriux merged commit b22ce95 into trunk Feb 16, 2022
@geriux geriux deleted the rnmobile/fix/invalid-link-colors branch February 16, 2022 08:03
@github-actions github-actions bot added this to the Gutenberg 12.7 milestone Feb 16, 2022
@cbravobernal cbravobernal added [Type] Bug An existing feature does not function as intended and removed [Type] Bug An existing feature does not function as intended labels Feb 27, 2022
@cbravobernal cbravobernal changed the title Mobile - Fix Custom Palette colors and support multiple origins and theme cache issues Fix Custom Palette colors and support multiple origins and theme cache issues. Feb 27, 2022
SiobhyB pushed a commit that referenced this pull request Mar 3, 2022
…heme cache issues (#38417)

* Mobile - Rich Text - Validate link colors before passing an invalid one to Aztec, the color parser throws an error if its invalid.

* Remove unneeded check

* Mobile - Global styles - Parse custom palette colors e.g var:preset|color|custom-color-2

* Mobile - Global styles - Update tests to take into account custom colors

* Mobile - Adds useMobileGlobalStylesColors hook to get global styles palette colors

* Mobile - Update Cover and Global styles test

* Mobile - Cover - Use memo for the inline color palette

* Mobile - Cover - Revert test change due to colors update

* Mobile - Add support for multiple color palettes and gradients including custom ones

* Mobile - Rich Text - Simply color palettes merge

* Mobile - Global styles - Enable default palette and default gradients if no value comes from the API

* Mobile - Update CHANGELOG

* Mobile - Global styles utils - Update test with default values

* Mobile - Provider - Fix replacing previous colors on settings update

* Mobile - Enable text and color settings since we are providing default colors when there's no theme data available

* Mobile - Android - Fix issue where a restart was needed to load the theme colors

* Mobile - Reset Global styles base styles for standard themes. Fixes sync issues when changing between themes.

* Mobile - Palette screen - Add top and bottom padding for the container of the color palettes

* Mobile - Bottom sheet navigation screen - Add missing dependencies in useMemo

* Mobile - Global styles - useMobileGlobalStylesColors: use the type to get the fallback colors/gradients

* Mobile - Provider - Always return getColorsAndGradients if it's not a block theme

* Mobile - Global styles - Enable default color/gradient palette if its not an empty array

* Mobile - Global styles - Set default values for defaultEditor colors and defaultEditorGradients
@brcavallaro
Copy link

brcavallaro commented Mar 20, 2022

Hi @geriux! I'm trialing for the Penguin team (QE) and I was trying to set up one site to reproduce the testing scenarios described in the PR, but I do not see the Full Site Editing option under my site settings (instructions from Test Case 1). Is there any kind of toggle/group to be set to my user or something similar?

Just some extra info, I was trying with a block-based theme (my site is using Quadrat Yellow).

Any help will be very welcome! Thank you!

@geriux
Copy link
Member Author

geriux commented Mar 21, 2022

Hey @brcavallaro 👋

but I do not see the Full Site Editing option under my site settings (instructions from Test Case 1).

This option is no longer available because Full site editing is no longer opt-in and it's enabled automatically once you use a block-based theme, like Quadrat, I'll edit the PR description to reflect that.

You should have the editor enabled already by going to Appearance > Editor (beta).

Could you try if you can see that option?

Thanks!

@brcavallaro
Copy link

Hey @brcavallaro wave

but I do not see the Full Site Editing option under my site settings (instructions from Test Case 1).

This option is no longer available because Full site editing is no longer opt-in and it's enabled automatically once you use a block-based theme, like Quadrat, I'll edit the PR description to reflect that.

You should have the editor enabled already by going to Appearance > Editor (beta).

Could you try if you can see that option?

Thanks!

Hi @geriux 👋

So sorry about the looong delay without replying here. But just FYI, I can see the option you mentioned, so we're all good now :)

Thank you very much for the support!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Mobile App - Automation Label used to initiate Mobile App PR Automation Mobile App - i.e. Android or iOS Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change) [Type] Bug An existing feature does not function as intended
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support multiple color palettes on Mobile
5 participants