woocommerce/plugins/woocommerce-blocks/assets/js/editor-components/search-list-control
Mike Jolley cfeb5558b7 Update WordPress Monorepo packages with React 17x support (https://github.com/woocommerce/woocommerce-blocks/pull/5223)
* Use npm 14

* Update WP packages

* Update non-dev wordpress dependencies

* Remove usage of @automattic/data-stores

* Moves tag, search-list-control components back into private `editor-components` to mitigate dependency conflicts with`@woocommerce/components`

* Fix tests with act()

* package-lock

* fix broken maps

* Patch 14x package

* update locks

* Revert nvmrc change

* Fix tests due to debounce

Co-authored-by: Nadir Seghir <nadir.seghir@gmail.com>
2021-12-07 15:47:50 +00:00
..
test Update WordPress Monorepo packages with React 17x support (https://github.com/woocommerce/woocommerce-blocks/pull/5223) 2021-12-07 15:47:50 +00:00
README.md Update WordPress Monorepo packages with React 17x support (https://github.com/woocommerce/woocommerce-blocks/pull/5223) 2021-12-07 15:47:50 +00:00
index.ts Update WordPress Monorepo packages with React 17x support (https://github.com/woocommerce/woocommerce-blocks/pull/5223) 2021-12-07 15:47:50 +00:00
item.tsx Update WordPress Monorepo packages with React 17x support (https://github.com/woocommerce/woocommerce-blocks/pull/5223) 2021-12-07 15:47:50 +00:00
search-list-control.tsx Update WordPress Monorepo packages with React 17x support (https://github.com/woocommerce/woocommerce-blocks/pull/5223) 2021-12-07 15:47:50 +00:00
style.scss Update WordPress Monorepo packages with React 17x support (https://github.com/woocommerce/woocommerce-blocks/pull/5223) 2021-12-07 15:47:50 +00:00
types.ts Update WordPress Monorepo packages with React 17x support (https://github.com/woocommerce/woocommerce-blocks/pull/5223) 2021-12-07 15:47:50 +00:00
utils.tsx Update WordPress Monorepo packages with React 17x support (https://github.com/woocommerce/woocommerce-blocks/pull/5223) 2021-12-07 15:47:50 +00:00

README.md

SearchListControl

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: Number
  • name: 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 input
  • selected: 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