# Shadcn Async Loading

> Async drill-down that loads before it navigates.

- Type: example, free and open source (MIT)
- Component: [Cascader](https://reui.io/components/cascader.md)
- Page: https://reui.io/components/cascader/c-cascader-15
- Docs (Base UI): https://reui.io/docs/components/base/cascader.md
- Docs (Radix UI): https://reui.io/docs/components/radix/cascader.md
- MCP: `get_example("c-cascader-15")`
- Registry item: https://reui.io/r/styles/base-nova/c-cascader-15.json
- Uses: Badge, Button, Cascader

## Best for

Repositories, releases and paged release assets fetched on demand, with a toned badge per row and a button that fails the next request

## Agent notes

- Replace `getChildren`, which fakes a 700ms backend from `REPOSITORIES`, with your fetch and pass it `context.signal`
- Set `hasChildren` on every branch you have not fetched yet, or it renders as a selectable leaf
- Drop `failNext` and its button; they exist only to show the retry row

## Install

```bash
npx shadcn@latest add @reui/c-cascader-15
```

## About Shadcn Cascader

### When to use

- Form fields that commit one value from a nested tree, such as a category, region, file or department
- Picking several nodes at once, such as permissions, report columns or shipping zones with cascading checks
- Deep or large hierarchies as Miller columns, an expanding tree, an inline panel or levels fetched on demand

### When not to use

- A short flat list of options with no nesting: use [Select](https://reui.io/components/select.md) (`get_component("select")`)
- A folder hierarchy browsed on the page rather than picked into a form field: use [Tree](https://reui.io/components/tree.md) (`get_component("tree")`)
- A table of records whose cells are edited in place and saved together: use the [Editing blocks](https://reui.io/blocks/data-grid/editing.md)

### Agent notes

- Parts live in separate files with no index: `CascaderItems` comes from `cascader-item`, while `CascaderInput` and `CascaderValue` come from `cascader-nav`
- Give every node a `value` that is unique across the whole tree, not only within its level; a repeated `value` silently drops the later row

Every ReUI item has a twin like this one; the index is https://reui.io/llms.txt. Agents with the ReUI MCP (https://reui.io/docs/mcp) get the same guidance from the getters named above.
