Tree: Lazy loading
Fetch children in onExpandedChange on <TreeItem />. Render a disabled loading row until they arrive, so the branch keeps its chevron.
api
Loading…
worker
Loading…
cron
Loading…
This adds the example as components/examples/tree/lazy.tsx, together with the Tree component and the HextaUI theme tokens it needs.
pnpm dlx shadcn@latest add https://hextaui.com/r/tree-lazy.jsonTo add only the component, follow the Tree installation.
Props in this example
The Tree props this example sets, from the API reference.
| Prop | Type | Default |
|---|---|---|
valueRequired. Unique within the tree. | string | – |
disabled | boolean | false |
onExpandedChangeCalled when this item opens or closes. | (expanded: boolean) => void | – |
| Prop | Type | Default |
|---|---|---|
iconShown before the label. | ReactNode | – |
expandedIconCrossfades in for icon while the branch is open. | ReactNode | – |
Every prop is in the Tree API reference.
- Indent guides
- Connectors
- Checkboxes
- Navigation
- Multiple selection
- Controlled
- Small
- Disabled
- Long names
- Right to left
See them all, with keyboard support and accessibility notes, on the Tree page.
- CheckboxA checkbox whose check draws in, with indeterminate parents, groups and labels that share its hover.
- AvatarUser photos with an initials fallback, status badges and stacked groups that collapse into a count.
- BadgeStatus labels with colored dots, removable tags that slide closed and counts that roll to their new value.
- CardA surface for grouping content, with three variants, edge-to-edge media, concentric radii and whole-card links.
- ChartRecharts charts with themed colors, a tooltip and legend that read labels from one config, and keyboard navigation with a visible focus ring.
- Data tableA table for real data, with sorting, search, row selection, pinned columns, a sticky header and pagination.