carbon-design-system / ibm-products

A Carbon-powered React component library for IBM Products
https://ibm-products.carbondesignsystem.com
Apache License 2.0
98 stars 138 forks source link

Upgrade to React table v8 - v7 has had no meaningful updates for 5 years #4977

Closed lee-chase closed 1 week ago

lee-chase commented 7 months ago

The problem

The version of react-table in use last had meaningful updates 5 years ago. Not only does this mean the documentation for V7 is hard to find but also that we are building new functionality on an old code base, but also that we are missing out on new functionality such as custom filters.

Missing functionality such as global filters puts use of Datagrid in doubt and may result in teams rolling their own DataTable. It is also at great risk of failing in future versions of React or hitting a security issue.

The solution

Migrate to v8 https://tanstack.com/table/latest/docs/guide/migrating

Design link

No response

Links to other materials

No response

Owner/main maintainer(s)

?

Second/backup maintainer(s)

No response

Product/offering

No response

Business priority

None

Code of Conduct

jakubkloc commented 2 weeks ago

How is the progress of this issue? Is possible to estimate when React table will be upgraded?

ljcarot commented 1 week ago

We've been investigating TanStack Table, a third-party, open-source offering, which provides extensive data table capabilities surpassing what our Carbon Datagrid offers. It provides much more flexibility and customization. TanStack Table is headless which means it can easily be added alongside Datagrid component in your product or application. The benefits of more flexibility for product teams and less maintenance for Carbon makes it a win win. Lastly, it is available in multiple frameworks including React and Web Component so it provides an option to non-React product teams.

For these reasons, we have decided to transition from building our own custom table component to using an example-based approach with TanStack Table. Datagrid will still exist in our library for existing teams but we are announcing the deprecation* of the Datagrid component in v2.54.0 release so teams can begin to work through the transition. Details about how to use both Datagrid and TanStack together can be found here.

*Deprecation means that no new features will be added however sev 1 and sev 2 bugs will be supported.