advanced-react-datatable
Version:
A comprehensive React data grid component with advanced features like pinned columns, inline editing, grouping, filtering, and export capabilities
34 lines (33 loc) • 1.34 kB
TypeScript
import { DataTableColumn, FilterConfig, SortConfig } from '../types';
interface UseDataTableProps<T> {
data: T[];
initialColumns: DataTableColumn<T>[];
initialGroupBy?: string | string[];
selectionMode?: 'single' | 'multiple' | 'none';
onRowSelect?: (selectedRows: T[]) => void;
onCellEdit?: (row: T, field: keyof T, value: any) => void;
}
export declare function useDataTable<T extends Record<string, any>>({ data, initialColumns, initialGroupBy, }: UseDataTableProps<T>): {
columns: DataTableColumn<T>[];
setColumns: import('react').Dispatch<import('react').SetStateAction<DataTableColumn<T>[]>>;
processedData: T[];
filteredData: T[];
groupedData: T[];
selectedRows: T[];
filters: FilterConfig[];
sorts: SortConfig[];
groupBy: string | string[];
expandedGroups: Set<string>;
setGroupBy: (field: string | string[] | null) => void;
sortBy: (field: string) => void;
addFilter: (filter: FilterConfig) => void;
removeFilter: (field: string) => void;
clearFilters: () => void;
toggleRowSelection: (row: T) => void;
selectAllRows: () => void;
clearSelection: () => void;
toggleGroup: (groupKey: string) => void;
filterByColumn: (field: string, filter: FilterConfig | null) => void;
};
export {};
//# sourceMappingURL=use-data-table.d.ts.map