[General] Fix onBegin not being called when the native recognizer skips the BEGAN state#3932
Merged
j-piasecki merged 1 commit intonextfrom Jan 27, 2026
Merged
Conversation
m-bert
approved these changes
Jan 27, 2026
Collaborator
m-bert
left a comment
There was a problem hiding this comment.
this PR only changes the behavior for the V3 API. I'm not sure whether it should be backported to V2 as it would likely be a breaking change.
Did we have such issues before? While it seems important, I don't think we have to backport it atm.
Also, I've just noticed that this whole machine is one if ... else ... and nothing more below. We could "refactor" it at least to use early returns, maybe it would be a bit easier to read. But of course it's not the scope of this PR, so I can do it later.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
The current state machine implementation allows for
onBegincallback to be skipped if the native recognizer goes fromUNDETERMINEDdirectly toACTIVEstate (which is a valid transition in some cases).This PR updates the logic to "backfill" the
onBegincallback when receiving theUNDETERMINED -> ACTIVEtransition, before callingonActivate.Note: this PR only changes the behavior for the V3 API. I'm not sure whether it should be backported to V2 as it would likely be a breaking change.
Test plan
This scenario:
react-native-gesture-handler/packages/react-native-gesture-handler/src/components/GestureButtons.tsx
Lines 67 to 68 in 59a5311