Refactor getFocusedItemIndex to avoid conditionals that closest already handles (#36267)

This commit is contained in:
Brad Dunbar 2025-09-26 04:53:08 -04:00 committed by GitHub
parent 7431c50566
commit 238d74fe81
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -60,23 +60,13 @@ export function focusColumn({
* Get the index of the currently focused item in one of our item lists * Get the index of the currently focused item in one of our item lists
*/ */
export function getFocusedItemIndex() { export function getFocusedItemIndex() {
const focusedElement = document.activeElement; const focusedItem = document.activeElement?.closest('.item-list > *');
const itemList = focusedElement?.closest('.item-list');
if (!focusedElement || !itemList) {
return -1;
}
let focusedItem: HTMLElement | null = null;
if (focusedElement.parentElement === itemList) {
focusedItem = focusedElement as HTMLElement;
} else {
focusedItem = focusedElement.closest('.item-list > *');
}
if (!focusedItem) return -1; if (!focusedItem) return -1;
const items = Array.from(itemList.children); const { parentElement } = focusedItem;
if (!parentElement) return -1;
const items = Array.from(parentElement.children);
return items.indexOf(focusedItem); return items.indexOf(focusedItem);
} }