@etsoo/react
Version:
TypeScript ReactJs UI Independent Framework
52 lines (51 loc) • 1.45 kB
TypeScript
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 {};