Skip to content

feat: Add support React 19 - #1008

Open
dinhsan2000 wants to merge 1 commit into
missive:mainfrom
dinhsan2000:patch-1
Open

feat: Add support React 19#1008
dinhsan2000 wants to merge 1 commit into
missive:mainfrom
dinhsan2000:patch-1

Conversation

@dinhsan2000

@dinhsan2000 dinhsan2000 commented Aug 21, 2025

Copy link
Copy Markdown

This pull request makes a small update to the peer dependencies in the packages/emoji-mart-react/package.json file to ensure compatibility with the latest version of React.

  • The react peer dependency version range was extended to include React 19, allowing the package to be used with the upcoming major release.

Missive conversation: https://mail.missiveapp.com/#inbox/conversations/46dc781a-45ef-46a9-a7b8-2c21e8e9ea53

lesnik512 added a commit to quotidianlabs/emojis that referenced this pull request Aug 24, 2026
Widen the wrapper's react peer range to ^16.8 || ^17 || ^18 || ^19. Installing it
alongside React 19 no longer produces a peer dependency conflict, so consumers
need neither an overrides block nor --legacy-peer-deps. This is what Upstream
issue missive#967 has been asking for since December 2024, and Upstream PR missive#1008 is the
same one-line change, open and unmerged.

No code changed, and none was needed. From React the wrapper takes only React,
useEffect and useRef and calls createElement; React 19 removed none of them, and
core renders through Preact without importing React at all.

A patch rather than a minor, deliberately. Caret ranges collapse below 1.0, so a
consumer on ^0.1.1 resolves 0.1.2 and would never have resolved 0.2.0. The people
this release exists for are the ones already installing the wrapper behind an
overrides block; a minor would have left them editing a range by hand to get it.

The proof is the release gate, whose scratch application now installs React 19
rather than 18: the tarballs install with no ERESOLVE, npm ls reports no unmet
peers, types resolve under @types/react 19, and the picker mounts and records a
selection in a real browser. The gate installs one React version at a time, so
16.8, 17 and 18 are now declared without being exercised. Before the range
widened, the same gate failed at install with exactly the conflict issue missive#967
describes.

Also folds in the npm pkg fix that ADR-0003 earmarked for this package's next
release: repository.url is normalised to the git+https://….git form npm rewrites
it to on publish anyway.

Closes #4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant