@1771technologies/lytenyte-pro
Version:
Blazingly fast headless React data grid with 100s of features.
39 lines (38 loc) • 1.77 kB
TypeScript
import { type Dispatch, type JSX, type SetStateAction } from "react";
import type { Column, FilterIn, FilterInFilterItem, Grid } from "../../+types";
import type { PathRoot } from "@1771technologies/lytenyte-shared";
import type { TreeVirtualItem } from "../../tree-view/virtualized/make-virtual-tree";
export interface UseTreeFilterReturn<T> {
readonly rootProps: {
readonly fetchItems: () => void;
readonly loading: boolean;
readonly error: any;
readonly pivotMode: boolean;
readonly grid: Grid<T>;
readonly expansions: Record<string, boolean>;
readonly onExpansionChange: Dispatch<SetStateAction<Record<string, boolean>>>;
readonly treeRef: (el: HTMLElement | null) => void;
readonly getAllIds: () => Set<string>;
readonly getIdsBetweenNodes: (left: HTMLElement, right: HTMLElement) => string[];
readonly onFocusChange: (el: HTMLElement | null) => void;
readonly root: PathRoot<FilterInFilterItem>;
readonly columnId: string;
readonly items: FilterInFilterItem[];
readonly applyChangesImmediately: boolean;
readonly filterIn: FilterIn;
readonly filterInChange: Dispatch<SetStateAction<FilterIn>>;
};
readonly tree: TreeVirtualItem<FilterInFilterItem>[];
readonly spacer: JSX.Element;
readonly apply: () => void;
readonly reset: () => void;
}
export interface UseFilterTreeArgs<T> {
grid: Grid<T>;
column: Column<T>;
treeItemHeight?: number;
pivotMode?: boolean;
applyChangesImmediately?: boolean;
query?: string;
}
export declare function useFilterTree<T>({ grid, column, treeItemHeight, pivotMode, applyChangesImmediately, query, }: UseFilterTreeArgs<T>): UseTreeFilterReturn<T>;