Added onSort and a fix for columnOrder to ManagedTable

Summary:
1. Added onSort() pass-through to ManagedTable which allows to handle sort order changes.

2. columnOrder now gets updated when the corresponding prop is changed indepedently from ref.

Reviewed By: danielbuechele

Differential Revision: D14147857

fbshipit-source-id: 03300629a3316a69be6b745810516966b8060aa6
This commit is contained in:
Artur Pyrogovskyi
2019-02-21 01:59:31 -08:00
committed by Facebook Github Bot
parent fa33764cc3
commit 0a59dc2918

View File

@@ -112,6 +112,10 @@ export type ManagedTableProps = {|
* Allows to create context menu items for rows * Allows to create context menu items for rows
*/ */
buildContextMenuItems?: () => MenuTemplate, buildContextMenuItems?: () => MenuTemplate,
/**
* Callback when sorting changes
*/
onSort?: (order: TableRowSortOrder) => void,
|}; |};
type ManagedTableState = {| type ManagedTableState = {|
@@ -194,12 +198,10 @@ class ManagedTable extends React.Component<
} }
// if columnOrder has changed // if columnOrder has changed
if ( if (nextProps.columnOrder !== this.props.columnOrder) {
nextProps.columnOrder !== this.props.columnOrder && if (this.tableRef && this.tableRef.current) {
this.tableRef && this.tableRef.current.resetAfterIndex(0);
this.tableRef.current }
) {
this.tableRef.current.resetAfterIndex(0);
this.setState({ this.setState({
columnOrder: nextProps.columnOrder, columnOrder: nextProps.columnOrder,
}); });
@@ -304,6 +306,7 @@ class ManagedTable extends React.Component<
onSort = (sortOrder: TableRowSortOrder) => { onSort = (sortOrder: TableRowSortOrder) => {
this.setState({sortOrder}); this.setState({sortOrder});
this.props.onSort && this.props.onSort(sortOrder);
}; };
onColumnOrder = (columnOrder: TableColumnOrder) => { onColumnOrder = (columnOrder: TableColumnOrder) => {