MultiSelect

Custom searchable multi-select component for selecting multiple values from a list.

Import

import { MultiSelect } from '@tidbcloud/uikit'

Basic Usage

import { MultiSelect } from '@tidbcloud/uikit'
 
function Demo() {
  return (
    <MultiSelect
      label="Your favorite libraries"
      placeholder="Pick value"
      data={['React', 'Angular', 'Vue', 'Svelte']}
    />
  )
}

Controlled

import { useState } from 'react'
import { MultiSelect } from '@tidbcloud/uikit'
 
function Demo() {
  const [value, setValue] = useState<string[]>([])
  return <MultiSelect data={['React', 'Angular', 'Vue', 'Svelte']} value={value} onChange={setValue} />
}

Searchable

import { MultiSelect } from '@tidbcloud/uikit'
 
function Demo() {
  return (
    <MultiSelect
      label="Your favorite libraries"
      placeholder="Pick value"
      data={['React', 'Angular', 'Vue', 'Svelte']}
      searchable
    />
  )
}

Clearable

import { MultiSelect } from '@tidbcloud/uikit'
 
function Demo() {
  return (
    <MultiSelect
      label="Your favorite libraries"
      placeholder="Pick value"
      data={['React', 'Angular', 'Vue', 'Svelte']}
      defaultValue={['React']}
      clearable
    />
  )
}

Max Values

Limit the number of selected values.

import { MultiSelect } from '@tidbcloud/uikit'
 
function Demo() {
  return (
    <MultiSelect
      label="Your favorite libraries"
      placeholder="Select up to 2 libraries"
      data={['React', 'Angular', 'Vue', 'Svelte']}
      maxValues={2}
    />
  )
}

Hide Picked Options

import { MultiSelect } from '@tidbcloud/uikit'
 
function Demo() {
  return (
    <MultiSelect
      label="Your favorite libraries"
      placeholder="Pick value"
      data={['React', 'Angular', 'Vue', 'Svelte']}
      hidePickedOptions
    />
  )
}

Grouped Options

import { MultiSelect } from '@tidbcloud/uikit'
 
function Demo() {
  return (
    <MultiSelect
      label="Your favorite libraries"
      placeholder="Pick value"
      data={[
        { group: 'Frontend', items: ['React', 'Angular'] },
        { group: 'Backend', items: ['Express', 'Django'] }
      ]}
    />
  )
}

Key Props

PropTypeDescription
datastring[] | ComboboxDataOptions data
valuestring[]Selected values (controlled)
defaultValuestring[]Default selected values
onChange(value: string[]) => voidCalled when value changes
searchablebooleanEnable filtering by user input
clearablebooleanShow clear button
maxValuesnumberMaximum number of selected values
hidePickedOptionsbooleanHide selected options from dropdown
nothingFoundMessagestringMessage when no options match search
checkIconPosition'left' | 'right'Position of check icon
withCheckIconbooleanShow check icon on selected options
labelReactNodeInput label
placeholderstringInput placeholder
disabledbooleanDisable input
searchValuestringControlled search value
onSearchChange(value: string) => voidCalled when search value changes