react-smart-data-table
Version:
A smart data table component for React.js meant to be configuration free
31 lines (30 loc) • 1.64 kB
TypeScript
import { Component, MouseEvent, ReactNode } from 'react';
import type { SmartDataTableProps, SmartDataTableState } from './types';
import * as utils from './helpers/functions';
import './css/basic.css';
declare class SmartDataTable<T = utils.UnknownObject> extends Component<SmartDataTableProps<T>, SmartDataTableState<T>> {
static propTypes: any;
static defaultProps: any;
constructor(props: SmartDataTableProps<T>);
static getDerivedStateFromProps(props: SmartDataTableProps, state: SmartDataTableState): SmartDataTableState | null;
componentDidMount(): void;
componentDidUpdate(prevProps: SmartDataTableProps<T>): void;
handleRowClick: (event: MouseEvent<HTMLElement>, rowData: T, rowIndex: number, tableData: T[]) => void;
handleColumnToggle: (key: string) => void;
handleColumnToggleAll: (columns: utils.Column<T>[]) => (isChecked: boolean) => void;
handleOnPageChange: (event: MouseEvent<HTMLElement>, { activePage }: {
activePage: number;
}) => void;
handleSortChange(column: utils.Column<T>): void;
getColumns(force?: boolean): utils.Column<T>[];
getRows(): T[];
fetchData(): Promise<void>;
renderSorting(column: utils.Column<T>): ReactNode;
renderHeader(columns: utils.Column<T>[]): ReactNode;
renderRow(columns: utils.Column<T>[], row: T, i: number): ReactNode;
renderBody(columns: utils.Column<T>[], rows: T[]): ReactNode;
renderToggles(columns: utils.Column<T>[]): ReactNode;
renderPagination(rows: T[]): ReactNode;
render(): string | number | boolean | import("react").ReactFragment | JSX.Element;
}
export default SmartDataTable;