react-ui89
Version:
A collection of React components that mimic a common style of user interfaces from the late 80s and early 90s.
41 lines (40 loc) • 1.31 kB
TypeScript
import React from "react";
import "./Ui89VirtualTable.css";
import "../style/typo.css";
export interface Ui89VirtualTableHandle {
getScrollTop: () => number;
setScrollTop: (value: number) => void;
}
export declare enum Ui89VirtualTablePropsColumnAlign {
left = "left",
right = "right",
center = "center"
}
export interface Ui89VirtualTablePropsColumnRenderHeaderParams<T> {
index: number;
column: Ui89VirtualTablePropsColumn<T>;
}
export interface Ui89VirtualTablePropsColumnRenderBodyParams<T> {
index: number;
row: T;
}
export interface Ui89VirtualTablePropsColumnWidth {
stretch?: {
min: number;
};
}
export interface Ui89VirtualTablePropsColumn<T> {
width?: number | Ui89VirtualTablePropsColumnWidth;
halign?: keyof typeof Ui89VirtualTablePropsColumnAlign;
renderHeader?: (props: Ui89VirtualTablePropsColumnRenderHeaderParams<T>) => React.ReactNode;
renderBody: (props: Ui89VirtualTablePropsColumnRenderBodyParams<T>) => React.ReactNode;
}
export interface Ui89VirtualTableProps<T> {
maxHeight?: string;
rows?: T[];
columns?: Ui89VirtualTablePropsColumn<T>[];
rowHeight?: number;
}
export declare const Ui89VirtualTable: <T>(props: Ui89VirtualTableProps<T> & {
ref?: React.Ref<Ui89VirtualTableHandle>;
}) => JSX.Element;