Remote pickers
Autocomplete and MultiSelect take asourceinstead ofitems: a debounced function of the typed text that resolves the options. Here it isGET /api/notes/search?q=, capped at 20 rows, so the picker works the same over ten notes or ten million.
Autocomplete
Type to search titles
Selected id:—
MultiSelect
Labels of picked options survive new searches
Selected ids:—
What to look at
- Requests fire 200 ms after the last keystroke (
debounce), and a slow earlier response never overwrites a newer one. - The search route reuses
listQuery()forqandpageSize; responses under 1 KB are plain JSON even with the TRON Accept header. - Swap
sourceforitemsand both components fall back to client-side filtering — same markup, same keyboard handling.