Update to React 19
Description Updates Slate's React version to 19.0.0.
Context
- useRef now requires an argument
- All
useRefusage now has an initial argument, with relevant hooks updated to explicitly handle passed refs which may be falsy. - Removed depreciated
MutableRefObject
- All
- React 19 supports ref as a prop and
forwardRefwill be depreciated and removed in future.- All
forwardRefusage has been refactored. - (I thought about leaving this for a later refactor as I don't know much about how version bumps are managed on packages like this but in the end the new API reduces so much boilerplate it seemed worth it.)
- All
- Minor housekeeping
- Updated types, removed unused imports, fixed 404'ing images in images example, minor updates to some other examples
Checks
- [x] The new code matches the existing patterns and styles.
- [] The tests pass with
yarn test. - [x] The linter passes with
yarn lint. (Fix errors withyarn fix.) - [ ] The relevant examples still work. (Run examples with
yarn start.) - [ ] You've added a changeset if changing functionality. (Add one with
yarn changeset add.)
⚠️ No Changeset found
Latest commit: e170f95a4c0b25ed0d2ff9904682c4c0946cf0d7
Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.
This PR includes no changesets
When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types
Click here to learn what changesets are, and how to add one.
Click here if you're a maintainer who wants to add a changeset to this PR
Hi, thanks for the effort! I think the only way to get this PR forward is by splitting it up into separate PRs:
- Upgrade to React 19 and fix problems,
- Simplification, updated types, removed unused imports, fixed 404'ing images in images example, minor updates to some other examples, upgraded Yarn etc.
I don't think this PR has a chance to be merged in current state, because it changes too much.