@ackplus/react-tanstack-data-table
Version:
A powerful React data table component built with MUI and TanStack Table
44 lines (43 loc) • 1.82 kB
TypeScript
import { Table } from '@tanstack/react-table';
import { ReactNode, RefObject } from 'react';
import { CustomColumnFilterState, TableSize } from '../types';
import { DataTableApi } from '../types/data-table-api';
interface DataTableContextValue<T = any> {
table?: Table<T>;
apiRef?: RefObject<DataTableApi<T>>;
dataMode?: 'client' | 'server';
tableSize?: TableSize;
onTableSizeChange?: (size: TableSize) => void;
customColumnsFilter?: CustomColumnFilterState;
onChangeCustomColumnsFilter?: (filter: CustomColumnFilterState) => void;
slots?: Record<string, any>;
slotProps?: Record<string, any>;
isExporting?: boolean;
exportController?: AbortController | null;
onCancelExport?: () => 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<any>) => Promise<{
data: any[];
total: number;
}>;
}
interface DataTableProviderProps<T = any> extends DataTableContextValue<T> {
children: ReactNode;
}
export declare function DataTableProvider<T = any>({ children, table, apiRef, dataMode, tableSize, onTableSizeChange, customColumnsFilter, onChangeCustomColumnsFilter, slots, slotProps, isExporting, exportController, onCancelExport, exportFilename, onExportProgress, onExportComplete, onExportError, onServerExport, }: DataTableProviderProps<T>): import("react/jsx-runtime").JSX.Element;
export declare function useDataTableContext<T = any>(): DataTableContextValue<T>;
export {};