Skip to content

Commit

Permalink
enables ctrl + enter for keypress event on browsers other than firefox
Browse files Browse the repository at this point in the history
  • Loading branch information
nstraub committed Nov 22, 2017
1 parent 7e71273 commit b8a0c44
Show file tree
Hide file tree
Showing 4 changed files with 287 additions and 157 deletions.
19 changes: 19 additions & 0 deletions packages/react-dom/src/events/__tests__/getEventCharCode-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,25 @@ describe('getEventCharCode', () => {
expect(getEventCharCode(nativeEvent)).toBe(0);
});
});

describe('when charCode is 10', () => {
it('returns 13', () => {
var nativeEvent = new KeyboardEvent('keypress', {charCode: 10});

expect(getEventCharCode(nativeEvent)).toBe(13);
});

describe('when ctrl key is pressed', () => {
it('returns 13', () => {
var nativeEvent = new KeyboardEvent('keypress', {
charCode: 10,
ctrlKey: true,
});

expect(getEventCharCode(nativeEvent)).toBe(13);
});
});
});
});
});
});
Expand Down
4 changes: 4 additions & 0 deletions packages/react-dom/src/events/getEventCharCode.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,10 @@ function getEventCharCode(nativeEvent) {
charCode = keyCode;
}

// Chrome, IE 11 and Edge report Enter as charCode 10 when ctrl is pressed.
if (charCode === 10) {
charCode = 13;
}
// Some non-printable keys are reported in `charCode`/`keyCode`, discard them.
// Must not discard the (non-)printable Enter-key.
if (charCode >= 32 || charCode === 13) {
Expand Down
Loading

0 comments on commit b8a0c44

Please sign in to comment.