onKeyDown()

in static/src/javascripts/projects/common/modules/crosswords/crossword.js [123:161]


	onKeyDown(event) {
		const cell = this.state.cellInFocus;

		if (event.keyCode === keycodes.tab) {
			event.preventDefault();
			if (event.shiftKey) {
				this.focusPreviousClue();
			} else {
				this.focusNextClue();
			}
		} else if (!event.metaKey && !event.ctrlKey && !event.altKey) {
			if (
				event.keyCode === keycodes.backspace ||
				event.keyCode === keycodes.delete
			) {
				event.preventDefault();
				if (cell) {
					if (this.cellIsEmpty(cell.x, cell.y)) {
						this.focusPrevious();
					} else {
						this.setCellValue(cell.x, cell.y, '');
						this.save();
					}
				}
			} else if (event.keyCode === keycodes.left) {
				event.preventDefault();
				this.moveFocus(-1, 0);
			} else if (event.keyCode === keycodes.up) {
				event.preventDefault();
				this.moveFocus(0, -1);
			} else if (event.keyCode === keycodes.right) {
				event.preventDefault();
				this.moveFocus(1, 0);
			} else if (event.keyCode === keycodes.down) {
				event.preventDefault();
				this.moveFocus(0, 1);
			}
		}
	}