Skip to content

PickerList

Standalone scrolling result list with selection highlighting. Extracted from PickerDialog so it can be composed independently by callers that manage their own input.

Import

tsx
import { PickerList } from "silvery"

Props

PropTypeDefaultDescription
itemsT[]requiredItems to display
selectedIndexnumberrequiredCurrently selected index (caller-managed)
renderItem(item: T, selected: boolean) => ReactNoderequiredRender function for each item
keyExtractor(item: T) => stringrequiredUnique key for each item
emptyMessagestring"No items"Message when items list is empty
maxVisiblenumber10Maximum visible items before scrolling

Behavior

  • Centers the selected item in the visible window
  • Handles scroll offset calculation
  • Does NOT handle keyboard navigation (caller manages selectedIndex)
  • Does NOT handle input/search (caller's responsibility)

Usage

tsx
<PickerList
  items={filteredResults}
  selectedIndex={selected}
  renderItem={(item, sel) => <Text inverse={sel}>{item.name}</Text>}
  keyExtractor={(item) => item.id}
/>

See Also

Released under the MIT License.