2.1.2 • Published 4 years ago

@zegal/react-inline-suggest v2.1.2

Weekly downloads
230
License
MIT
Repository
github
Last release
4 years ago

React Inline Suggest

npm version

React component for a search input inline suggestions.

Features

  • Inline suggestion displayed in fancy way
  • Support simple arrays and complex arrays with objects
  • Accept value on Enter/Tab/Right Arrow click
  • Switch between suggestions using UP/Down Arrow
  • You decide when to render suggestion (eg. when user types 3 or more characters)

Installation

yarn add react-inline-suggest

or

npm install react-inline-suggest --save

Demo and examples

Live demo

Basic usage

Use InlineSuggest with complex array

import { InlineSuggest } from 'react-inline-suggest';

const users = [
  {
    id: 1,
    username: 'xmazu',
    email: 'xmazu@yahoo.com'
  },
  {
    id: 2,
    username: 'adam_tombleson',
    email: 'adam.tombleson@gmail.com'
  }
];

class ExampleApp extends React.Component {
  constructor(props) {
    super(props);

    this.state = {
      value: ''
    };
  }

  render() {
    return (
      <InlineSuggest
        suggestions={users}
        value={this.state.value}
        onChange={this.onChangeValue}
        onMatch={v => console.log(v)}
        ignoreCase={false}
      />
    );
  }

  onChangeValue = e => {
    this.setState({ value: e.currentTarget.value });
  }
}

Props

Component extends React.HTMLProps<HTMLInputElement> interface and adds some own props.

PropertyTypeDefaultRequiredDescription
valueanyundefinedyesinitial field value
suggestionsarrayundefinedyesArray of available items to search in. Items can take an arbitrary shape.
onChangefuncundefinedyesonChange handler: function(e: React.FormEvent) {}
onMatchfuncundefinedCalled when Tab/Enter/Right Arrow pressed or value matches fully
getFnfuncundefinedUsed to read the display value from each entry in suggestions: function(item: any): string {}
ignoreCasebooleantrueDetermines whether the case-sensitivity is relevant
shouldRenderSuggestionfuncundefinedWhen typing, this function will be called to consult when to render the suggestion. function(value: any): boolean {}
switchBetweenSuggestionsbooleanfalseSet it to true if you would like to switch between suggestions using Up/Down arrows
placeholderstringundefinedInput placeholder text

Typings

If you are using TypeScript, you don't have to install typings - they are provided in the npm package.

Development

yarn
yarn start

Now, open http://localhost:8080 and start hacking!

License

MIT