window-table
Version:
Windowing Table for React based on React Window
60 lines (59 loc) • 1.6 kB
TypeScript
import * as React from 'react';
export interface ReducerState {
header: [number, number];
row: [number, number];
table: [number, number];
}
export declare type TableEntity = keyof ReducerState;
export interface MeasureAction {
entity: TableEntity;
dimensions: [number, number];
}
export declare type Column<T = string, K = any> = {
key: T;
width: number;
title?: string;
Component?: React.ElementType<{
row?: K;
column?: Column<T, K>;
}>;
HeaderCell?: React.ElementType;
};
export declare type WindowTableProps<T> = {
columns: Column<keyof T, T>[];
data: T[];
height?: number;
width?: number;
rowHeight?: number;
overscanCount?: number;
style?: React.CSSProperties;
Cell?: React.ElementType;
HeaderCell?: React.ElementType;
Table?: React.ElementType;
Header?: React.ElementType;
HeaderRow?: React.ElementType;
Row?: React.ElementType;
Body?: React.ElementType;
sampleRowIndex?: number;
sampleRow?: T;
className?: string;
rowClassName?: string;
classNamePrefix?: string;
debounceWait?: number;
};
export interface RowCellsProps {
columns: any[];
classNamePrefix: string;
datum: any;
Cell: React.ElementType;
index?: number;
}
export interface HeaderRowProps {
Header: React.ElementType;
HeaderRow: React.ElementType;
HeaderCell: React.ElementType;
children?: any;
}
export interface Html5TableProps<T> extends WindowTableProps<T> {
headerClassName: string;
}