[Flare] Fix keyboard keyup regression (#15938)
Dominic Gannaway committed
Jun 20, 2019 at 17:00 UTC
5368f7316c8ae489c6a271694166158428ee4a5e
2 files changed
+7
-1
packages/react-events/src/Press.js
+5
-1
@@ -871,6 +871,7 @@ const PressResponder = {
871
return;
872
}
873
isKeyboardEvent = true;
874
+ removeRootEventTypes(context, state);
875
}
876
877
// Determine whether to call preventDefault on subsequent native events.
@@ -940,7 +941,10 @@ const PressResponder = {
941
}
942
943
case 'click': {
943
- removeRootEventTypes(context, state);
944
+ // "keyup" occurs after "click"
945
+ if (state.pointerType !== 'keyboard') {
946
+ removeRootEventTypes(context, state);
947
+ }
948
if (state.shouldPreventClick) {
949
nativeEvent.preventDefault();
950
}
packages/react-events/src/__tests__/Press-test.internal.js
+2
@@ -335,6 +335,8 @@ describe('Event responder: Press', () => {
335
336
it('is called after "keyup" event for Enter', () => {
337
ref.current.dispatchEvent(createKeyboardEvent('keydown', {key: 'Enter'}));
338
+ // click occurs before keyup
339
+ ref.current.dispatchEvent(createKeyboardEvent('click'));
340
ref.current.dispatchEvent(createKeyboardEvent('keyup', {key: 'Enter'}));
341
expect(onPressEnd).toHaveBeenCalledTimes(1);
342
expect(onPressEnd).toHaveBeenCalledWith(