@czkoudy/data-table
Version:
A React data table component with pagination, sorting, and filtering capabilities.
47 lines (46 loc) • 1.38 kB
TypeScript
import { ColumnDef } from '@tanstack/react-table';
import { default as React } from 'react';
export interface DataTableColumnMeta {
align?: 'left' | 'center' | 'right';
disableRowClick?: boolean;
fallback?: string;
filterValueExcludeList?: string[];
filterValueIncludeList?: string[];
type?: string;
valueLabelMap?: Record<string, string>;
}
export interface DataTableProps<T> {
className?: string;
columns: ColumnDef<T, any, any>[];
data: T[] | undefined | null;
defaultColumnFilters?: {
id: string;
value: string[];
}[];
defaultSorting?: {
id: string;
desc?: boolean;
}[];
emptyRows?: boolean;
enableColumnFilters?: boolean;
enableFiltering?: boolean;
enablePagination?: boolean;
enableSearch?: boolean;
enableSorting?: boolean;
getRowClassName?: (rowData: T, index: number) => string;
grouping?: string[];
loading?: boolean;
noDataComponent?: React.ReactNode;
onRowClick?: (rowData: T) => void;
onSelectionChange?: (selectedRows: T[]) => void;
pageSize?: number | 'all';
showRowSelectors?: boolean;
tableClassName?: string;
}
export interface DataTableRef {
clearSelection: () => void;
}
declare const DataTable: <T>(p: DataTableProps<T> & {
ref?: React.Ref<DataTableRef>;
}) => React.ReactElement;
export default DataTable;