react-toolbox/components/autocomplete
Vitaliy Filippov e745e3332e Hide clear icon in autocomplete if autocomplete is disabled 2019-06-28 16:00:16 +03:00
..
Autocomplete.d.ts Rework & simplify autocomplete code 2018-11-28 15:44:09 +03:00
Autocomplete.js Hide clear icon in autocomplete if autocomplete is disabled 2019-06-28 16:00:16 +03:00
config.css Migrate styles to PostCSS (#666) 2017-01-05 02:42:18 +01:00
index.d.ts Restructure typescript definitions (#1114) 2017-01-18 08:37:37 +01:00
index.js Allow to reference Input via Autocomplete (#1255) 2017-02-26 14:25:46 +01:00
readme.md Rework & simplify autocomplete code 2018-11-28 15:44:09 +03:00
theme.css Replace Dropdown with Autocomplete 2019-06-19 20:13:48 +03:00

readme.md

Autocomplete

An input field with a set of predeterminated labeled values. When it's focused it shows a list of options that are filtered by label as the user types. They can be simple or multiple depending on the amount of values that can be selected. The opening direction is determined by its current position at opening time.

import Autocomplete from 'react-toolbox/lib/autocomplete';

const source = {
  'ES-es': 'Spain',
  'TH-th': 'Thailand',
  'EN-gb': 'England',
  'EN-en': 'USA'
};

class AutocompleteTest extends React.Component {
  state = {
    countries: ['ES-es', 'TH-th']
  }

  handleChange = (value) => {
    this.setState({countries: value});
  };

  render () {
    return (
      <Autocomplete
        direction="down"
        selectedPosition="above"
        label="Choose countries"
        onChange={this.handleChange}
        source={source}
        value={this.state.countries}
      />
    );
  }
}

If you want to provide a theme via context, the component key is RTAutocomplete.

Properties

Name Type Default Description
className String '' Sets a class to style of the Component.
direction String auto Determines the opening direction. It can be auto, up or down.
disabled Bool false If true, component will be disabled.
error String or Node Sets the error string for the internal input element.
keepFocusOnChange Bool false Whether component should keep focus after value change.
label String or Node The text string to use for the floating label element.
multiple Bool true If true, component can hold multiple values.
onBlur Function Callback function that is fired when component is blurred.
onChange Function Callback function that is fired when the components's value changes.
onFocus Function Callback function that is fired when component is focused.
onKeyDown Function Callback function that is fired when a key is pressed down.
onKeyUp Function Callback function that is fired when a key is lifted up.
onQueryChange Function Callback function that is fired when the components's query input value changes.
query String This property has to be used in case the source is not static and will be changing during search for multiple={false} autocomplete, content of the query has to be managed by the onQueryChange callback.
source Object or Array Object of key/values or array representing all items suggested.
selectedPosition String above Determines if the selected list is shown above or below input. It can be above, below or none.
suggestionMatch String start Determines how suggestions are supplied. It can be start (query matches the start of a suggestion), anywhere (query matches anywhere inside the suggestion), word (query matches the start of a word in the suggestion) or disabled (disable filtering of provided source, all items are shown).
value String, Array or Object Value or array of values currently selected component.

Additional properties will be passed to the Input Component so you can use hint, name ... etc.

Theme

This component uses an Input under the covers. The theme object is passed down namespaced under input keyword. This means you can use the same theme classNames from Input component but namespaced with input. For example, to style the label you have to use inputLabel className.

Name Description
active Used for a suggestion when it's active.
autocomplete Used for the root element.
focus Used when the input is focused.
input Used to style the Input component.
suggestion Used to style each suggestion.
suggestions Used to style the suggestions container.
up Used for the suggestions when it's opening to the top.
value Classname used for a single value.
values Classname used for the values container.