@1771technologies/lytenyte-pro
Version:
Blazingly fast headless React data grid with 100s of features.
23 lines (22 loc) • 1.11 kB
TypeScript
import { type PathProvidedItem, type PathRoot } from "@1771technologies/lytenyte-shared";
import { type JSX } from "react";
import { type TreeVirtualItem } from "./make-virtual-tree.js";
export interface VirtualizedTreeViewPathsArgs<T extends PathProvidedItem> {
readonly itemHeight: number;
readonly expansions: Record<string, boolean>;
readonly expansionDefault?: boolean;
readonly paths: T[];
readonly nonAdjacentPathTrees?: boolean;
}
export interface TreeReturn<T extends PathProvidedItem> {
readonly ref: (h: HTMLElement | null) => void;
readonly virtualTree: TreeVirtualItem<T>[];
readonly spacer: JSX.Element;
readonly rootProps: {
readonly getAllIds: () => Set<string>;
readonly getIdsBetweenNodes: (h: HTMLElement, r: HTMLElement) => string[];
readonly onFocusChange: (h: HTMLElement | null) => void;
readonly root: PathRoot<T>;
};
}
export declare function useVirtualizedTree<T extends PathProvidedItem>({ itemHeight, expansions, expansionDefault, nonAdjacentPathTrees, paths, }: VirtualizedTreeViewPathsArgs<T>): TreeReturn<T>;