glittershark / reactable

Fast, flexible, and simple data tables in React
glittershark.github.io/reactable
MIT License
1.51k stars 222 forks source link

Roadmap #334

Open hassankhan opened 8 years ago

hassankhan commented 8 years ago

Hi @glittershark, just wanted to know what the future of the project is? I remember you saying there were some changes you wanted to make and I was wondering what they were.

alisman commented 8 years ago

This component meets a lot of our requirements and I think has a strong future. But we need to able to render components easily inside of data-driven table (that is, when data property is used, not Tr/Td). There are currently two PRs that meet this need, mine and another one. Either one would be great!

hassankhan commented 8 years ago

Just wanted to say that we all love this project (hands-down the best data table library for React IMO) and we just want to make sure it receives the care it deserves 😄

alisman commented 8 years ago

Let me second @hassankhan. Every other datatable we've tried seems consumed with solving edge case problems. We just wanted a standard HTML table with some added features like sorting, filtering etc. Long live reactable

hassankhan commented 8 years ago

Pinging @glittershark

hassankhan commented 8 years ago

I'm only being persistent because there are some issues that I would love to see addressed, and I just want to be assured that any work I do will get merged/released soon. For starters I'd love to see the warnings go away for once and for all, and secondly I'd love to see a re-do of pagination, either like #4 or by passing a paginatorComponent prop to <Table />. There are some PRs and issues floating around on the topic, so it'd be great to get an update and plan accordingly.

glittershark commented 8 years ago

So, in the last few months the time I've had to maintain this has waned a little bit as work has been taking up more and more of my time. Let's see if I can address the specific things you're asking for:

glittershark commented 8 years ago

As far as things not already mentioned in this thread:

hassankhan commented 7 years ago

Awesome, thanks for the response! I've started work on a branch. There's a fair few changes, mainly:

Ideally, I want to get it back to feature parity using the test suite. That said, there's quite a few ways of passing data into a <Table /> 😮 . Once I get that out of the way, I think there might be a few other things worth considering:

glittershark commented 7 years ago

The only thing I'm against in that list is using Lodash - I'd rather not force that dependency on any upstream consumers. We as library authors have the burden of doing all the stuff that libraries like lodash make easy manually, so that application developers don't have to 😄

glittershark commented 7 years ago

In the same vein, I'm fine with internal complexity, especially given how good the test coverage is (should be basically 100%). The entire point of libraries imo is to be complex so you don't have to.

alisman commented 7 years ago

I'm not sure I understand the resistance to custom components in data (or specified in column object). The alternative would seem to be specifying all columns in markup even if only one column necessitated component rendering (a button, say). I think people expect to be able to just hand some data to a datatable component and maybe do some limited customization.

hassankhan commented 7 years ago

@glittershark True, but I feel there's no point in reinventing the wheel for simple things like checking types etc., and using Webpack and ES6 imports we can specifically only require the functions we need and use tree-shaking to exclude unused code. We need not even require Lodash as a dependency, rather a few functions from it listed as separate devDependencies. When we bundle for distribution, the consumer only gets whats necessary.

In terms on internal complexity, I don't feel that the codebase is very welcoming to new contributors or that it lends itself to extension very well, even with near 100% test coverage. I've spent the past few days trying to figure out the best way of parsing/storing the data internally and its not terribly obvious from looking at the code. While libraries are supposed to be complex, they don't have to be more than need be 😄

@alisman Currently I'm focusing on getting the branch up to parity, once I'm done we'll see what, if any changes, get made to either this repo or our fork.