handleNavigation()

in src/select/select-popup.tsx [180:203]


  handleNavigation(event: Event, navigateLeft?: boolean) {
    if (
      (this.isEventTargetFilter(event) && this.caret && Number(this.caret?.getPosition()) > 0) ||
      !Array.isArray(this.props.selected)
    ) {
      return;
    }

    let newIndex = null;
    if (navigateLeft) {
      newIndex = this.state.tagsActiveIndex === null ? this.props.selected.length - 1 : this.state.tagsActiveIndex - 1;
    } else if (this.state.tagsActiveIndex !== null) {
      newIndex = this.state.tagsActiveIndex + 1;
    }

    if (newIndex !== null && (newIndex >= this.props.selected.length || newIndex < 0)) {
      newIndex = null;
      this.focusFilter();
    }

    this.setState({
      tagsActiveIndex: newIndex,
    });
  }