All files / app/assets/javascripts/behaviors/shortcuts shortcuts_find_file.js

0% Statements 0/7
0% Branches 0/7
0% Functions 0/2
0% Lines 0/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39                                                                             
import {
  keysFor,
  PROJECT_FILES_MOVE_SELECTION_UP,
  PROJECT_FILES_MOVE_SELECTION_DOWN,
  PROJECT_FILES_OPEN_SELECTION,
  PROJECT_FILES_GO_BACK,
} from '~/behaviors/shortcuts/keybindings';
import { addStopCallback } from '~/lib/mousetrap';
import ShortcutsNavigation from './shortcuts_navigation';
 
export default class ShortcutsFindFile {
  constructor(shortcuts, projectFindFile) {
    addStopCallback((e, element, combo) => {
      if (
        element === projectFindFile.inputElement[0] &&
        (keysFor(PROJECT_FILES_MOVE_SELECTION_UP).includes(combo) ||
          keysFor(PROJECT_FILES_MOVE_SELECTION_DOWN).includes(combo) ||
          keysFor(PROJECT_FILES_GO_BACK).includes(combo) ||
          keysFor(PROJECT_FILES_OPEN_SELECTION).includes(combo))
      ) {
        // when press up/down key in textbox, cursor prevent to move to home/end
        e.preventDefault();
        return false;
      }
 
      return undefined;
    });
 
    shortcuts.addAll([
      [PROJECT_FILES_MOVE_SELECTION_UP, projectFindFile.selectRowUp],
      [PROJECT_FILES_MOVE_SELECTION_DOWN, projectFindFile.selectRowDown],
      [PROJECT_FILES_GO_BACK, projectFindFile.goToTree],
      [PROJECT_FILES_OPEN_SELECTION, projectFindFile.goToBlob],
    ]);
  }
 
  static dependencies = [ShortcutsNavigation];
}