615ff35fac
Searches would keep the case of the user input instead of the original case of the name. Search still is case insensitive, but preserves the original item's case. Also, this PR adds a test for this bug and fixes a previous test case. |
||
---|---|---|
.. | ||
test | ||
README.md | ||
index.ts | ||
item.tsx | ||
search-list-control.tsx | ||
style.scss | ||
types.ts | ||
utils.tsx |
README.md
SearchListControl
Table of contents
Component to display a searchable, selectable list of items.
Usage
<SearchListControl
list={ list }
isLoading={ loading }
selected={ selected }
onChange={ ( items ) => setState( { selected: items } ) }
/>
Props
Name | Type | Default | Description |
---|---|---|---|
className |
String | null |
Additional CSS classes |
isHierarchical |
Boolean | null |
Whether the list of items is hierarchical or not. If true, each list item is expected to have a parent property |
isLoading |
Boolean | null |
Whether the list of items is still loading |
isSingle |
Boolean | null |
Restrict selections to one item |
list |
Array | null |
A complete list of item objects, each with id, name properties. This is displayed as a clickable/keyboard-able list, and possibly filtered by the search term (searches name) |
messages |
Object | null |
Messages displayed or read to the user. Configure these to reflect your object type. See defaultMessages above for examples |
onChange |
Function | null |
(required) Callback fired when selected items change, whether added, cleared, or removed. Passed an array of item objects (as passed in via props.list) |
onSearch |
Function | null |
Callback fired when the search field is used |
renderItem |
Function | null |
Callback to render each item in the selection list, allows any custom object-type rendering |
selected |
Array | null |
(required) The list of currently selected items |
search |
String | null |
|
setState |
Function | null |
|
debouncedSpeak |
Function | null |
|
instanceId |
Number | null |
list
item structure
id
: Numbername
: String
messages
object structure
clear
: String - A more detailed label for the "Clear all" button, read to screen reader users.list
: String - Label for the list of selectable items, only read to screen reader users.noItems
: String - Message to display when the list is empty (implies nothing loaded from the server or parent component).noResults
: String - Message to display when no matching results are found. %s is the search term.search
: String - Label for the search inputselected
: Function - Label for the selected items. This is actually a function, so that we can pass through the count of currently selected items.updated
: String - Label indicating that search results have changed, read to screen reader users.
SearchListItem
Usage
Used implicitly by SearchListControl
when the renderItem
prop is omitted.
Props
Name | Type | Default | Description |
---|---|---|---|
className |
String | null |
Additional CSS classes |
countLabel |
ReactNode | null |
Label to display in the count bubble. Takes preference over item.count . |
depth |
Number | 0 |
Depth, non-zero if the list is hierarchical |
item |
Object | null |
Current item to display |
isSelected |
Boolean | null |
Whether this item is selected |
isSingle |
Boolean | null |
Whether this should only display a single item (controls radio vs checkbox icon) |
onSelect |
Function | null |
Callback for selecting the item |
search |
String | '' |
Search string, used to highlight the substring in the item name |
We're hiring! Come work with us!
🐞 Found a mistake, or have a suggestion? Leave feedback about this document here.