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