function handleKeyDown()

in src/components/UncontrolledTabs.js [262:321]


  function handleKeyDown(e) {
    const { direction, disableUpDownKeys } = props;
    if (isTabFromContainer(e.target)) {
      let { selectedIndex: index } = props;
      let preventDefault = false;
      let useSelectedIndex = false;

      if (e.keyCode === 32 /* space */ || e.keyCode === 13 /* enter */) {
        preventDefault = true;
        useSelectedIndex = false;
        handleClick(e);
      }

      if (
        e.keyCode === 37 /* arrow left */ ||
        (!disableUpDownKeys && e.keyCode === 38) /* arrow up */
      ) {
        // Select next tab to the left, validate if up arrow is not disabled
        if (direction === 'rtl') {
          index = getNextTab(index);
        } else {
          index = getPrevTab(index);
        }
        preventDefault = true;
        useSelectedIndex = true;
      } else if (
        e.keyCode === 39 /* arrow right */ ||
        (!disableUpDownKeys && e.keyCode === 40) /* arrow down */
      ) {
        // Select next tab to the right, validate if down arrow is not disabled
        if (direction === 'rtl') {
          index = getPrevTab(index);
        } else {
          index = getNextTab(index);
        }
        preventDefault = true;
        useSelectedIndex = true;
      } else if (e.keyCode === 35) {
        // Select last tab (End key)
        index = getLastTab();
        preventDefault = true;
        useSelectedIndex = true;
      } else if (e.keyCode === 36) {
        // Select first tab (Home key)
        index = getFirstTab();
        preventDefault = true;
        useSelectedIndex = true;
      }

      // This prevents scrollbars from moving around
      if (preventDefault) {
        e.preventDefault();
      }

      // Only use the selected index in the state if we're not using the tabbed index
      if (useSelectedIndex) {
        setSelected(index, e);
      }
    }
  }