jgwhite/ember-sortable

View on GitHub
addon/src/utils/keyboard.js

Summary

Maintainability
A
0 mins
Test Coverage
const ENTER_KEY = 'Enter';
const ESCAPE_KEY = 'Escape';
const SPACE_KEY = 'Space';
const ARROW_KEYS = {
  LEFT: 'ArrowLeft',
  UP: 'ArrowUp',
  RIGHT: 'ArrowRight',
  DOWN: 'ArrowDown',
};
export const ENTER_KEY_CODE = 13;
export const ESCAPE_KEY_CODE = 27;
export const SPACE_KEY_CODE = 32;
export const ARROW_KEY_CODES = {
  LEFT: 37,
  UP: 38,
  RIGHT: 39,
  DOWN: 40,
};

function createKeyTest(key, keyCode) {
  return function isKey(event) {
    return event.key === key || event.keyCode === keyCode;
  };
}

export const isEnterKey = createKeyTest(ENTER_KEY, ENTER_KEY_CODE);
export const isEscapeKey = createKeyTest(ESCAPE_KEY, ESCAPE_KEY_CODE);
export const isSpaceKey = createKeyTest(SPACE_KEY, SPACE_KEY_CODE);
export const isLeftArrowKey = createKeyTest(ARROW_KEYS.LEFT, ARROW_KEY_CODES.LEFT);
export const isUpArrowKey = createKeyTest(ARROW_KEYS.UP, ARROW_KEY_CODES.UP);
export const isRightArrowKey = createKeyTest(ARROW_KEYS.RIGHT, ARROW_KEY_CODES.RIGHT);
export const isDownArrowKey = createKeyTest(ARROW_KEYS.DOWN, ARROW_KEY_CODES.DOWN);