Select

Composable select primitives for custom option rows.

Demo

Usage

import { useState } from 'react'
import { Select, Token } from 'regen-ui'

const assetItems = [
  {
    label: 'pathUSD',
    prefix: (
      <Token
        address="0x20c0000000000000000000000000000000000000"
        chainId={4217}
        size="small"
      />
    ),
    suffix: '1,240.50',
    value: 'pathusd',
  },
  {
    label: 'USDC.e',
    prefix: (
      <Token
        address="0x20c000000000000000000000b9537d11c60e8b50"
        chainId={4217}
        size="small"
      />
    ),
    suffix: '845.00',
    value: 'usdce',
  },
]

export function AssetSelect() {
  const [value, setValue] = useState('pathusd')

  return <Select items={assetItems} onChange={setValue} value={value} />
}

API Reference

Select.Props

errorOptional
Typeboolean
DefaultNone
Error state for the trigger border.
itemsRequired
Typereadonly Item[]
DefaultNone
Selectable items.
onChangeRequired
Type(value: string) => void
DefaultNone
Called with the selected item value.
placeholderOptional
TypeReactNode
Default'Select an option'
Placeholder shown when no item is selected.
valueRequired
Typestring
DefaultNone
Current selected item value.
Inherits React.ButtonHTMLAttributes<HTMLButtonElement>, except onChange, prefix.

Select.Item

A selectable item.

disabledOptional
Typeboolean
DefaultNone
Whether this item is disabled.
labelRequired
TypeReactNode
DefaultNone
Main item label.
prefixOptional
TypeReactNode
DefaultNone
Element before the label.
suffixOptional
TypeReactNode
DefaultNone
Element after the label, shown in the popup only.
textValueOptional
Typestring
DefaultNone
Plain text label for keyboard search.
valueRequired
Typestring
DefaultNone
Stable item value.