summaryrefslogtreecommitdiffhomepage
path: root/packages/ui/src/hooks
diff options
context:
space:
mode:
Diffstat (limited to 'packages/ui/src/hooks')
-rw-r--r--packages/ui/src/hooks/use-filtered-list.tsx7
1 files changed, 4 insertions, 3 deletions
diff --git a/packages/ui/src/hooks/use-filtered-list.tsx b/packages/ui/src/hooks/use-filtered-list.tsx
index e0cb6e7aa..f9745918a 100644
--- a/packages/ui/src/hooks/use-filtered-list.tsx
+++ b/packages/ui/src/hooks/use-filtered-list.tsx
@@ -12,7 +12,7 @@ export interface FilteredListProps<T> {
groupBy?: (x: T) => string
sortBy?: (a: T, b: T) => number
sortGroupsBy?: (a: { category: string; items: T[] }, b: { category: string; items: T[] }) => number
- onSelect?: (value: T | undefined) => void
+ onSelect?: (value: T | undefined, index: number) => void
}
export function useFilteredList<T>(props: FilteredListProps<T>) {
@@ -63,8 +63,9 @@ export function useFilteredList<T>(props: FilteredListProps<T>) {
const onKeyDown = (event: KeyboardEvent) => {
if (event.key === "Enter") {
event.preventDefault()
- const selected = flat().find((x) => props.key(x) === list.active())
- if (selected) props.onSelect?.(selected)
+ const selectedIndex = flat().findIndex((x) => props.key(x) === list.active())
+ const selected = flat()[selectedIndex]
+ if (selected) props.onSelect?.(selected, selectedIndex)
} else {
list.onKeyDown(event)
}