-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Add peer dependency support for React 19 #5109
Conversation
🦋 Changeset detectedLatest commit: ef57f54 The changes in this PR will be included in the next version bump. This PR includes changesets to release 2 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
packages/xstate-react/package.json
Outdated
@@ -54,7 +54,7 @@ | |||
"url": "https://github.com/statelyai/xstate/issues" | |||
}, | |||
"peerDependencies": { | |||
"react": "^16.8.0 || ^17.0.0 || ^18.0.0", | |||
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wonder - what motivated this change now? If I'm not mistaken there is no version out there that's compatible with what is added here, so in some sense - this is going to be a "noop" until React 19 actually gets released.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I’m not sure about the details of package fixes, but here’s what I have encountered as a XState user.
The recently released Next.js 15 supports React 19. However, when installing @xstate/react
, I have encountered peer dependency errors. Judging from the logs, it seems @xstate/react
does not support React 19. To suppress the error message, I needed to downgrade react
and react-dom
from 19 to 18.
https://nextjs.org/blog/next-15
npx create-next-app@latest next-xstate-15 \
--typescript \
--eslint \
--import-alias "@/*" \
--src-dir \
--use-pnpm \
--tailwind \
--app \
--use-pnpm \
--turbopack
cd next-xstate-15
Install xstate
:
pnpm install xstate
dependencies:
+ xstate 5.18.2
Done in 748ms
When installing @xstate/react
, the error message indicates that @xstate/react
does not support React 19:
pnpm install @xstate/react
dependencies:
+ @xstate/react 4.1.3
WARN Issues with peer dependencies found
.
└─┬ @xstate/react 4.1.3
├── ✕ unmet peer react@"^16.8.0 || ^17.0.0 || ^18.0.0": found 19.0.0-rc-69d4b800-20241021
├─┬ use-isomorphic-layout-effect 1.1.2
│ └── ✕ unmet peer react@"^16.8.0 || ^17.0.0 || ^18.0.0": found 19.0.0-rc-69d4b800-20241021
└─┬ use-sync-external-store 1.2.2
└── ✕ unmet peer react@"^16.8.0 || ^17.0.0 || ^18.0.0": found 19.0.0-rc-69d4b800-20241021
Done in 744ms
Here is package.json
:
{
...
"dependencies": {
"@xstate/react": "^4.1.3",
"next": "15.0.1",
"react": "19.0.0-rc-69d4b800-20241021",
"react-dom": "19.0.0-rc-69d4b800-20241021",
"xstate": "^5.18.2"
},
...
}
Here is my repository:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Andarist See here for the original discussion: https://discord.com/channels/795785288994652170/1299849094629560421/1299849094629560421
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The problem is that this doesn't solve this issue:
require('semver').satisfies('19.0.0-rc-69d4b800-20241021', '^19.0.0') // false
To make it work you have to relax this peer dep range even further to allow prereleases
Co-authored-by: Mateusz Burzyński <[email protected]>
Co-authored-by: Mateusz Burzyński <[email protected]>
This pull request updates the peer dependencies for React in two packages to ensure compatibility with React 19.0.0.
Updates to peer dependencies:
packages/xstate-react/package.json
: Updated thereact
peer dependency to include version 19.0.0.packages/xstate-store/package.json
: Updated thereact
peer dependency to include version 19.0.0.A couple things we'll have to keep in mind for React 19:
5
instead of6
)