Autocomplete
A simple autocomplete select component.
Usage
import { Autocomplete } from "@newfold/ui-component-library";
<Autocomplete
id="autocomplete-input"
onChange={handleChange}
onQueryChange={handleQueryChange}
placeholder="Type to autocomplete options"
value=""
>
<Autocomplete.Option value="1">
Option 1
</Autocomplete.Option>
<Autocomplete.Option value="2">
Option 2
</Autocomplete.Option>
<Autocomplete.Option value="3">
Option 3
</Autocomplete.Option>
</Autocomplete>
Label
An example with a label using label prop.
Select an Option
<Autocomplete
id="autocomplete-input"
onChange={handleChange}
onQueryChange={handleQueryChange}
placeholder="Type to autocomplete options"
value=""
label="Select an Option"
>
<Autocomplete.Option value="1">
Option 1
</Autocomplete.Option>
<Autocomplete.Option value="2">
Option 2
</Autocomplete.Option>
<Autocomplete.Option value="3">
Option 3
</Autocomplete.Option>
</Autocomplete>
Placeholder
An example with placeholder using placeholder prop.
Select an Option
<Autocomplete
id="autocomplete-input"
onChange={handleChange}
onQueryChange={handleQueryChange}
value=""
label="Select an Option"
placeholder="A custom placeholder"
>
<Autocomplete.Option value="1">
Option 1
</Autocomplete.Option>
<Autocomplete.Option value="2">
Option 2
</Autocomplete.Option>
<Autocomplete.Option value="3">
Option 3
</Autocomplete.Option>
</Autocomplete>
Selected Label
An example with default value using selectedLabel prop.
Select an Option
<Autocomplete
id="autocomplete-input"
onChange={handleChange}
onQueryChange={handleQueryChange}
value="2"
label="Select an Option"
placeholder="Type to autocomplete options"
selectedLabel="Option 2"
>
<Autocomplete.Option value="1">
Option 1
</Autocomplete.Option>
<Autocomplete.Option value="2">
Option 2
</Autocomplete.Option>
<Autocomplete.Option value="3">
Option 3
</Autocomplete.Option>
</Autocomplete>
Nullable
Allow empty values with reset button X or deleting the option and clicking outside the field.
Select an Option
<Autocomplete
id="autocomplete-input"
onChange={handleChange}
onQueryChange={handleQueryChange}
value=""
label="Select an Option"
placeholder="Type to autocomplete options"
selectedLabel=""
>
<Autocomplete.Option value="1">
Option 1
</Autocomplete.Option>
<Autocomplete.Option value="2">
Option 2
</Autocomplete.Option>
<Autocomplete.Option value="3">
Option 3
</Autocomplete.Option>
</Autocomplete>
onChange
The onChange prop is a function that will be called when the value of the Autocomplete component changes.
The function will receive the new value of the Autocomplete component as a parameter.
<Autocomplete
id="autocomplete-input"
onChange={new_val => console.log(new_val)}
onQueryChange={handleQueryChange}
>
<Autocomplete.Option value="1">
Option 1
</Autocomplete.Option>
<Autocomplete.Option value="2">
Option 2
</Autocomplete.Option>
<Autocomplete.Option value="3">
Option 3
</Autocomplete.Option>
</Autocomplete>
onQueryChange
The onQueryChange prop is a function that will be called when the query of the Autocomplete component changes.
The function will receive the new query event of the Autocomplete component as a parameter.
<Autocomplete
id="autocomplete-input"
onChange={(new_val) => console.log(new_val)}
onQueryChange={(event) => console.log(event.target.value)}
>
<Autocomplete.Option value="1">
Option 1
</Autocomplete.Option>
<Autocomplete.Option value="2">
Option 2
</Autocomplete.Option>
<Autocomplete.Option value="3">
Option 3
</Autocomplete.Option>
</Autocomplete>
Props
| Attribute | Type | Description | Default |
|---|---|---|---|
| id* | string | | HTML id attribute. | - |
| value | string | number | bool | | - | - |
| placeholder | string | | - | - |
| children | node | | Pass `Autocomplete.Option` components as children | - |
| selectedLabel | string | | The label of the selected option. | - |
| label | string | | The label of the autocomplete input. | - |
| labelProps | object | | - | - |
| labelSuffix | node | | - | - |
| onChange* | function | | Callback function that is fired when an item has been selected. | - |
| onQueryChange* | function | | Callback function that is fired when the query changes. | - |
| className | string | | - | - |
| nullable | bool | | If true, the user can clear the selected value with `X` button. | - |
| buttonProps | object | | Props to be passed to the `X` button element. | - |
| clearButtonScreenReaderText | string | | Screen reader text for the clear button. | Clear |