UNPKG

@ackplus/react-tanstack-data-table

Version:

A powerful React data table component built with MUI and TanStack Table

64 lines (63 loc) 1.68 kB
import { SortingState } from '@tanstack/react-table'; import { ColumnFilterRule, SelectionState } from '../features'; export type TableSize = 'small' | 'medium'; export interface TableState { customColumnsFilter: CustomColumnFilterState; selectionState?: SelectionState; globalFilter?: string; sorting?: SortingState; pagination?: { pageIndex: number; pageSize: number; }; columnOrder?: string[]; columnPinning?: { left?: string[]; right?: string[]; }; columnVisibility?: Record<string, boolean>; columnSizing?: Record<string, number>; } export interface TableFilters { globalFilter: string; customColumnsFilter: CustomColumnFilterState; sorting: SortingState; pagination: { pageIndex: number; pageSize: number; }; columnOrder: string[]; columnPinning: { left?: string[]; right?: string[]; }; } export interface TableFiltersForFetch { search?: string; page?: number; pageSize?: number; sorting?: SortingState; customColumnsFilter?: CustomColumnFilterState; } export interface CustomColumnFilterState { filters: ColumnFilterRule[]; logic: 'AND' | 'OR'; pendingFilters: ColumnFilterRule[]; pendingLogic: 'AND' | 'OR'; } export interface TablePerformanceMetrics { renderTime: number; dataProcessingTime: number; totalRows: number; visibleRows: number; memoryUsage?: number; } export interface TableMetrics { totalRows: number; visibleRows: number; totalColumns?: number; visibleColumns?: number; pinnedColumns?: number; renderTime: number; lastUpdated?: Date; }