UNPKG

@sensilla-cloud/react-file-tree

Version:

Virtualized tree for displaying hierarchy in a traditional file-tree format

56 lines (52 loc) 1.48 kB
import React from 'react'; interface Node { id: string | number; name: string; data?: any; children?: Node[]; expanded?: boolean; disabled?: boolean; selected?: boolean; selectable?: boolean; } type NodeState = { expanded: boolean; depth: number; selected: boolean; disabled: boolean; selectable: boolean; parent: Node | null; }; type RenderOptions = Partial<{ childClassName: string; expandTool: React.ReactNode; collapseTool: React.ReactNode; indentWidth: number; }>; type ChildRenderer = (node: Node, state: NodeState, props: TreeProps, callbacks: { expand: (node: Node) => void; collapse: (node: Node) => void; select: (node: Node) => void; deselect: (node: Node) => void; }) => JSX.Element; type FilterFn = (node: Node, filter: string) => boolean; interface TreeProps { data: Node[]; className?: string; childRenderer?: ChildRenderer; renderOptions?: RenderOptions; virtual?: boolean; onExpand?: (node: Node) => void; onCollapse?: (node: Node) => void; selectable?: boolean; multiSelect?: boolean; onSelect?: (node: Node) => void; onDeselect?: (node: Node) => void; disabled?: boolean; filterable?: boolean; filter?: string; filterFn?: FilterFn; } type TreeType = React.FC<TreeProps>; declare const Tree: TreeType; export { ChildRenderer, FilterFn, Node, NodeState, RenderOptions, TreeProps, TreeType, Tree as default };