the type of each item within the item list
the type of the DOM element for the keyboard event handler.
the type of the DOM element for the keyboard event handler.
The keys that can trigger a move to the previous item. If the loopable
config is enabled, this will loop to the last item if the first item is
currently "focused".
A function that is used to find the next match index within a list of values by comparing the start values ignoring case.
If a match can not be found from the search string, -1
will be returned.
The search value is self-matchable by default, but it can be omitted by
disabling the isSelfMatchable
argument. This will make a self-match return
-1
.
The current search value
A list of values to search within
The index within the values list to start the search from
Boolean if the current index can be included in the search
The currently focused index within the item list. This will need to be
updated due to the onChange
callback being called for this hook to work
as it is fully "controlled" by a parent hook/component.
A function that will get a string value from each item. The default implementation will:
valueKey
on an object is a function).The keys that can trigger a move to the next item. If the loopable
config
is enabled, this will loop to the first item if the last item is currently
"focused".
The list of items that should be searched whenever the user types a letter.
The keys that can trigger a move to the first item.
The keys that can trigger a move to the last item.
Boolean if the keyboard movement should be able to loop around once it has reached the start or end of all the items.
An optional onKeyDown
event handler that should be merged with the search
functionality.
Note: This will be called before the search functionality is triggered.
The amount of time that a "search" value should be kept before resetting. The default value works for most cases, but it might be nice to configure it based on your use case.
Boolean if the movement should also include printable characters search movement.
Boolean if the event should trigger event.stopPropagation()
when the
custom keyboard movement is triggered. This should generally be kept as
false
or undefined
by default, but enabled when creating more complex
2-dimensional movement cases such as grids.
The key to use to get a value string if the item is an object.
A required change event handler that will be called whenever a user types a
letter and it causes a new item to be "found". This should normally be
something that either updates the aria-activedescendant
id to the new
found item's id or manually focus the item's DOM node.
Generated using TypeDoc
The options for custom keyboard movement.