plouc / nivo

nivo provides a rich set of dataviz components, built on top of the awesome d3 and React libraries
https://nivo.rocks
MIT License
13.11k stars 1.03k forks source link

React 19 Support #2618

Open florence-wolfe opened 3 months ago

florence-wolfe commented 3 months ago

Is your feature request related to a problem? Please describe.

Describe the solution you'd like

plouc commented 3 months ago

Adding support for React 19 might be a lot of work, it's also still unclear, looking at the migration guide, if I could still support older React versions with the same @nivo version.

The 19 still being a RC at the moment, I think it's not really pressing, and I'd probably need to upgrade gatsby, storybook... as well, which seems like a huge project.

Finally, I was migrating tests from enzyme (which has been deprecated) to use the react test renderer, which they're removing apparently, they advise to use @testing-library/react, but the approach of this lib is really not practical to test charts/svg elements.

It will take time to get there and this should be split in sub-projects, I don't have the bandwidth to handle everything at once.

J4v4Scr1pt commented 3 months ago

Will follow this thread, we are a company that are about to replace our current chart solution. This was our top pick until I saw this thread.

I understand that time estimation is super hard, but do you think this will take years or months after React 19 release? Because we (among others) use Next.Js and no React 19 support will also block us from upgrading nextjs version in the future.

o-alexandrov commented 2 months ago

React has an issue where they link some libraries and respective PRs how those libraries upgraded to react 19. It might be a useful read to familiarize with common roadblocks and how other devs resolved those in their projects.

imho, the starting point would be to run various provided by React 19 codemods which should do the heavy lifting:

npx codemod@latest react/19/migration-recipe

plouc commented 2 months ago

@o-alexandrov, thank you for sharing, this could help.