-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
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
React-Table's current state and future roadmap #1143
Comments
Clearly this issue was meant as a request for an update on the state of React-Table, so let's do just that: TL;DR: React-Table is still being actively maintained, dog-fooded, and developed by it's original maintainers and avid users. (Primarily me, @tannerlinsley, with a bit of help from @gary-menzel). As time permits, it is undergoing a remarkable rewrite as we speak to become a more sustainable collection of headless components, UI implementations and composable HOC's/plugins. The unsustainable API of the current version has been wildly successful in helping people become immediately productive with their use-cases, but its limited flexibility and underlying architecture is to blame for the massive amount of pull requests and issues that come in every day. @gary-menzel, other maintainers and myself have all previously tried to keep up with this influx of feature requests and bugs, and all of us have experienced some level of burnout while we endlessly add more props and API surface area to the library. We have learned the hard way that this is no way to build or maintain a library with the scope as complex as React-Table's. So, instead of putting out ever-growing fires and throwing more props at the problem, we have chosen to move forward by building a less "flammable" library 😄 using headless components as an escape hatch. If you are not familiar with headless components, you will benefit from reading this article: https://medium.com/merrickchristensen/headless-user-interface-components-565b0c0f2e18. Headless components will unlock the ultimate level of flexibility by inverting most control back to the user. This will allow for customization that wasn't possible before with React-Table and also allow the library to become leaner, smarter, and more maintainable. The first fruits of this effort will likely be publicly visible (a new version branch) in the next few months. Tentative Roadmap:
RE: Original issue: "Wake Up" probably isn't the best issue title. Let's try to be more respectful in the future. No need to let React-Table slip into a demeaning place as a community. |
@tannerlinsley are there any pieces of this effort that the community can contribute to? |
The pieces are close to being published in a new branch. Stay tuned for a big todo list where you can help :) |
I suggest first publish a 6.9 version and then open the new one. |
When will this release be completed? We are trying to decide how much accessibility effort we need to put where! If its coming relatively quickly that would help :) |
@tannerlinsley any updates on this roadmap ? |
@tannerlinsley Any updates? |
V7 is still likely not to be out for a while. Keep using v6, fork if necessary, and maintain your list of features/upgrades until v7-alpha materializes. |
@tannerlinsley btw, can u provide general idea of v7 and how api could change ? |
Updates
|
Any reason v7 is not released under pre-release tag? |
It's available under react-table@next!
|
I "hacked" together a copy of the V7 source (along with the codesandbox that @tannerlinsley tweeted not long ago) up and running last night. The code is changing frequently and the two are not entirely compatible at this stage. I was really happy to see that I could use the "old" simple API (columns and data) to create a basic table and how the React Hooks supplied (amongst others) - It does seem as though it will be possible to provide a (largely) API compatible composition that could be a drop-in replacement for a lot of the basic table functionality from V6 (at least it looks that way from the few hours I spent on it). The way I see it, React Hooks do for lego-like logic/state composition what React originally did for UI Component composition. It should eventually be possible (when the rapid development slows down a little) to write comprehensive tests on all the hooks independently. The previous V6 code had no test and was beyond impossible to test (as it was all tightly integrated with the whole piece). So, looking forward to this new release and hope to add some value throughout the journey. |
@tannerlinsley congrats on the new release! I saw your comments on several issues and PRs that accessibility compliance was part of the plan for v7. Any word on that? |
@mmazanec22 Accessibility will be the responsibility of the user, since v7 is a headless React hook. Thus, you can approach accessibility any way you'd like when you build your table's markup/renderer. |
@tannerlinsley How much of an effort will be there for a developer to migrate from v6 to v7? Will the code breaks? |
I will be doing my best to write a migration guide, but there will be work involved. Close to all of that work will be building your table's markup, since v7 is headless. I'll be providing basic markup examples, along with some styled-components examples to replicate the current table very closely. As far as table configuration, most things will translate over directly (props will become options in the Regardless, expect great documentation and at the very least a basic migration guide. |
For anyone looking for this, I'm currently working on a React Table v7 TypeScript typings definitions: https://gist.github.com/Grsmto/1ac3a7ddb8ad8288660784a37bff1798 |
This comment has been minimized.
This comment has been minimized.
Does anyone have a minimal example of v7 using typescript? The one here is too complex for my use case. I just want to get up to speed ASAP. |
Are there any TS definitions for v6? |
Closing in favor of #1252 |
No updates lately.
There are a lot of pull requests, please merge some fixes and features.
Don't let the project die
The text was updated successfully, but these errors were encountered: