Table Tools
Why?
Most tables we show on plinth leave people asking a few very similar questions, how do I:
- Export data
- Search the rows
- Customise the columns
- Email people in the table
Less frequently:
- Can I print this information?
This component is supposed to improve the user experience of using tables, by providing a consistent way to do all of the above.
However, it still requires a lot of work to get it to work properly, so there's definitely a way to improve it in the future.
How?
This component renders a series of buttons depending on the props passed into it:

Export
This runs an exportFunction function across all the data passed into TableTools, e.g. to format the data in a certain way.
To do
This doesn't currently use the AsyncCsvDownload component, which would be a better way to do this.
Customise columns
This shows a list of columns in a popover, and allows you to select which ones you want to show.
Search
This shows a search input, and filters the rows based on the search term.
This shows all the email addresses in the table, and allows you to copy them to your clipboard.
