UNPKG

@etsoo/react

Version:

TypeScript ReactJs UI Independent Framework

52 lines (51 loc) 1.45 kB
import { DataTypes } from "@etsoo/shared"; import React from "react"; import { ListImperativeAPI, ListProps } from "react-window"; import { GridLoader, GridLoaderPartialStates } from "./GridLoader"; import { GridMethodRef } from "./GridMethodRef"; type ScrollerListRowProps<T extends object> = { items: T[]; }; /** * On rows rendered data */ export type OnRowsRenderedData = Parameters<NonNullable<ListProps<object>["onRowsRendered"]>>[0]; /** * Scroller list forward ref */ export interface ScrollerListForwardRef<T> extends GridMethodRef<T> { } /** * Scroller vertical list props */ export type ScrollerListProps<T extends object> = GridLoader<T> & Omit<ListProps<ScrollerListRowProps<T>>, "rowCount" | "rowProps" | "overscanCount"> & { /** * Height of the list */ height?: number | string; /** * Id field */ idField?: DataTypes.Keys<T>; /** * Methods ref */ mRef?: React.Ref<ScrollerListForwardRef<T>>; /** * Handler for init load * @param ref Ref * @returns Result */ onInitLoad?: (ref: ListImperativeAPI) => [T[], GridLoaderPartialStates<T>?] | null | undefined; /** * Width of the list */ width?: number | string; }; /** * Scroller vertical list * @param props Props * @returns Component */ export declare const ScrollerList: <T extends object>(props: ScrollerListProps<T>) => import("react/jsx-runtime").JSX.Element; export {};