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:

Table Tools

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.

This shows a search input, and filters the rows based on the search term.

Email

This shows all the email addresses in the table, and allows you to copy them to your clipboard.