@atlaskit/dynamic-table
Version:
A dynamic table displays rows of data with built-in pagination, sorting, and re-ordering functionality.
61 lines (60 loc) • 1.9 kB
TypeScript
import React from 'react';
import type UIAnalyticsEvent from '@atlaskit/analytics-next/UIAnalyticsEvent';
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 (
* <DynamicTable
* head={head}
* rows={rows}
* rowsPerPage={10}
* defaultPage={1}
* loadingSpinnerSize="large"
* isLoading={false}
* />
* );
* }
* ```
*/
export default class DynamicTable extends React.Component<StatefulProps, State> {
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 {};