Skip to content

Commit 5368f73

Browse files
authored
[Flare] Fix keyboard keyup regression (#15938)
1 parent 3d0af2a commit 5368f73

2 files changed

Lines changed: 7 additions & 1 deletion

File tree

packages/react-events/src/Press.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -871,6 +871,7 @@ const PressResponder = {
871871
return;
872872
}
873873
isKeyboardEvent = true;
874+
removeRootEventTypes(context, state);
874875
}
875876

876877
// Determine whether to call preventDefault on subsequent native events.
@@ -940,7 +941,10 @@ const PressResponder = {
940941
}
941942

942943
case 'click': {
943-
removeRootEventTypes(context, state);
944+
// "keyup" occurs after "click"
945+
if (state.pointerType !== 'keyboard') {
946+
removeRootEventTypes(context, state);
947+
}
944948
if (state.shouldPreventClick) {
945949
nativeEvent.preventDefault();
946950
}

packages/react-events/src/__tests__/Press-test.internal.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -335,6 +335,8 @@ describe('Event responder: Press', () => {
335335

336336
it('is called after "keyup" event for Enter', () => {
337337
ref.current.dispatchEvent(createKeyboardEvent('keydown', {key: 'Enter'}));
338+
// click occurs before keyup
339+
ref.current.dispatchEvent(createKeyboardEvent('click'));
338340
ref.current.dispatchEvent(createKeyboardEvent('keyup', {key: 'Enter'}));
339341
expect(onPressEnd).toHaveBeenCalledTimes(1);
340342
expect(onPressEnd).toHaveBeenCalledWith(

0 commit comments

Comments
 (0)