-
Notifications
You must be signed in to change notification settings - Fork 4.2k
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
Try: React 19 #61521
base: trunk
Are you sure you want to change the base?
Try: React 19 #61521
Conversation
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. |
Indeed. Maybe they tinkered with some feature flags between 18.3 and 19 beta. |
If I understand correctly, many of the test warnings seem to be because of how Ariakit retrieves the ref prop, it falls back to and that yields a warning in React 19. At the same time, I assume Ariakit will stay compatible with older React versions where @diegohaz @DaniGuardiola any idea if we're planning to do anything about these warnings in Reakit? |
@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? |
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. |
@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. |
Updated to the RC. Hoping to have some time next week to play more thoroughly with it. |
Size Change: +13.5 kB (+0.73%) Total Size: 1.86 MB
ℹ️ View Unchanged
|
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. |
FYI, Framer Motion will be a blocker for now. More context: #60975 |
React 19.0.0-rc.0. is out.
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. |
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. |
The suspense issue doesn’t affect our codebase, so we could try the latest RC. |
Updated to the latest RC. We'll still need to wait for RN support: |
See callstack/react-native-testing-library#1698 for RN support for React 19 (hopefully H1 2025) |
8424167
to
63ac11d
Compare
A few updates as I've been experimenting with making React 19 work in the meantime:
|
I'm experimenting with using |
IIRC, we can also use suspense around components loading assets on demand and defer rendering. It could help render different previews. |
The |
6a9ada3
to
0ae8c13
Compare
Thanks for the heads up. A few updates:
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 |
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. |
31f99c3
to
da65652
Compare
da65652
to
23bba7d
Compare
|
What?
TBD
Why?
TBD
How?
TBD
Testing Instructions
TBD
Testing Instructions for Keyboard
Screenshots or screencast