Async data

SuggestMenu has no built-in async API. Items are synchronous (array or sync function). You implement async by combining onOpenChange / onQueryChange with React state and optional loading UI.

Load on open

In onOpenChange(true), set loading state and fetch data (e.g. list of users). When the request resolves, set items into state and pass them to the menu (e.g. items={items}). Show a spinner in the popup while loading (e.g. conditional render in the List or Popup).

Search-as-you-type

Use onQueryChange with a debounced API call. Store the API results in state and pass them as filteredItems (controlled results). The menu then displays whatever you pass; you can show a loading indicator per query if needed.

Demos

Load on open — type /, see spinner, then results. Search-as-you-type — @ with debounced API via onQueryChange. See Storybook for interactive examples.