This package has been deprecated

Author message:

Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

react-pick

0.5.0 • Public • Published

react-pick

Build Status

Accessible autocompletion components (e.g. typeahead inputs, popups, and comboboxes), implemented in React.

Intially derived from Ryan Florence's awesome react-autocomplete.

Demos

Installation & Usage

npm install react-pick

You'll need to make sure you're including the styles.css file in the root of the npm module in your app somehow. Or write your own, better stylesheet.

What's inside?

For out-of-the-box usage:

  • <Combobox> - Supports find displaying asynchronous autocomplete suggestions inline as "type ahead" text, as a popup menu, and as both at once. Supports keyboard navigation, and seeks to be WAI-ARIA compliant.

For customizing <Combobox> and creating your own components:

  • <TypeaheadInput> - An <input> that robustly inserts "type ahead" text.
  • <InputWithPopup> - Attaches a popup to an <input>.
  • <List> - A popup for rendering a list of possible completion options.
  • <ListOption> - The default component for rendering options in <ListPopup>.

How do you use <Combobox>?

Pretty much the same way you would the <input> component in React, but with an extra getOptionsForInputValue property to fetch autocompletion options.

var React = require('react');
var {Combobox} = require('react-pick');
 
var AWESOME_PEOPLE = [
  'Ryan Florence',
  'Pete Hunt', 
  'Jonathan Wilde'
];
 
var MyAppWithACombobox = React.createClass({
 
  getInitialState: function() {
    return {value: null};
  },
 
  getOptionsForInputValue: function(inputValue) {
    return new Promise(function(resolve, reject) {
      inputValue = inputValue.toLowerCase();
 
      resolve(
        AWESOME_PEOPLE
          .map((person) => person.toLowerCase())
          .filter((person) => person.indexOf(inputValue) === 0)
      );
    });
  },
 
  handleChange: function(newValue) {
    this.setState({value: newValue});
  },
 
  render: function() {
    <div className="app">
      <Combobox
        getOptionsForInputValue={this.getOptionsForInputValue}
        onChange={this.handleChange}
        value={this.state.value}
      />
      <p>Selection: {this.state.value}</p>
    </div>
  }
 
});

Check out more examples.

Package Sidebar

Install

npm i react-pick

Weekly Downloads

0

Version

0.5.0

License

MIT

Last publish

Collaborators

  • hellojwilde