-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
[Release] 2.33.0 Cherry-pick thread #4498
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
m-bert
wants to merge
46
commits into
v2-stable
Choose a base branch
from
@mbert/picks-2.33
base: v2-stable
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Changes from all commits
Commits
Show all changes
46 commits
Select commit
Hold shift + click to select a range
4a625df
[Android] Do not set explicit versions in `build.gradle` (#4248)
m-bert a5553ef
[Android] Fix mouse interactions (#4265)
m-bert ec6e694
[Android | Web] Disable pointer events on hidden `Swipeable` actions …
jamesacklin a2dbfd2
Remove `opacity` from `Swipeable` action panels (#4271)
m-bert c77ef2d
[Android] Fix text getting selected during gestures (#4273)
j-piasecki 5916a43
[iOS] Move `Tap` cancelation to `dispatch_after` (#4280)
m-bert d146bd8
[Android] Fix ConcurrentModificationException in GestureHandlerOrches…
kosmydel 2642f13
fix: remove UIPointerInteraction from the view when unbinding the hov…
petterikorpimaa b888946
[Android] Don't delay child pressed state in buttons (#4296)
j-piasecki 9bd5731
[macOS] Add coordinates to `Hover` events (#4304)
m-bert 4d2fc01
[iOS] Fix js responder cancelation in modals (#4306)
m-bert e0b9785
Fix Easing import in LongPress example (#4298)
haxonadora e290b95
[iOS] Fix gesture callback guarantees when view is detached mid-gestu…
m-bert a723d65
Export `PressableEvent` type (#4324)
m-bert 1ad48b8
[Web] Fix incorrectly calculated `timeDelta` (#4329)
m-bert 8515250
[Web] Fix incorrect `Tap` offset (#4330)
m-bert 58e083c
[Android] Guard update events to only be dispatched in ACTIVE state (…
j-piasecki 35a0723
Fix fatal crash `Cannot read property 'translationX' of undefined` wh…
huextrat 55a28fd
Don't dispatch orphaned touch events (#4341)
m-bert 3fc18b4
Fix `minVelocity` props behavior (#4327)
m-bert 3892be4
[iOS] Check if `enableTrackpadTwoFingerGesture` is `nil` before apply…
m-bert 4919e24
[Android] Fix basic-example `hermesc` path (#4371)
j-piasecki fc2c566
[Apple] Remove trailing semicolons from `RNGHGestureRecognizerState*`…
m-bert 362c68f
[macOS] Fix touch events never being delivered (#4390)
m-bert 4c7865c
fix: crash when mount listener fires after GestureDetector unmount (#…
kosmydel 4ed49fa
[macOS] Fix `Pan` activation criteria being ignored (#4387)
m-bert ad6e542
[macOS] Fix `manualActivation` never blocking gesture activation (#4389)
m-bert f2ab06c
[macOS] Fix `Fling` not sending touch events and begin/end states con…
m-bert 2dc6455
[Android] Fix handlers cancelled while awaiting leaking in the orches…
m-bert dcdb39e
[General] Align `pointerType` across native and JS (#4403)
j-piasecki ea76dca
feat: Adopt AGP v9 (#4263)
hurali97 cca199e
Clear pending timers on unmount in StatefulPressable (#4413)
m-bert 1494f54
Derive `Pressable` pressed state from `testOnly_pressed` (#4414)
m-bert d33e6f5
Update `Pressable` props (#4421)
m-bert 365b333
Forward `borderless` and `foreground` from `android_ripple` (#4442)
m-bert 92d422b
Keep ReanimatedSwipeable native handlers stable when event callbacks …
ngocdevv 484f7c9
Don't pass dependencies to Reanimated hooks on native (#4472)
m-bert 0d90a42
Fix ReanimatedDrawerLayout animation speed after rerender (#4470)
ngocdevv 81fb95f
Reset `numberOfPointers` in `LongPressGestureHandler` (#4479)
giaBaoJS 6494ef0
Reset `enableTrackpadTwoFingerGesture` in web `PanGestureHandler` (#4…
giaBaoJS 533ca40
[Android] Don't let an awaiting parent handler cancel the child it is…
j-piasecki 1a092b8
[Web] Reset NativeViewGestureHandler config on a full config replace …
j-piasecki 48f354b
Resolve `DrawerLayoutAndroid` lazily to avoid RN deprecation warning …
m-bert 25d36d9
Reset accumulated wheel delta in web `WheelEventManager` (#4484)
giaBaoJS ef9ade7
[Android] Stop nested scroll when a native handler's gesture ends (#4…
m-bert 3d6ca41
Chore: ref forwarding to child in wrap v2 (#4385)
tshmieldev File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
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
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
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
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
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
🔎 Supported by static analysis
🏁 Script executed:
Repository: software-mansion/react-native-gesture-handler
Length of output: 22630
🤖 get_repo_knowledge executed:
get_repo_knowledge software-mansion/react-native-gesture-handler /tmp/coderabbit-repo-knowledge/software-mansion-react-native-gesture-handler-7e5c6f9e/conventions /tmp/coderabbit-repo-knowledge/software-mansion-react-native-gesture-handler-7e5c6f9e/learningsLength of output: 4509
🏁 Script executed:
Repository: software-mansion/react-native-gesture-handler
Length of output: 9266
🏁 Script executed:
Repository: software-mansion/react-native-gesture-handler
Length of output: 11402
🌐 Web query:
React Native 0.87.1 React Gradle plugin hermesCommand resolve path hermesCommand source💡 Result:
In React Native 0.87.1, the
hermesCommandproperty within the React Gradle Plugin identifies the path to thehermescbinary, which is responsible for compiling JavaScript bundles into Hermes bytecode [1][2]. By default, the React Native Gradle Plugin automatically resolves the location ofhermescbundled within thereact-nativepackage undernode_modules/react-native/sdks/hermesc/[3][4]. The plugin uses an internal helper to determine the appropriate operating system subdirectory (%OS-BIN%), which maps towin64-bin,osx-bin, orlinux64-bin[3][5]. If your build fails to locate the binary (often occurring in complex monorepo setups or environments where dependencies are hoisted), you may need to explicitly configurehermesCommandin yourandroid/app/build.gradlefile [4][6]: react { hermesCommand = "../../node_modules/react-native/sdks/hermesc/%OS-BIN%/hermesc" } Key points regarding the resolution ofhermesCommand: 1. Automatic Resolution: The plugin performs a search starting from the project root. If you are in a monorepo, you might need to adjust the relative path to point correctly to the location wherereact-nativeis installed [4][6]. 2. Overriding: You can pointhermesCommandto a custom location if you have a specific version ofhermescyou need to use [7]. 3. Windows Consideration: When setting a manual path, ensure compatibility with Windows if necessary by checking the operating system within yourbuild.gradleand adjusting the separator or filename accordingly (e.g., using.exeon Windows) [3][4][5]. 4. Source: The underlying logic for locatinghermescis implemented in the React Native Gradle Plugin (e.g., inPathUtils.kt), which checks for existence in pre-defined paths before defaulting to the bundled version [3]. You generally do not need to customize this property unless the automatic resolution fails due to your project structure [1][2].Citations:
🌐 Web query:
site:github.com/facebook/react-native v0.87.1 hermesCommand ReactExtension hermes-compiler💡 Result:
In React Native version 0.87.1, the hermesCommand property within the ReactExtension configuration of the React Native Gradle Plugin is used to specify the path to the hermesc compiler binary [1][2][3]. Beginning with React Native 0.83, the hermesc compiler was moved out of the internal react-native package structure into its own standalone package, hermes-compiler [2]. This architectural change requires projects—particularly those using monorepo setups or hoisted dependency structures—to ensure the build system can correctly resolve the path to the hermesc binary [1][2][4]. If you encounter errors stating that the Hermes compiler location could not be determined, it typically indicates that the build process cannot find the binary at the expected default path [1][5]. You can resolve this by explicitly setting the path in your android/app/build.gradle file [1][2]. A common configuration pattern involves defining the hermesCommand property as follows: hermesCommand = "../../node_modules/hermes-compiler/hermesc/%OS-BIN%/hermesc" In this path, %OS-BIN% is a placeholder that is typically resolved automatically by the React Native Gradle plugin based on the host operating system [1][2]. For projects requiring specific adjustments, you can use more explicit path resolution or conditionally define the path based on the operating system [1][5]: if (org.gradle.internal.os.OperatingSystem.current.isWindows) { hermesCommand = "$rootDir/hermesc.cmd" // Or a specific path to the.exe } Changes in recent versions, including 0.87.x, have focused on simplifying the infrastructure for building Hermes [6][7]. Note that the Hermes compiler package itself is a dependency of React Native, so you generally do not need to install it manually unless you are troubleshooting resolution issues in specific project architectures [2]. Always ensure your project's dependency tree is correctly hoisted if using a monorepo, as this is the most common cause of resolution failures for the hermes-compiler package [1][4].
Citations:
Use the repository-root Hermes compiler path.
hermesCommandresolves../../node_modulestoapps/basic-example/node_modules, while React Native0.87.1supplieshermes-compilertransitively. If Yarn hoists it to the repository root, Gradle cannot locatehermesc. Use../../../../node_modules/hermes-compiler/hermesc/%OS-BIN%/hermesc.Validate
apps/basic-examplewithyarn androidandyarn ios.🤖 Prompt for AI Agents
Source: Coding guidelines