Autocomplete

Autocomplete user input with any list of options.

Import

import { Autocomplete } from '@tidbcloud/uikit'

Usage

Autocomplete provides user a list of suggestions based on the input. However, user is not limited to suggestions and can type anything.

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

Controlled

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

Data format

Data can be an array of strings or objects:

import { Autocomplete } from '@tidbcloud/uikit'
 
function Demo() {
  return (
    <Autocomplete
      data={[
        { value: 'react', label: 'React' },
        { value: 'angular', label: 'Angular' }
      ]}
    />
  )
}

Grouped options

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

Clearable

Set clearable prop to display the clear button:

import { Autocomplete } from '@tidbcloud/uikit'
 
function Demo() {
  return <Autocomplete clearable defaultValue="React" data={['React', 'Angular']} label="Clearable autocomplete" />
}

Disabled

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

Props

PropTypeDefaultDescription
clearableboolean-If set, the clear button is displayed
datastring[] | { value: string; label: string }[]-Data for options
defaultValuestring-Default value for uncontrolled component
descriptionReact.ReactNode-Input description
disabledboolean-Sets disabled attribute
errorReact.ReactNode-Error message
filter(options, search) => options-Custom filter function
labelReact.ReactNode-Input label
limitnumber-Maximum number of options displayed
maxDropdownHeightnumber250Max dropdown height
onChange(value: string) => void-Called when value changes
placeholderstring-Input placeholder
valuestring-Controlled component value