react-native-gesture-handler 3.4.0

v3.​4.​0Minor Release

Important changes

  • [iOS] Add Swift Package Manager build support, with CocoaPods still supported by @kacperzolkiewski in #4510
  • Add immediatePressOut to Touchable and Pressable on Android and iOS. A quick tap the platform deferred no longer calls onPressOut right after onPressIn, so the pressed feedback stays visible; set the prop to true to get onPressOut as soon as the press ends by @m-bert in #4568, #4570, #4572 and #4594
  • [Android] Dispatch onPressIn when 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 maxDelay default with native (200 ms) by @Shexter in #4557
  • [Web] Make ScrollView an 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.activate from the first onTouchesDown on Android, iOS and Web by @m-bert in #4534, #4535 and #4537
  • [Web] Introduce a key pointer in KeyboardEventManager by @m-bert in #4519
  • [iOS] Fix manualActivation being 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 SharedValue pan offset on every update by @m-bert in #4533
  • [Web] Detect composed gesture changes in the detector by @m-bert in #4526
  • [Android] Prevent Touchable presses when stopping ScrollView flings 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 Text inside a detector gets an inline View by @gigobyte in #4588
  • [Android] Reset the native DOWN flag for unmanaged buttons by @m-bert in #4590
  • [Android] Respect pointerEvents on gesture root views by @huytdps13400 in #4565
  • Expose the animatable ref from the legacy GestureDetector Wrap by @mikael-karlsson-weapp in #4554
  • [Android] Clear the pending HOVER_EXIT finish 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 SharedValue config values from the UI thread after binding by @m-bert in #4538
  • [Android] Cancel gestures on native ACTION_CANCEL by @m-bert in #4589
  • [iOS] Keep NativeViewGestureHandler flags 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.js by @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 VirtualGestureDetector child that swallows the ref by @m-bert in #4596
  • Keep the pointerEvents ts-expect-error in emitted spec declarations by @m-bert in #4601
  • Stop react-native-pager-view from 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 .nvmrc by @j-piasecki in #4542
  • [GitHub] Remove Architecture from the issue template by @j-piasecki in #4543
  • [Docs] Update compatibility table (3.3.0) by @m-bert in #4511
  • [Docs] Add immediatePressOut docs 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

Release card
react-native-gesture-handler 3.4.0 release card