Skip to content

Commit

Permalink
Fixed #2070 - PageParams TypeScript interface improvement on DataTabl…
Browse files Browse the repository at this point in the history
…e, TreeTable and DataView
  • Loading branch information
mertsincan committed Jun 10, 2021
1 parent 438e468 commit 97d0bff
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 13 deletions.
9 changes: 8 additions & 1 deletion src/components/datatable/DataTable.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,13 @@ interface DataTableEditingRows {
interface DataTablePageParams {
first: number;
rows: number;
page: number;
pageCount: number;
}

interface DataTableVirtualScrollParams {
first: number;
rows: number;
}

interface DataTableRowToggleParams {
Expand Down Expand Up @@ -232,7 +239,7 @@ export interface DataTableProps {
onSort?(e: DataTableSortParams): void;
onPage?(e: DataTablePageParams): void;
onFilter?(e: DataTableFilterParams): void;
onVirtualScroll?(e: DataTablePageParams): void;
onVirtualScroll?(e: DataTableVirtualScrollParams): void;
onAllRowsSelect?(e: DataTableSelectParams): void;
onAllRowsUnselect?(e: DataTableUnselectParams): void;
onRowClick?(e: DataTableRowClickEventParams): void;
Expand Down
13 changes: 9 additions & 4 deletions src/components/datatable/DataTable.js
Original file line number Diff line number Diff line change
Expand Up @@ -431,10 +431,15 @@ export class DataTable extends Component {
if (restoredState && Object.keys(restoredState).length) {
if (this.props.paginator) {
if (this.props.onPage) {
this.props.onPage({
first: restoredState.first,
rows: restoredState.rows
});
const getOnPageParams = (first, rows) => {
const totalRecords = this.getTotalRecords(this.processData());
const pageCount = Math.ceil(totalRecords / rows) || 1;
const page = Math.floor(first / rows);

return { first, rows, page, pageCount };
}

this.props.onPage(getOnPageParams(restoredState.first, restoredState.rows));
}
else {
state.first = restoredState.first;
Expand Down
3 changes: 2 additions & 1 deletion src/components/dataview/DataView.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,10 @@ type DataViewSortOrderType = 1 | 0 | -1 | undefined | null;
type DataViewAppendToType = 'self' | HTMLElement | undefined | null;

interface DataViewPageParams {
originalEvent: React.SyntheticEvent;
first: number;
rows: number;
page: number;
pageCount: number;
}

interface DataViewLayoutOptionsChangeParams {
Expand Down
10 changes: 3 additions & 7 deletions src/components/dataview/DataView.js
Original file line number Diff line number Diff line change
Expand Up @@ -178,16 +178,12 @@ export class DataView extends Component {

onPageChange(event) {
if (this.props.onPage) {
this.props.onPage({
originalEvent: event,
first: event.first,
rows: event.rows
});
this.props.onPage(event);
}
else {
this.setState({
first:event.first,
rows:event.rows
first: event.first,
rows: event.rows
});
}
}
Expand Down
2 changes: 2 additions & 0 deletions src/components/treetable/TreeTable.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,8 @@ interface TreeTableToggleParams {
interface TreeTablePageParams {
first: number;
rows: number;
page: number;
pageCount: number;
}

interface TreeTableSortParams {
Expand Down

0 comments on commit 97d0bff

Please sign in to comment.