react-ui89
Version:
A collection of React components that mimic a common style of user interfaces from the late 80s and early 90s.
34 lines (33 loc) • 1.01 kB
TypeScript
import React from "react";
import "./Ui89VirtualList.css";
export interface Ui89VirtualListPropsRenderRowProps<T> {
index: number;
row: T;
}
export interface Ui89VirtualListHandle {
getScrollTop: () => number;
setScrollTop: (value: number) => void;
}
export interface Ui89VirtualListProps<T> {
maxHeight?: string;
rows: T[];
rowHeight?: number;
renderRow: (props: Ui89VirtualListPropsRenderRowProps<T>) => React.ReactNode;
getRowKey?: (row: T) => string;
/**
* Reports the space actually available to rows, which excludes the vertical
* scrollbar. Fires on mount and whenever the viewport resizes.
*/
onResize?: (size: {
width: number;
height: number;
}) => void;
}
/**
* Virtualization at row level. Great for long lists.
*
* Can be used to implement table components with few columns.
*/
export declare const Ui89VirtualList: <T>(props: Ui89VirtualListProps<T> & {
ref?: React.Ref<Ui89VirtualListHandle>;
}) => JSX.Element;