FlatTreeViewItem
interfaceSource L15Type contract for FlatTreeViewItem.
interface FlatTreeViewItem<T>Members
| Name | Type |
|---|---|
item | T |
id | string |
level | number |
parentId? | string |
position | number |
setSize | number |
hasChildren | boolean |
Open-code aq-ui React hook for Use Tree View.
pnpm dlx aq-ui@alpha add use-tree-viewImport the parts you need, then jump to an export for its contract.
"use client"
import { useTreeView } from "@/hooks/use-tree-view"Type contract for FlatTreeViewItem.
interface FlatTreeViewItem<T>| Name | Type |
|---|---|
item | T |
id | string |
level | number |
parentId? | string |
position | number |
setSize | number |
hasChildren | boolean |
Type contract for TreeViewController.
interface TreeViewController<T extends TreeViewItem>| Name | Type |
|---|---|
flatItems | FlatTreeViewItem<T>[] |
selectedIds | string[] |
expandedIds | string[] |
focusedId | string | undefined |
draggedId | string | undefined |
setSelectedIds | (ids: string[]) => void |
setExpandedIds | (ids: string[]) => void |
select | (id: string, additive?: boolean) => void |
toggleExpanded | (id: string, force?: boolean) => void |
focusId | (id: string) => void |
focusIndex | (index: number) => void |
onKeyDown | React.KeyboardEventHandler<HTMLElement> |
getItemProps | <TElement extends HTMLElement>( id: string ) => TreeViewItemProps<TElement> |
Type contract for TreeViewItem.
interface TreeViewItem| Name | Type |
|---|---|
id | string |
label | string |
children? | TreeViewItem[] |
disabled? | boolean |
Type contract for TreeViewItemProps.
interface TreeViewItemProps<T extends HTMLElement>| Name | Type |
|---|---|
ref | (element: T | null) => void |
role | "treeitem" |
tabIndex | 0 | -1 |
aria-level | number |
aria-posinset | number |
aria-setsize | number |
aria-expanded | boolean | undefined |
aria-selected | boolean |
aria-disabled | boolean | undefined |
draggable | boolean |
onFocus | () => void |
onClick | (event: React.MouseEvent<T>) => void |
onDoubleClick | () => void |
onDragStart | (event: React.DragEvent<T>) => void |
onDragOver | (event: React.DragEvent<T>) => void |
onDrop | (event: React.DragEvent<T>) => void |
onDragEnd | () => void |
Type contract for TreeViewMoveEvent.
interface TreeViewMoveEvent| Name | Type |
|---|---|
sourceId | string |
targetId | string |
position | "inside" |
Open-code aq-ui React hook for Use Tree View.
function useTreeView<T extends TreeViewItem>({ items, selectedIds: selectedIdsProp, defaultSelectedIds = EMPTY_IDS, onSelectedIdsChange, expandedIds: expandedIdsProp, defaultExpandedIds = EMPTY_IDS, onExpandedIdsChange, multiple = false, direction = "ltr", draggable = false, onMove,…): TreeViewController<T>TreeViewController<T>| Name | Type |
|---|---|
options | UseTreeViewOptions<T> |
Type contract for UseTreeViewOptions.
interface UseTreeViewOptions<T extends TreeViewItem>| Name | Type | Default |
|---|---|---|
items | T[] | — |
selectedIds? | string[] | — |
defaultSelectedIds? | string[] | EMPTY_IDS |
onSelectedIdsChange? | (ids: string[]) => void | — |
expandedIds? | string[] | — |
defaultExpandedIds? | string[] | EMPTY_IDS |
onExpandedIdsChange? | (ids: string[]) => void | — |
multiple? | boolean | false |
direction? | "ltr" | "rtl" | "ltr" |
draggable? | boolean | false |
onMove? | (event: TreeViewMoveEvent) => void | — |
getId? | (item: T) => string | defaultGetId |
getTextValue? | (item: T) => string | defaultGetText |
getChildren? | (item: T) => T[] | undefined | defaultGetChildren |
isDisabled? | (item: T) => boolean | defaultIsDisabled |
use-controllable-state, use-stable-callback