Important changes
- [iOS] Add Swift Package Manager build support, with CocoaPods still supported by @kacperzolkiewski in #4510
- Add
immediatePressOuttoTouchableandPressableon Android and iOS. A quick tap the platform deferred no longer callsonPressOutright afteronPressIn, so the pressed feedback stays visible; set the prop totrueto getonPressOutas soon as the press ends by @m-bert in #4568, #4570, #4572 and #4594 - [Android] Dispatch
onPressInwhen the native press starts by @m-bert in #4575
Improvements
- [Android] Align the alpha traversal gate with iOS by @m-bert in #4513
- Scan mount relations directly instead of rebuilding tag arrays by @teoarjun in #4546
- [Web] Align the Tap
maxDelaydefault with native (200 ms) by @Shexter in #4557 - [Web] Make
ScrollViewan intercepting detector by @m-bert in #4528
Bug fixes
- [Android] Cancel detector gestures when a native view above them takes over the touch by @JacquesLeupin in #4582
- [Android] Fix NPE when a touch cancel callback finishes the handler mid-transition by @m-bert in #4584
- Make the detector frame cover transformed children by @m-bert in #4532
- Allow
GestureStateManager.activatefrom the firstonTouchesDownon Android, iOS and Web by @m-bert in #4534, #4535 and #4537 - [Web] Introduce a key pointer in
KeyboardEventManagerby @m-bert in #4519 - [iOS] Fix
manualActivationbeing ignored after a config update mid-gesture by @m-bert in #4520 - [iOS] Skip hidden and transparent buttons in hit testing by @m-bert in #4512
- [Web] Keep detector-owned DOM props across a full config replace by @m-bert in #4522
- Follow the sign of a
SharedValuepan offset on every update by @m-bert in #4533 - [Web] Detect composed gesture changes in the detector by @m-bert in #4526
- [Android] Prevent
Touchablepresses when stoppingScrollViewflings by @janicduplessis in #4548 - [Android] Don't change the state of handlers that haven't received any touches by @m-bert in #4549
- [Web] Fix view-relative coordinates of trackpad pan events by @giaBaoJS in #4531
- [Web] Map event coordinates through the view's full transform by @m-bert in #4566
- Link late-mounted gesture objects and skip mount reactions without external relations by @m-bert in #4562
- [Android] Fix crash when a
Textinside a detector gets an inlineViewby @gigobyte in #4588 - [Android] Reset the native DOWN flag for unmanaged buttons by @m-bert in #4590
- [Android] Respect
pointerEventson gesture root views by @huytdps13400 in #4565 - Expose the animatable ref from the legacy
GestureDetectorWrapby @mikael-karlsson-weapp in #4554 - [Android] Clear the pending
HOVER_EXITfinish when the hover handler is reset by @m-bert in #4593 - [Android] Stop nested scroll when the root starts intercepting by @m-bert in #4592
- Re-send
SharedValueconfig values from the UI thread after binding by @m-bert in #4538 - [Android] Cancel gestures on native
ACTION_CANCELby @m-bert in #4589 - [iOS] Keep
NativeViewGestureHandlerflags across a partial config update by @m-bert in #4527 - [Android] Check the overflow ancestor pass against the detector child's bounds by @m-bert in #4605
Miscellaneous
- Bump to React Native 0.88 by @m-bert in #4517
- Expose the module id through a sync TurboModule method instead of a JSI global by @m-bert in #4525
- [Android] Register all component descriptors in
react-native.config.jsby @m-bert in #4521 - Hide non-serializable gesture fields from enumeration by @m-bert in #4556
- [Web] Register the wheel listener as passive and only for Pan by @m-bert in #4583
- Report a
VirtualGestureDetectorchild that swallows therefby @m-bert in #4596 - Keep the
pointerEventsts-expect-error in emitted spec declarations by @m-bert in #4601 - Stop
react-native-pager-viewfrom entering the web bundle of the example app by @m-bert in #4604 - [E2E] Update flows to await the console to hide by @j-piasecki in #4524
- [CI] Add the Argent Cloud issue reproduction workflow by @j-piasecki in #4544 and #4569
- [CI] Retry failed e2e flows before failing the job by @j-piasecki in #4550
- [CI] Read the Node version from
.nvmrcby @j-piasecki in #4542 - [GitHub] Remove
Architecturefrom the issue template by @j-piasecki in #4543 - [Docs] Update compatibility table (3.3.0) by @m-bert in #4511
- [Docs] Add
immediatePressOutdocs by @m-bert in #4573 - [Docs] Fix broken heading anchors by @SatvikMishra08 in #4586
- [Docs] Add migration example for relations with wrapped components by @m-bert in #4595
- Dependency bumps by @dependabot in #4552, #4558, #4559, #4560, #4576, #4577, #4578, #4579 and #4580
New contributors
- @teoarjun made their first contribution in #4546
- @Shexter made their first contribution in #4557
- @SatvikMishra08 made their first contribution in #4586
- @JacquesLeupin made their first contribution in #4582
- @gigobyte made their first contribution in #4588
- @huytdps13400 made their first contribution in #4565
- @mikael-karlsson-weapp made their first contribution in #4554
Full changelog: v3.3.0...v3.4.0