Skip to content

Conversation

tyxla
Copy link
Member

@tyxla tyxla commented May 9, 2024

What?

Contains work to add React 19 support.

Not intended to be merged directly, but rather to serve as a container for experimentation with all necessary updates.

See #71336 for tracking the migration effort.

Why?

Keeping up to date with our latest framework dependencies and offering all the latest features.

How?

Bumping deps and working on various fixes to ensure React 19 compat. Don't merge.

Testing Instructions

  • Smoke test the app and look out for errors
  • Check CI for errors.

Testing Instructions for Keyboard

Same as above

Screenshots or screencast

None

@tyxla tyxla self-assigned this May 9, 2024
@tyxla tyxla mentioned this pull request May 9, 2024
@Mamaduka
Copy link
Member

Mamaduka commented May 9, 2024

It's odd that we see some warnings in the unit test on this PR but not when I did the React 18.3 upgrade.

@tyxla
Copy link
Member Author

tyxla commented May 9, 2024

Indeed. Maybe they tinkered with some feature flags between 18.3 and 19 beta.

@tyxla
Copy link
Member Author

tyxla commented May 9, 2024

If I understand correctly, many of the test warnings seem to be because of how Ariakit retrieves the ref prop, it falls back to element.ref:

https://github.com/ariakit/ariakit/blob/73eca3904b97615a9fbc8c82eef7bc3afc86dae1/packages/ariakit-react-core/src/utils/misc.ts#L44

and that yields a warning in React 19. At the same time, I assume Ariakit will stay compatible with older React versions where ref was still handled specially.

@diegohaz @DaniGuardiola any idea if we're planning to do anything about these warnings in Reakit?

@DaniGuardiola
Copy link
Member

@diegohaz could Ariakit possibly use some sort of React version detection instead and use it to determine what to do, rather than this fallback system that creates warnings?

@diegohaz
Copy link
Member

diegohaz commented May 9, 2024

That part was updated to avoid those warnings (ref: https://x.com/diegohaz/status/1780794744534163888). But apparently it's not enough?

I still don't know the idiomatic way to fix that.

@tyxla
Copy link
Member Author

tyxla commented May 9, 2024

@diegohaz @DaniGuardiola I actually tried updating to the latest Ariakit version in this branch and it seems to resolve those warnings 👍

Dani has started working on the update in #60992, and here we have one more reason to move it forward.

@tyxla tyxla force-pushed the try/react-19-beta branch from 171512b to 1dca5c4 Compare May 23, 2024 11:15
@tyxla tyxla changed the title Try: React 19 beta Try: React 19 RC May 23, 2024
@tyxla
Copy link
Member Author

tyxla commented May 23, 2024

Updated to the RC. Hoping to have some time next week to play more thoroughly with it.

Copy link

github-actions bot commented May 23, 2024

Size Change: +12.1 kB (+0.63%)

Total Size: 1.93 MB

Filename Size Change
build/block-editor/index.min.js 266 kB -35 B (-0.01%)
build/block-library/index.min.js 233 kB -2 B (0%)
build/blocks/index.min.js 52.5 kB -15 B (-0.03%)
build/element/index.min.js 58.4 kB +53.6 kB (+1113.03%) 🆘
build/vendors/react-dom.min.js 1.44 kB -40.3 kB (-96.55%) 🏆
build/vendors/react-jsx-runtime.min.js 413 B -143 B (-25.72%) 🎉
build/vendors/react.min.js 2.93 kB -1.08 kB (-26.94%) 🎉
ℹ️ View Unchanged
Filename Size
build-module/a11y/index.min.js 482 B
build-module/block-library/accordion/view.min.js 427 B
build-module/block-library/file/view.min.js 466 B
build-module/block-library/form/view.min.js 533 B
build-module/block-library/image/view.min.js 1.78 kB
build-module/block-library/navigation/view.min.js 1.19 kB
build-module/block-library/query/view.min.js 767 B
build-module/block-library/search/view.min.js 639 B
build-module/interactivity-router/full-page.min.js 565 B
build-module/interactivity-router/index.min.js 11.4 kB
build-module/interactivity/debug.min.js 17.6 kB
build-module/interactivity/index.min.js 14 kB
build/a11y/index.min.js 925 B
build/annotations/index.min.js 2.13 kB
build/api-fetch/index.min.js 2.46 kB
build/autop/index.min.js 2.12 kB
build/blob/index.min.js 579 B
build/block-directory/index.min.js 7.18 kB
build/block-directory/style-rtl.css 1.03 kB
build/block-directory/style.css 1.03 kB
build/block-editor/content-rtl.css 4.43 kB
build/block-editor/content.css 4.42 kB
build/block-editor/default-editor-styles-rtl.css 392 B
build/block-editor/default-editor-styles.css 392 B
build/block-editor/style-rtl.css 15.9 kB
build/block-editor/style.css 15.9 kB
build/block-library/blocks/accordion/style-rtl.css 593 B
build/block-library/blocks/accordion/style.css 592 B
build/block-library/blocks/archives/editor-rtl.css 61 B
build/block-library/blocks/archives/editor.css 61 B
build/block-library/blocks/archives/style-rtl.css 90 B
build/block-library/blocks/archives/style.css 90 B
build/block-library/blocks/audio/editor-rtl.css 149 B
build/block-library/blocks/audio/editor.css 151 B
build/block-library/blocks/audio/style-rtl.css 132 B
build/block-library/blocks/audio/style.css 132 B
build/block-library/blocks/audio/theme-rtl.css 134 B
build/block-library/blocks/audio/theme.css 134 B
build/block-library/blocks/avatar/editor-rtl.css 115 B
build/block-library/blocks/avatar/editor.css 115 B
build/block-library/blocks/avatar/style-rtl.css 104 B
build/block-library/blocks/avatar/style.css 104 B
build/block-library/blocks/button/editor-rtl.css 265 B
build/block-library/blocks/button/editor.css 265 B
build/block-library/blocks/button/style-rtl.css 554 B
build/block-library/blocks/button/style.css 554 B
build/block-library/blocks/buttons/editor-rtl.css 291 B
build/block-library/blocks/buttons/editor.css 291 B
build/block-library/blocks/buttons/style-rtl.css 349 B
build/block-library/blocks/buttons/style.css 349 B
build/block-library/blocks/calendar/style-rtl.css 239 B
build/block-library/blocks/calendar/style.css 239 B
build/block-library/blocks/categories/editor-rtl.css 132 B
build/block-library/blocks/categories/editor.css 131 B
build/block-library/blocks/categories/style-rtl.css 152 B
build/block-library/blocks/categories/style.css 152 B
build/block-library/blocks/code/editor-rtl.css 53 B
build/block-library/blocks/code/editor.css 53 B
build/block-library/blocks/code/style-rtl.css 139 B
build/block-library/blocks/code/style.css 139 B
build/block-library/blocks/code/theme-rtl.css 122 B
build/block-library/blocks/code/theme.css 122 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 420 B
build/block-library/blocks/columns/style.css 420 B
build/block-library/blocks/comment-author-avatar/editor-rtl.css 124 B
build/block-library/blocks/comment-author-avatar/editor.css 124 B
build/block-library/blocks/comment-author-name/style-rtl.css 72 B
build/block-library/blocks/comment-author-name/style.css 72 B
build/block-library/blocks/comment-content/style-rtl.css 120 B
build/block-library/blocks/comment-content/style.css 120 B
build/block-library/blocks/comment-date/style-rtl.css 65 B
build/block-library/blocks/comment-date/style.css 65 B
build/block-library/blocks/comment-edit-link/style-rtl.css 70 B
build/block-library/blocks/comment-edit-link/style.css 70 B
build/block-library/blocks/comment-reply-link/style-rtl.css 71 B
build/block-library/blocks/comment-reply-link/style.css 71 B
build/block-library/blocks/comment-template/style-rtl.css 191 B
build/block-library/blocks/comment-template/style.css 191 B
build/block-library/blocks/comments-pagination-numbers/editor-rtl.css 122 B
build/block-library/blocks/comments-pagination-numbers/editor.css 121 B
build/block-library/blocks/comments-pagination/editor-rtl.css 168 B
build/block-library/blocks/comments-pagination/editor.css 168 B
build/block-library/blocks/comments-pagination/style-rtl.css 201 B
build/block-library/blocks/comments-pagination/style.css 201 B
build/block-library/blocks/comments-title/editor-rtl.css 75 B
build/block-library/blocks/comments-title/editor.css 75 B
build/block-library/blocks/comments/editor-rtl.css 842 B
build/block-library/blocks/comments/editor.css 842 B
build/block-library/blocks/comments/style-rtl.css 637 B
build/block-library/blocks/comments/style.css 637 B
build/block-library/blocks/cover/editor-rtl.css 631 B
build/block-library/blocks/cover/editor.css 631 B
build/block-library/blocks/cover/style-rtl.css 1.7 kB
build/block-library/blocks/cover/style.css 1.69 kB
build/block-library/blocks/details/editor-rtl.css 65 B
build/block-library/blocks/details/editor.css 65 B
build/block-library/blocks/details/style-rtl.css 86 B
build/block-library/blocks/details/style.css 86 B
build/block-library/blocks/embed/editor-rtl.css 331 B
build/block-library/blocks/embed/editor.css 331 B
build/block-library/blocks/embed/style-rtl.css 419 B
build/block-library/blocks/embed/style.css 419 B
build/block-library/blocks/embed/theme-rtl.css 133 B
build/block-library/blocks/embed/theme.css 133 B
build/block-library/blocks/file/editor-rtl.css 326 B
build/block-library/blocks/file/editor.css 326 B
build/block-library/blocks/file/style-rtl.css 278 B
build/block-library/blocks/file/style.css 278 B
build/block-library/blocks/footnotes/style-rtl.css 198 B
build/block-library/blocks/footnotes/style.css 197 B
build/block-library/blocks/form-input/editor-rtl.css 229 B
build/block-library/blocks/form-input/editor.css 229 B
build/block-library/blocks/form-input/style-rtl.css 349 B
build/block-library/blocks/form-input/style.css 349 B
build/block-library/blocks/form-submission-notification/editor-rtl.css 344 B
build/block-library/blocks/form-submission-notification/editor.css 341 B
build/block-library/blocks/form-submit-button/style-rtl.css 69 B
build/block-library/blocks/form-submit-button/style.css 69 B
build/block-library/blocks/freeform/editor-rtl.css 2.59 kB
build/block-library/blocks/freeform/editor.css 2.59 kB
build/block-library/blocks/gallery/editor-rtl.css 615 B
build/block-library/blocks/gallery/editor.css 616 B
build/block-library/blocks/gallery/style-rtl.css 1.83 kB
build/block-library/blocks/gallery/style.css 1.83 kB
build/block-library/blocks/gallery/theme-rtl.css 108 B
build/block-library/blocks/gallery/theme.css 108 B
build/block-library/blocks/group/editor-rtl.css 334 B
build/block-library/blocks/group/editor.css 334 B
build/block-library/blocks/group/style-rtl.css 103 B
build/block-library/blocks/group/style.css 103 B
build/block-library/blocks/group/theme-rtl.css 79 B
build/block-library/blocks/group/theme.css 79 B
build/block-library/blocks/heading/style-rtl.css 188 B
build/block-library/blocks/heading/style.css 188 B
build/block-library/blocks/html/editor-rtl.css 353 B
build/block-library/blocks/html/editor.css 354 B
build/block-library/blocks/image/editor-rtl.css 763 B
build/block-library/blocks/image/editor.css 763 B
build/block-library/blocks/image/style-rtl.css 1.6 kB
build/block-library/blocks/image/style.css 1.59 kB
build/block-library/blocks/image/theme-rtl.css 137 B
build/block-library/blocks/image/theme.css 137 B
build/block-library/blocks/latest-comments/style-rtl.css 355 B
build/block-library/blocks/latest-comments/style.css 354 B
build/block-library/blocks/latest-posts/editor-rtl.css 139 B
build/block-library/blocks/latest-posts/editor.css 138 B
build/block-library/blocks/latest-posts/style-rtl.css 520 B
build/block-library/blocks/latest-posts/style.css 520 B
build/block-library/blocks/list/style-rtl.css 107 B
build/block-library/blocks/list/style.css 107 B
build/block-library/blocks/loginout/style-rtl.css 61 B
build/block-library/blocks/loginout/style.css 61 B
build/block-library/blocks/media-text/editor-rtl.css 321 B
build/block-library/blocks/media-text/editor.css 320 B
build/block-library/blocks/media-text/style-rtl.css 543 B
build/block-library/blocks/media-text/style.css 542 B
build/block-library/blocks/more/editor-rtl.css 393 B
build/block-library/blocks/more/editor.css 393 B
build/block-library/blocks/navigation-link/editor-rtl.css 566 B
build/block-library/blocks/navigation-link/editor.css 568 B
build/block-library/blocks/navigation-link/style-rtl.css 192 B
build/block-library/blocks/navigation-link/style.css 191 B
build/block-library/blocks/navigation-submenu/editor-rtl.css 295 B
build/block-library/blocks/navigation-submenu/editor.css 294 B
build/block-library/blocks/navigation/editor-rtl.css 2.23 kB
build/block-library/blocks/navigation/editor.css 2.24 kB
build/block-library/blocks/navigation/style-rtl.css 2.27 kB
build/block-library/blocks/navigation/style.css 2.26 kB
build/block-library/blocks/nextpage/editor-rtl.css 392 B
build/block-library/blocks/nextpage/editor.css 392 B
build/block-library/blocks/page-list/editor-rtl.css 356 B
build/block-library/blocks/page-list/editor.css 356 B
build/block-library/blocks/page-list/style-rtl.css 192 B
build/block-library/blocks/page-list/style.css 192 B
build/block-library/blocks/paragraph/editor-rtl.css 251 B
build/block-library/blocks/paragraph/editor.css 251 B
build/block-library/blocks/paragraph/style-rtl.css 341 B
build/block-library/blocks/paragraph/style.css 340 B
build/block-library/blocks/post-author-biography/style-rtl.css 74 B
build/block-library/blocks/post-author-biography/style.css 74 B
build/block-library/blocks/post-author-name/style-rtl.css 69 B
build/block-library/blocks/post-author-name/style.css 69 B
build/block-library/blocks/post-author/style-rtl.css 188 B
build/block-library/blocks/post-author/style.css 189 B
build/block-library/blocks/post-comments-count/style-rtl.css 72 B
build/block-library/blocks/post-comments-count/style.css 72 B
build/block-library/blocks/post-comments-form/editor-rtl.css 96 B
build/block-library/blocks/post-comments-form/editor.css 96 B
build/block-library/blocks/post-comments-form/style-rtl.css 527 B
build/block-library/blocks/post-comments-form/style.css 528 B
build/block-library/blocks/post-comments-link/style-rtl.css 71 B
build/block-library/blocks/post-comments-link/style.css 71 B
build/block-library/blocks/post-content/style-rtl.css 61 B
build/block-library/blocks/post-content/style.css 61 B
build/block-library/blocks/post-date/style-rtl.css 62 B
build/block-library/blocks/post-date/style.css 62 B
build/block-library/blocks/post-excerpt/editor-rtl.css 71 B
build/block-library/blocks/post-excerpt/editor.css 71 B
build/block-library/blocks/post-excerpt/style-rtl.css 155 B
build/block-library/blocks/post-excerpt/style.css 155 B
build/block-library/blocks/post-featured-image/editor-rtl.css 715 B
build/block-library/blocks/post-featured-image/editor.css 712 B
build/block-library/blocks/post-featured-image/style-rtl.css 347 B
build/block-library/blocks/post-featured-image/style.css 347 B
build/block-library/blocks/post-navigation-link/style-rtl.css 215 B
build/block-library/blocks/post-navigation-link/style.css 214 B
build/block-library/blocks/post-template/style-rtl.css 414 B
build/block-library/blocks/post-template/style.css 414 B
build/block-library/blocks/post-terms/style-rtl.css 96 B
build/block-library/blocks/post-terms/style.css 96 B
build/block-library/blocks/post-time-to-read/style-rtl.css 70 B
build/block-library/blocks/post-time-to-read/style.css 70 B
build/block-library/blocks/post-title/style-rtl.css 162 B
build/block-library/blocks/post-title/style.css 162 B
build/block-library/blocks/preformatted/style-rtl.css 125 B
build/block-library/blocks/preformatted/style.css 125 B
build/block-library/blocks/pullquote/editor-rtl.css 133 B
build/block-library/blocks/pullquote/editor.css 133 B
build/block-library/blocks/pullquote/style-rtl.css 365 B
build/block-library/blocks/pullquote/style.css 365 B
build/block-library/blocks/pullquote/theme-rtl.css 176 B
build/block-library/blocks/pullquote/theme.css 176 B
build/block-library/blocks/query-pagination-numbers/editor-rtl.css 121 B
build/block-library/blocks/query-pagination-numbers/editor.css 118 B
build/block-library/blocks/query-pagination/editor-rtl.css 154 B
build/block-library/blocks/query-pagination/editor.css 154 B
build/block-library/blocks/query-pagination/style-rtl.css 237 B
build/block-library/blocks/query-pagination/style.css 237 B
build/block-library/blocks/query-title/style-rtl.css 64 B
build/block-library/blocks/query-title/style.css 64 B
build/block-library/blocks/query-total/style-rtl.css 64 B
build/block-library/blocks/query-total/style.css 64 B
build/block-library/blocks/query/editor-rtl.css 432 B
build/block-library/blocks/query/editor.css 432 B
build/block-library/blocks/quote/style-rtl.css 238 B
build/block-library/blocks/quote/style.css 238 B
build/block-library/blocks/quote/theme-rtl.css 233 B
build/block-library/blocks/quote/theme.css 236 B
build/block-library/blocks/read-more/style-rtl.css 131 B
build/block-library/blocks/read-more/style.css 131 B
build/block-library/blocks/rss/editor-rtl.css 126 B
build/block-library/blocks/rss/editor.css 126 B
build/block-library/blocks/rss/style-rtl.css 284 B
build/block-library/blocks/rss/style.css 283 B
build/block-library/blocks/search/editor-rtl.css 199 B
build/block-library/blocks/search/editor.css 199 B
build/block-library/blocks/search/style-rtl.css 674 B
build/block-library/blocks/search/style.css 671 B
build/block-library/blocks/search/theme-rtl.css 113 B
build/block-library/blocks/search/theme.css 113 B
build/block-library/blocks/separator/editor-rtl.css 100 B
build/block-library/blocks/separator/editor.css 100 B
build/block-library/blocks/separator/style-rtl.css 248 B
build/block-library/blocks/separator/style.css 248 B
build/block-library/blocks/separator/theme-rtl.css 195 B
build/block-library/blocks/separator/theme.css 195 B
build/block-library/blocks/shortcode/editor-rtl.css 286 B
build/block-library/blocks/shortcode/editor.css 286 B
build/block-library/blocks/site-logo/editor-rtl.css 773 B
build/block-library/blocks/site-logo/editor.css 770 B
build/block-library/blocks/site-logo/style-rtl.css 218 B
build/block-library/blocks/site-logo/style.css 218 B
build/block-library/blocks/site-tagline/editor-rtl.css 87 B
build/block-library/blocks/site-tagline/editor.css 87 B
build/block-library/blocks/site-tagline/style-rtl.css 65 B
build/block-library/blocks/site-tagline/style.css 65 B
build/block-library/blocks/site-title/editor-rtl.css 85 B
build/block-library/blocks/site-title/editor.css 85 B
build/block-library/blocks/site-title/style-rtl.css 143 B
build/block-library/blocks/site-title/style.css 143 B
build/block-library/blocks/social-link/editor-rtl.css 314 B
build/block-library/blocks/social-link/editor.css 314 B
build/block-library/blocks/social-links/editor-rtl.css 339 B
build/block-library/blocks/social-links/editor.css 338 B
build/block-library/blocks/social-links/style-rtl.css 1.51 kB
build/block-library/blocks/social-links/style.css 1.51 kB
build/block-library/blocks/spacer/editor-rtl.css 346 B
build/block-library/blocks/spacer/editor.css 346 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-of-contents/style-rtl.css 83 B
build/block-library/blocks/table-of-contents/style.css 83 B
build/block-library/blocks/table/editor-rtl.css 394 B
build/block-library/blocks/table/editor.css 394 B
build/block-library/blocks/table/style-rtl.css 640 B
build/block-library/blocks/table/style.css 639 B
build/block-library/blocks/table/theme-rtl.css 152 B
build/block-library/blocks/table/theme.css 152 B
build/block-library/blocks/tag-cloud/editor-rtl.css 92 B
build/block-library/blocks/tag-cloud/editor.css 92 B
build/block-library/blocks/tag-cloud/style-rtl.css 248 B
build/block-library/blocks/tag-cloud/style.css 248 B
build/block-library/blocks/template-part/editor-rtl.css 368 B
build/block-library/blocks/template-part/editor.css 368 B
build/block-library/blocks/template-part/theme-rtl.css 113 B
build/block-library/blocks/template-part/theme.css 113 B
build/block-library/blocks/term-description/style-rtl.css 126 B
build/block-library/blocks/term-description/style.css 126 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 165 B
build/block-library/blocks/text-columns/style.css 165 B
build/block-library/blocks/verse/style-rtl.css 98 B
build/block-library/blocks/verse/style.css 98 B
build/block-library/blocks/video/editor-rtl.css 413 B
build/block-library/blocks/video/editor.css 414 B
build/block-library/blocks/video/style-rtl.css 202 B
build/block-library/blocks/video/style.css 202 B
build/block-library/blocks/video/theme-rtl.css 134 B
build/block-library/blocks/video/theme.css 134 B
build/block-library/classic-rtl.css 179 B
build/block-library/classic.css 179 B
build/block-library/common-rtl.css 1.08 kB
build/block-library/common.css 1.08 kB
build/block-library/editor-elements-rtl.css 75 B
build/block-library/editor-elements.css 75 B
build/block-library/editor-rtl.css 11.4 kB
build/block-library/editor.css 11.4 kB
build/block-library/elements-rtl.css 54 B
build/block-library/elements.css 54 B
build/block-library/reset-rtl.css 472 B
build/block-library/reset.css 472 B
build/block-library/style-rtl.css 15.4 kB
build/block-library/style.css 15.4 kB
build/block-library/theme-rtl.css 715 B
build/block-library/theme.css 719 B
build/block-serialization-default-parser/index.min.js 1.12 kB
build/block-serialization-spec-parser/index.min.js 2.87 kB
build/commands/index.min.js 16.3 kB
build/commands/style-rtl.css 956 B
build/commands/style.css 953 B
build/components/index.min.js 252 kB
build/components/style-rtl.css 13.7 kB
build/components/style.css 13.7 kB
build/compose/index.min.js 12.8 kB
build/core-commands/index.min.js 3.64 kB
build/core-data/index.min.js 74.9 kB
build/customize-widgets/index.min.js 11 kB
build/customize-widgets/style-rtl.css 1.43 kB
build/customize-widgets/style.css 1.43 kB
build/data-controls/index.min.js 641 B
build/data/index.min.js 8.67 kB
build/date/index.min.js 18 kB
build/deprecated/index.min.js 458 B
build/dom-ready/index.min.js 325 B
build/dom/index.min.js 4.68 kB
build/edit-post/classic-rtl.css 577 B
build/edit-post/classic.css 578 B
build/edit-post/index.min.js 13.3 kB
build/edit-post/style-rtl.css 2.69 kB
build/edit-post/style.css 2.69 kB
build/edit-site/index.min.js 236 kB
build/edit-site/posts-rtl.css 8.85 kB
build/edit-site/posts.css 8.86 kB
build/edit-site/style-rtl.css 14.9 kB
build/edit-site/style.css 15 kB
build/edit-widgets/index.min.js 17.8 kB
build/edit-widgets/style-rtl.css 4.05 kB
build/edit-widgets/style.css 4.06 kB
build/editor/index.min.js 127 kB
build/editor/style-rtl.css 9.2 kB
build/editor/style.css 9.21 kB
build/escape-html/index.min.js 537 B
build/format-library/index.min.js 8.23 kB
build/format-library/style-rtl.css 472 B
build/format-library/style.css 472 B
build/hooks/index.min.js 1.65 kB
build/html-entities/index.min.js 467 B
build/i18n/index.min.js 2.23 kB
build/is-shallow-equal/index.min.js 526 B
build/keyboard-shortcuts/index.min.js 1.31 kB
build/keycodes/index.min.js 1.46 kB
build/list-reusable-blocks/index.min.js 2.13 kB
build/list-reusable-blocks/style-rtl.css 847 B
build/list-reusable-blocks/style.css 848 B
build/media-utils/index.min.js 3.69 kB
build/notices/index.min.js 946 B
build/nux/index.min.js 1.62 kB
build/nux/style-rtl.css 767 B
build/nux/style.css 763 B
build/patterns/index.min.js 7.36 kB
build/patterns/style-rtl.css 687 B
build/patterns/style.css 685 B
build/plugins/index.min.js 1.86 kB
build/preferences-persistence/index.min.js 2.06 kB
build/preferences/index.min.js 2.9 kB
build/preferences/style-rtl.css 562 B
build/preferences/style.css 562 B
build/primitives/index.min.js 829 B
build/priority-queue/index.min.js 1.54 kB
build/private-apis/index.min.js 978 B
build/react-i18n/index.min.js 630 B
build/react-refresh-entry/index.min.js 9.47 kB
build/react-refresh-runtime/index.min.js 6.76 kB
build/redux-routine/index.min.js 2.7 kB
build/reusable-blocks/index.min.js 2.53 kB
build/reusable-blocks/style-rtl.css 255 B
build/reusable-blocks/style.css 255 B
build/rich-text/index.min.js 12.2 kB
build/router/index.min.js 5.44 kB
build/server-side-render/index.min.js 1.6 kB
build/shortcode/index.min.js 1.4 kB
build/style-engine/index.min.js 2.04 kB
build/token-list/index.min.js 581 B
build/url/index.min.js 3.97 kB
build/viewport/index.min.js 965 B
build/vips/index.min.js 36.2 kB
build/warning/index.min.js 250 B
build/widgets/index.min.js 7.16 kB
build/widgets/style-rtl.css 1.16 kB
build/widgets/style.css 1.16 kB
build/wordcount/index.min.js 1.04 kB

compressed-size-action

@tyxla
Copy link
Member Author

tyxla commented May 23, 2024

Fixed some tests, most of them were pretty straightforward. At first glance, the mobile tests seem to be failing because RN uses an old React version - we'll need a RN update to support React 19.

@DaniGuardiola
Copy link
Member

DaniGuardiola commented May 23, 2024

FYI, Framer Motion will be a blocker for now. More context: #60975

@Mamaduka
Copy link
Member

Mamaduka commented Jun 4, 2024

React 19.0.0-rc.0. is out.

This is the exact build we'll release as 19.0, unless an issue is reported that requires a breaking change.

Source: https://x.com/acdlite/status/1797668537349328923

I also wonder if facebook/react#29585 could be an issue for the block editor. Potentially, it can affect block re-ordering, but it will need some testing.

@tyxla
Copy link
Member Author

tyxla commented Jun 19, 2024

Seems like we'll need to wait a bit for now, re https://x.com/sophiebits/status/1801663976973209620?s=46 and https://tkdodo.eu/blog/react-19-and-suspense-a-drama-in-3-acts

Happy to retry this once the release gets unblocked once more.

@Mamaduka
Copy link
Member

The suspense issue doesn’t affect our codebase, so we could try the latest RC.

@tyxla tyxla force-pushed the try/react-19-beta branch from 6f68445 to 8424167 Compare July 2, 2024 14:36
@tyxla
Copy link
Member Author

tyxla commented Jul 2, 2024

Updated to the latest RC.

We'll still need to wait for RN support:

callstack/react-native-testing-library#1593

@tyxla
Copy link
Member Author

tyxla commented Nov 6, 2024

See callstack/react-native-testing-library#1698 for RN support for React 19 (hopefully H1 2025)

@tyxla tyxla force-pushed the try/react-19-beta branch from 8424167 to 63ac11d Compare November 6, 2024 02:26
@tyxla
Copy link
Member Author

tyxla commented Nov 6, 2024

A few updates as I've been experimenting with making React 19 work in the meantime:

  • Bumped to the latest React 19 RC in 63ac11d
  • Removed the now-unnecessary Ariakit patch in c557a6e
  • Removed the umd builds once more in 2d1ac29
  • Added a meta box container check to fix some errors in 39d6d4c
  • Fixed InserterBox rendering in 3e8a81a
  • Bumped framer-motion to the latest v12 alpha which introduces React 19 support in 6a9ada3

@tyxla
Copy link
Member Author

tyxla commented Nov 6, 2024

I'm experimenting with using <link /> for loading separate component stylesheets on demand in #66781

@Mamaduka
Copy link
Member

Mamaduka commented Nov 6, 2024

I'm experimenting with using for loading separate component stylesheets on demand in #66781

IIRC, we can also use suspense around components loading assets on demand and defer rendering. It could help render different previews.

@Mamaduka
Copy link
Member

The react@19.0.0-rc.1 has been released - facebook/react#29898 (comment).

@tyxla tyxla force-pushed the try/react-19-beta branch from 6a9ada3 to 0ae8c13 Compare November 20, 2024 09:23
@tyxla
Copy link
Member Author

tyxla commented Nov 20, 2024

The react@19.0.0-rc.1 has been released - facebook/react#29898 (comment).

Thanks for the heads up. A few updates:

  • Bumped to the latest version in 87bf928
  • Moved framer-motion dependency to the root to make it patchable in 9a566e6
  • Patched framer-motion@12.0.0-alpha.1 types to make type check pass in 0ae8c13 - this is temporary, see React 19 motiondivision/motion#2667)
  • Using motion.create() instead of motion() in 7a5e4b1
  • Updated useSuspenseSelect tests to pass in 31f99c3 (worth deep-diving into this, but FWIW suspense was overhauled in React 19)

Haven't done thorough testing, but it could be in a testable state at this point.

Next steps: There are some failing e2e tests, we need to investigate why and fix the cause.

Note: React Native is still a blocker: callstack/react-native-testing-library#1698

@Mamaduka
Copy link
Member

Mamaduka commented Dec 5, 2024

React v19 is now stable - https://react.dev/blog/2024/12/05/react-19.

It seems that the biggest blocker here would be React Native.

@tyxla tyxla force-pushed the try/react-19-beta branch from 31f99c3 to da65652 Compare December 6, 2024 11:27
@tyxla tyxla changed the title Try: React 19 RC Try: React 19 Dec 6, 2024
@@ -142,14 +142,14 @@
"progress": "2.0.3",
"puppeteer-core": "23.10.1",
"raw-loader": "4.0.2",
"react": "18.3.1",
"react": "19.0.0",
Copy link
Member

Choose a reason for hiding this comment

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

Do we plan to pin the versions to the latest React (19.1.1)? Ref: https://github.com/facebook/react/releases.

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 would prefer we upgrade incrementally so have at least 1 release of the packages with 19.0, in case someone wants to stay on 19.0 and not upgrade to 19.1. Bumping to 19.1 will be the next thing after upgrading to v19.0 of course.

@tyxla tyxla force-pushed the try/react-19-beta branch from 390f370 to c827e9d Compare August 29, 2025 10:27
@tyxla
Copy link
Member Author

tyxla commented Aug 29, 2025

Won't have a chance to work on this anymore this week. Next up on my mind are:

  • Editor iframe content doesn't always load (progress here)
  • Move away from deprecated umd builds; keep an eye on the react vendor chunks vs the element one
  • We're still using v18 types
  • Clean up the branch from the fixes and patches that we eventually reverted.

@tyxla
Copy link
Member Author

tyxla commented Aug 29, 2025

Editor iframe content doesn't always load

Looks like I figured this out: it was related to how we were handling iframe content loading and rendering. See this thread for more info and d4b4827 as the solution that did the job.

The majority of e2e tests should start passing after this fix. 🤞

We'll still need to test a bunch of the places that handle communication between the parent frame and the iframe. I'm expecting that's what causing the rest of the e2e failures.

@Mamaduka
Copy link
Member

Mamaduka commented Sep 1, 2025

It seems the remaining e2e test failures are related to the inert attribute with Pattern Overrides.

@tyxla
Copy link
Member Author

tyxla commented Sep 1, 2025

It seems the remaining e2e test failures are related to the inert attribute with Pattern Overrides.

Looks like it, but I think we have a bigger issue, but I'll comment about it shortly.

Going to do a rebase to clean up unnecessary commits and consolidate some of the changes, which will also help with rebasing in the future.

@tyxla tyxla force-pushed the try/react-19-beta branch 2 times, most recently from 4d86875 to 0f75373 Compare September 1, 2025 09:58
@tyxla
Copy link
Member Author

tyxla commented Sep 1, 2025

As I'm working to land independent pieces of the PR, it looks like we still have a major issue with how iframes and their events are handled. One can encounter it easily when there's communication happening between the iframe and the parent frame. One example path:

  • Go to /wp-admin/site-editor.php?p=%2Fpattern
  • In the search field, type b or c
  • Witness a couple of errors:
Screenshot 2025-09-01 at 13 15 13 Screenshot 2025-09-01 at 13 15 21

I haven't done a research yet, and I might be unable to do thorough research this week, but this appears like something in React 19 changed how we're working with iframes. I wonder if this is an opportunity to revisit the pre-existing iframe load hacks, or how we're handling srcDoc with blobs.

This might be an interesting puzzle for y'all: @ellatrix @Mamaduka @jsnajdr.

@tyxla tyxla force-pushed the try/react-19-beta branch from cea1d58 to 69ce17d Compare September 1, 2025 11:40
@Mamaduka
Copy link
Member

Mamaduka commented Sep 2, 2025

@tyxla, I pushed some more fixes for the inert attribute.

I believe the mentioned error is related to StrictMode and the changes introduced to useCallback in React 19. The useRefEffect uses this hook internally with logic to mimic a cleanup method. I'll continue debugging this.

I cannot reproduce the error when running the app in production mode, using SCRIPT_DEBUG: false and a prod build.

P.S. I found a different error when SCRIPT_DEBUG: false and using the dev build for the plugin. This can be a common combo when developing or debugging the project.

Screenshot

CleanShot 2025-09-02 at 08 25 48

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Package] Element /packages/element [Type] Enhancement A suggestion for improvement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants