@itwin/presentation-components
Version:
React components based on iTwin.js Presentation library
76 lines • 3.67 kB
TypeScript
/** @packageDocumentation
* @module Tree
*/
import "../../common/DisposePolyfill.js";
import { AbstractTreeNodeLoaderWithProvider, PagedTreeNodeLoader, RenderedItemsRange, TreeModel, TreeModelSource } from "@itwin/components-react";
import { PresentationTreeDataProviderProps } from "../DataProvider.js";
import { IPresentationTreeDataProvider } from "../IPresentationTreeDataProvider.js";
/**
* Properties for [[usePresentationTreeNodeLoader]] hook.
* @public
* @deprecated in 4.x. This hook is not compatible with React 18 `StrictMode`. Use [[usePresentationTreeState]] instead.
*/
export interface PresentationTreeNodeLoaderProps extends PresentationTreeDataProviderProps {
/**
* Number of nodes in a single page. The created loader always requests at least
* a page nodes, so it should be optimized for usability vs performance (using
* smaller pages gives better responsiveness, but makes overall performance
* slightly worse).
*
* Note: The prop is already defined in `PresentationTreeDataProviderProps` but specified here again to make it required.
*/
pagingSize: number;
/**
* Initialize tree data with the provided tree model.
*/
seedTreeModel?: TreeModel;
}
/**
* Return type for [[usePresentationTreeNodeLoader]] hook.
* @public
* @deprecated in 4.x. This hook is not compatible with React 18 `StrictMode`. Use [[usePresentationTreeState]] instead.
*/
export interface PresentationTreeNodeLoaderResult {
/** Tree node loader to be used with a tree component */
nodeLoader: PagedTreeNodeLoader<IPresentationTreeDataProvider>;
/**
* Callback for when rendered tree node item range changes. This property should be passed to
* [ControlledTree]($components-react).
*/
onItemsRendered: (items: RenderedItemsRange) => void;
}
/**
* Custom hooks which creates PagedTreeNodeLoader with PresentationTreeDataProvider using
* supplied imodel and ruleset.
* @public
* @deprecated in 4.x. This hook is not compatible with React 18 `StrictMode`. Use [[usePresentationTreeState]] instead.
*/
export declare function usePresentationTreeNodeLoader(props: PresentationTreeNodeLoaderProps): PresentationTreeNodeLoaderResult;
/**
* Parameters for [[useControlledPresentationTreeFiltering]] hook
* @public
* @deprecated in 5.7. All tree-related APIs have been deprecated in favor of the new generation hierarchy
* building APIs (see https://github.com/iTwin/presentation/blob/33e79ee8d77f30580a9bab81a72884bda008db25/README.md#the-packages).
*/
export interface ControlledPresentationTreeFilteringProps {
nodeLoader: AbstractTreeNodeLoaderWithProvider<IPresentationTreeDataProvider>;
filter?: string;
activeMatchIndex?: number;
}
/**
* A custom hook that creates filtered model source and node loader for supplied filter.
* If filter string is not provided or filtering is still in progress it returns supplied
* model source and node loader.
*
* @public
* @deprecated in 5.7. All tree-related APIs have been deprecated in favor of the new generation hierarchy
* building APIs (see https://github.com/iTwin/presentation/blob/33e79ee8d77f30580a9bab81a72884bda008db25/README.md#the-packages).
*/
export declare function useControlledPresentationTreeFiltering(props: ControlledPresentationTreeFilteringProps): {
nodeHighlightingProps: import("@itwin/components-react").HighlightableTreeProps | undefined;
filteredNodeLoader: AbstractTreeNodeLoaderWithProvider<IPresentationTreeDataProvider>;
filteredModelSource: TreeModelSource;
isFiltering: boolean;
matchesCount: number | undefined;
};
//# sourceMappingURL=TreeHooks.d.ts.map