UNPKG

blueprint-fuzzy-select

Version:

Select options using fuzzy search suggestions.

114 lines (76 loc) 2.63 kB
Blueprint Fuzzy Select ====================== Blueprint Fuzzy Select is React component intended to extend [Blueprint's](https://github.com/palantir/blueprint) Input with fuzzy search suggestions dropdown à la Atom's command palette. 🖥 It supports any input as its child but suggestions dropdown uses [Blueprint's](https://github.com/palantir/blueprint) Menu and MenuItem components. 💙 ### Install ```yarn add blueprint-fuzzy-select``` Or if you prefer npm: ```npm install blueprint-fuzzy-select``` ### Usage #### Example Inside your react component. ``` <FuzzySelect haystack={['Kuba', 'Jen']} sort={true} onSelect={(name) => alert(name)} > <input /> </FuzzySelect> ``` #### Properties --- **haystack** *(type: `Array`)* Array of objects or strings containing the search list. --- **selected** *(type: `object` or `string`)* A selected option. If provided the component will behave in a controlled manner. 🎉 --- **field** *(type: `string`)* A name of the property to use for searching in `haystack` objects. Required if `haystack` is an array of objects, useless otherwise. --- **caseSensitive** *(type: `bool`, default: `false`)* Indicates whether comparisons should be case sensitive. --- **sort** *(type: `bool`, default: `false`)* Indicates whether results will sort by best match. --- **selectOnBlur** *(type: `bool` or `string`, default: `false`)* Indicates whether the first option should be selected on blur. You can also pass `'Click'` or `'Tab'` to limit behavior. --- **selectOnEnter** *(type: `bool`, default: `false`)* Indicates wether the first option should be selected on enter. --- **onSelect(needle)** *(type: `function`, required)* A function to perform when user selects an option. `needle` is a selected option out of `haystack`. --- **onAdd(input)** *(type: `function`) A function to perform when users adds a new option. Should return a new option based on an input. If not specified adding new options will be disabled. --- **onInput(input)** *(type: `function`)* A function to perform when user inputs a text. --- **onSuggestions(suggestions)** *(type: `function`)* A function to perform when user inputs a text. --- **onFocus()** *(type: `function`)* A function to perform when user focuses an input. --- **onBlur()** *(type: `function`)* A function to perform when user clicks outside the input. --- **children** (type: `element`) An element to use as input. ### Build `npm run build` ### Test `npm run test` ### License [MIT](LICENSE) ### Issues Use [GitHub](https://github.com/Kuba77/blueprint-fuzzy-select/issues) to report all issues.