Skip to content

Commit b8a0c44

Browse files
committed
enables ctrl + enter for keypress event on browsers other than firefox
1 parent 7e71273 commit b8a0c44

File tree

4 files changed

+287
-157
lines changed

4 files changed

+287
-157
lines changed

packages/react-dom/src/events/__tests__/getEventCharCode-test.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,25 @@ describe('getEventCharCode', () => {
5050
expect(getEventCharCode(nativeEvent)).toBe(0);
5151
});
5252
});
53+
54+
describe('when charCode is 10', () => {
55+
it('returns 13', () => {
56+
var nativeEvent = new KeyboardEvent('keypress', {charCode: 10});
57+
58+
expect(getEventCharCode(nativeEvent)).toBe(13);
59+
});
60+
61+
describe('when ctrl key is pressed', () => {
62+
it('returns 13', () => {
63+
var nativeEvent = new KeyboardEvent('keypress', {
64+
charCode: 10,
65+
ctrlKey: true,
66+
});
67+
68+
expect(getEventCharCode(nativeEvent)).toBe(13);
69+
});
70+
});
71+
});
5372
});
5473
});
5574
});

packages/react-dom/src/events/getEventCharCode.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@ function getEventCharCode(nativeEvent) {
3131
charCode = keyCode;
3232
}
3333

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

0 commit comments

Comments
 (0)