private _getActiveIndex()

in src/select/select.tsx [618:642]


  private _getActiveIndex(items: SelectItem<T>[]): number | null {
    const {selected, lastInteractedKey} = this.state;
    const isNonOptionItem = (item: SelectItem<T>) =>
      item.isResetItem || List.isItemType(List.ListProps.Type.SEPARATOR, item);

    if (lastInteractedKey !== null && lastInteractedKey !== undefined) {
      const index = items.findIndex(item => item.key === lastInteractedKey && !isNonOptionItem(item));
      if (index >= 0) return index;
    }
    let selectedItems: SelectItem<T>[] = [];

    if (Array.isArray(selected)) {
      selectedItems = selected;
    } else if (selected) {
      selectedItems = [selected];
    }

    if (selectedItems.length > 0) {
      const lastSelected = selectedItems[selectedItems.length - 1];
      const index = items.findIndex(item => item.key === lastSelected.key);
      if (index >= 0) return index;
    }

    return null;
  }