UNPKG

@ackplus/react-tanstack-data-table

Version:

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

57 lines (56 loc) 2.03 kB
import { ColumnOrderState, ColumnPinningState, SortingState, Table } from '@tanstack/react-table'; import { Ref } from 'react'; import { CustomColumnFilterState, TableFilters, TableState } from '../types'; import { DataTableApi } from '../types/data-table-api'; import { SelectionState } from '../features'; interface UseDataTableApiProps<T> { table: Table<T>; data: T[]; idKey: keyof T; globalFilter: string; customColumnsFilter: CustomColumnFilterState; sorting: SortingState; pagination: { pageIndex: number; pageSize: number; }; columnOrder: ColumnOrderState; columnPinning: ColumnPinningState; enhancedColumns: any[]; enablePagination: boolean; enableColumnPinning: boolean; initialPageIndex: number; initialPageSize?: number; pageSize: number; selectMode?: 'page' | 'all'; onSelectionChange?: (state: SelectionState) => void; handleColumnFilterStateChange: (filterState: CustomColumnFilterState) => void; onDataStateChange?: (state: Partial<TableState>) => void; onFetchData?: (filters: Partial<TableFilters>) => void; onDataChange?: (newData: T[]) => void; exportFilename?: string; onExportProgress?: (progress: { processedRows: number; totalRows: number; percentage: number; }) => void; onExportComplete?: (result: { success: boolean; filename: string; totalRows: number; }) => void; onExportError?: (error: { message: string; code: string; }) => void; onServerExport?: (filters?: Partial<TableFilters>, selection?: any) => Promise<{ data: any[]; total: number; }>; exportController?: AbortController | null; setExportController?: (controller: AbortController | null) => void; isExporting?: boolean; dataMode?: 'client' | 'server'; } export declare function useDataTableApi<T extends Record<string, any>>(props: UseDataTableApiProps<T>, ref: Ref<DataTableApi<T>>): void; export {};