import React from 'react';
import { type UIAnalyticsEvent } from '@atlaskit/analytics-next';
import noop from '@atlaskit/ds-lib/noop';
import { type RankEnd, type RowType, type SortOrderType, type StatefulProps } from '../types';
interface State {
page?: number;
sortKey?: string;
sortOrder?: SortOrderType;
rows?: RowType[];
}
/**
* __Dynamic Table__
*
* A table displays rows of data with built-in pagination, sorting, and re-ordering functionality.
*
* - [Examples](https://atlaskit.atlassian.com/packages/design-system/dynamic-table)
* - [Code](https://bitbucket.org/atlassian/atlassian-frontend/packages/design-system/dynamic-table)
*
* @example
* ```jsx
* import DynamicTable from '@atlaskit/dynamic-table';
*
* export default function TableUncontrolled() {
* return (
*
* );
* }
* ```
*/
export default class DynamicTable extends React.Component {
static defaultProps: {
defaultPage: number;
isLoading: boolean;
isFixedSize: boolean;
isRankable: boolean;
onSetPage: typeof noop;
onSort: typeof noop;
rowsPerPage: number;
};
state: {
page: number | undefined;
sortKey: string | undefined;
sortOrder: SortOrderType | undefined;
rows: RowType[] | undefined;
};
UNSAFE_componentWillReceiveProps(newProps: StatefulProps): void;
onSetPageHandler: (page: number, analyticsEvent?: UIAnalyticsEvent) => void;
onSortHandler: ({ key, item, sortOrder }: any, analyticsEvent?: UIAnalyticsEvent) => void;
onRankEndIfExistsHandler: (params: RankEnd) => void;
onRankEndHandler: (params: RankEnd) => void;
render(): React.JSX.Element;
}
export {};