Giter VIP home page Giter VIP logo

react-inline-suggest's Introduction

React Inline Suggest

npm version Build Status

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

Include react-inline-suggest.css from node_modules/react-inline-suggest/dist in your project.

Demo and examples

Live demo: xmazu.github.io/react-inline-suggest

Basic usage

Use InlineSuggest with complex array

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

const users = [
  {
    id: 1,
    username: 'xmazu',
    email: '[email protected]'
  },
  {
    id: 2,
    username: 'john_doe',
    email: '[email protected]'
  }
];

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

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

  render() {
    return (
      <InlineSuggest 
        haystack={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.

Property Type Default Required Description
value any undefined yes initial field value
haystack array undefined yes Array of available items to search in. Items can take an arbitrary shape.
onChange func undefined yes onChange handler: function(e: React.FormEvent) {}
onMatch func undefined Called when Tab/Enter/Right Arrow pressed or value matches fully
getFn func undefined Used to read the display value from each entry in haystack: function(item: any): string {}
ignoreCase boolean true Determines whether the case-sensitivity is relevant
shouldRenderSuggestion func undefined When typing, this function will be called to consult when to render the suggestion. function(value: any): boolean {}
switchBetweenSuggestions boolean false Set it to true if you would like to switch between suggestions using Up/Down arrows

Typings

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

Development

yarn
yarn start

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

License

MIT

react-inline-suggest's People

Contributors

xmazu avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.