[General] Move the end flag to the event passed to onDeactivate and onFinalize#3887
[General] Move the end flag to the event passed to onDeactivate and onFinalize#3887j-piasecki wants to merge 5 commits intomainfrom
onDeactivate and onFinalize#3887Conversation
m-bert
left a comment
There was a problem hiding this comment.
Been a while, sorry for that!
I like the idea, though I think we stray from the "all callbacks use the same event". But on the other hand, we already did that so it should be fine.
Anyway, if you'd still like this change, can you merge main? 😅
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
This PR updates Gesture Handler’s end-callback API to carry the end-state flag on the event (as canceled) and includes a broad set of related refactors across the library, examples, native code, tooling, and documentation.
Changes:
- Updates several callback/event typings and example usages to align with the “canceled in event” direction, plus related gesture API re-shaping.
- Refactors native (iOS/Android) handler lifecycle/registry behavior and removes legacy wrapper components/codegen artifacts.
- Modernizes build/tooling/docs site (Jest preset, packaging outputs, Docusaurus upgrades, redirects, doc/theme changes).
Reviewed changes
Copilot reviewed 13 out of 13 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/react-native-gesture-handler/src/handlers/NativeViewGestureHandler.ts | Type tweak for exact optional props compatibility. |
| packages/react-native-gesture-handler/src/handlers/GestureHandlerEventPayload.ts | Event payload optional field typing adjustment. |
| packages/react-native-gesture-handler/src/findNodeHandle.web.ts | Avoids ambiguous traversal for display: contents wrappers with multiple children. |
| packages/react-native-gesture-handler/src/components/touchables/TouchableHighlight.tsx | Optional style fields typing adjustment. |
| packages/react-native-gesture-handler/src/components/touchables/ExtraButtonProps.ts | Optional props typed with explicit undefined. |
| packages/react-native-gesture-handler/src/components/ReanimatedSwipeable/ReanimatedSwipeableProps.ts | Renames/reshapes gesture-relation props in Swipeable API. |
| packages/react-native-gesture-handler/src/components/ReanimatedSwipeable/ReanimatedSwipeable.tsx | Updates event types and prop plumbing; style helper change. |
| packages/react-native-gesture-handler/src/components/ReanimatedDrawerLayout.tsx | Updates event types, props, and style helper usage. |
| packages/react-native-gesture-handler/src/components/Pressable/utils.ts | Converts imports to type-only; expands accepted event unions. |
| packages/react-native-gesture-handler/src/components/Pressable/stateDefinitions.ts | Adds Android accessibility-specific state config; renames native event constant. |
| packages/react-native-gesture-handler/src/components/Pressable/PressableProps.tsx | Clarifies docs/comments and adjusts optional typing. |
| packages/react-native-gesture-handler/src/components/Pressable/Pressable.tsx | Introduces LegacyPressable default export and screen-reader-aware behavior. |
| packages/react-native-gesture-handler/src/tests/RelationsTraversal.test.tsx | Simplifies gesture generic typing via alias. |
| packages/react-native-gesture-handler/src/tests/Errors.test.tsx | Adds react-native-worklets mock for test environment. |
| packages/react-native-gesture-handler/shared/shadowNodes/react/renderer/components/rngesturehandler_codegen/RNGestureHandlerDetectorShadowNode.h | Adds child-management overrides and unflatten helper. |
| packages/react-native-gesture-handler/shared/shadowNodes/react/renderer/components/rngesturehandler_codegen/RNGestureHandlerButtonWrapperState.h | Removes generated wrapper state header. |
| packages/react-native-gesture-handler/shared/shadowNodes/react/renderer/components/rngesturehandler_codegen/RNGestureHandlerButtonWrapperShadowNode.h | Removes generated wrapper shadow node header. |
| packages/react-native-gesture-handler/shared/shadowNodes/react/renderer/components/rngesturehandler_codegen/RNGestureHandlerButtonWrapperComponentDescriptor.h | Removes generated wrapper component descriptor header. |
| packages/react-native-gesture-handler/shared/shadowNodes/react/renderer/components/rngesturehandler_codegen/ComponentDescriptors.h | Drops wrapper descriptor include. |
| packages/react-native-gesture-handler/react-native.config.js | Removes wrapper descriptor from Android codegen descriptors list. |
| packages/react-native-gesture-handler/package.json | Switches main to module build; bumps RN/Reanimated; modifies build targets and native component provider list. |
| packages/react-native-gesture-handler/jestSetup.js | Removes commonjs mocks; adds touchables mocks for src and module builds. |
| packages/react-native-gesture-handler/jest.config.js | Switches preset to @react-native/jest-preset and normalizes config style. |
| packages/react-native-gesture-handler/jest-utils/package.json | Points jest-utils main to module build. |
| packages/react-native-gesture-handler/compatibility.json | Adds beta-specific compatibility ranges. |
| packages/react-native-gesture-handler/babel.config.js | Targets current node for tests/build tooling. |
| packages/react-native-gesture-handler/apple/RNManualActivationRecognizer.m | Makes handler ref weak to avoid retain cycle. |
| packages/react-native-gesture-handler/apple/RNGestureHandlerRegistry.m | Adds synchronization and safer detach/drop flows. |
| packages/react-native-gesture-handler/apple/RNGestureHandlerRegistry.h | Updates detach signature; exposes handlers dictionary. |
| packages/react-native-gesture-handler/apple/RNGestureHandlerModule.mm | Adjusts flush scheduling and manual state-change handling; guards invalid activation. |
| packages/react-native-gesture-handler/apple/RNGestureHandlerManager.h | Adds reattachHandlersIfNeeded declaration. |
| packages/react-native-gesture-handler/apple/RNGestureHandlerEvents.mm | Adds numberOfPointers to pointer-inside extra data. |
| packages/react-native-gesture-handler/apple/RNGestureHandlerEvents.h | Updates pointer-inside API signature. |
| packages/react-native-gesture-handler/apple/RNGestureHandlerButtonWrapper.mm | Removes wrapper Fabric component view implementation. |
| packages/react-native-gesture-handler/apple/RNGestureHandlerButtonWrapper.h | Removes wrapper header. |
| packages/react-native-gesture-handler/apple/RNGestureHandlerButtonManager.mm | Removes legacy button manager (likely new-arch migration). |
| packages/react-native-gesture-handler/apple/RNGestureHandlerButtonManager.h | Removes legacy button manager header. |
| packages/react-native-gesture-handler/apple/RNGestureHandlerButton.h | Extends button props and adds animation/underlay APIs. |
| packages/react-native-gesture-handler/apple/RNGestureHandler.h | Extends handler API for manual state changes and pointer typing; exposes lastState. |
| packages/react-native-gesture-handler/apple/RNGHUIKit.h | Introduces RNGHColor typedef for iOS/macOS. |
| packages/react-native-gesture-handler/apple/Handlers/RNTapHandler.m | Switches selector to handleGesture: and ensures cancel triggers action; pointer-type API rename. |
| packages/react-native-gesture-handler/apple/Handlers/RNRotationHandler.m | Switches selector, adds manual state-change plumbing, pointer-type API rename. |
| packages/react-native-gesture-handler/apple/Handlers/RNPinchHandler.m | Switches selector, adds manual state-change plumbing, pointer-type API rename. |
| packages/react-native-gesture-handler/apple/Handlers/RNPanHandler.m | Switches selector usage; pointer-type API rename. |
| packages/react-native-gesture-handler/apple/Handlers/RNManualHandler.m | Switches selector usage; pointer-type API rename. |
| packages/react-native-gesture-handler/apple/Handlers/RNLongPressHandler.m | Switches selector and adds manual state-change overload; pointer-type API rename. |
| packages/react-native-gesture-handler/apple/Handlers/RNForceTouchHandler.m | Switches selector usage; pointer-type API rename. |
| packages/react-native-gesture-handler/apple/Handlers/RNFlingHandler.m | Switches selector usage; NS handler path simplified. |
| packages/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRegistry.kt | Detach now checks host detector before detaching. |
| packages/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt | Prevents activation before BEGAN/touches; adjusts state transition logic. |
| packages/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.kt | Ensures blocking relations are dropped/reset as well. |
| packages/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerDetectorViewManager.kt | Drops view by detaching handlers explicitly. |
| packages/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonWrapperViewManager.kt | Removes wrapper view manager. |
| packages/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/RotationGestureHandler.kt | Ensures end vs fail follows active state outcomes. |
| packages/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/NativeViewGestureHandler.kt | Moves begin() gating earlier for clearer control flow. |
| packages/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerOrchestrator.kt | Adds detector-view awareness and wrapper host checks when delivering events. |
| packages/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandler.kt | Improves coordinate mapping for detector children and MOVE pointer tracking. |
| packages/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/RNGestureHandlerPackage.kt | Removes wrapper manager registration. |
| packages/react-native-gesture-handler/ReanimatedSwipeable/package.json | Points entry to module build. |
| packages/react-native-gesture-handler/ReanimatedDrawerLayout/package.json | Points entry to module build. |
| packages/docs-gesture-handler/versioned_docs/version-2.x/under-the-hood/state.md | Grammar fixes. |
| packages/docs-gesture-handler/versioned_docs/version-2.x/under-the-hood/how-does-it-work.md | Grammar fixes; clarifies usage. |
| packages/docs-gesture-handler/versioned_docs/version-2.x/guides/upgrading-to-2.md | Grammar fixes; clarifies callback description. |
| packages/docs-gesture-handler/versioned_docs/version-2.x/guides/troubleshooting.md | Grammar and punctuation fixes. |
| packages/docs-gesture-handler/versioned_docs/version-2.x/guides/testing.md | Grammar fixes. |
| packages/docs-gesture-handler/versioned_docs/version-2.x/guides/swipe-and-scroll.md | Copy edits for clarity. |
| packages/docs-gesture-handler/versioned_docs/version-2.x/guides/quickstart/index.md | Copy edits for clarity. |
| packages/docs-gesture-handler/versioned_docs/version-2.x/guides/manual-gestures/index.md | Copy edits for clarity. |
| packages/docs-gesture-handler/versioned_docs/version-2.x/gestures/touch-events.md | Copy edits for clarity. |
| packages/docs-gesture-handler/versioned_docs/version-2.x/gestures/state-manager.md | Copy edits for clarity. |
| packages/docs-gesture-handler/versioned_docs/version-2.x/gestures/pinch-gesture.md | Fixes incorrect “pan” references and improves punctuation. |
| packages/docs-gesture-handler/versioned_docs/version-2.x/gestures/gesture-detector.md | Copy edits; fixes typo “becuse”. |
| packages/docs-gesture-handler/versioned_docs/version-2.x/gestures/force-touch-gesture.md | Copy edits and accessibility wording. |
| packages/docs-gesture-handler/versioned_docs/version-2.x/gestures/fling-gesture.md | Copy edits for correctness. |
| packages/docs-gesture-handler/versioned_docs/version-2.x/gestures/_shared/base-gesture-event-data.md | Improves list wording. |
| packages/docs-gesture-handler/versioned_docs/version-2.x/gestures/_shared/base-gesture-config.md | Grammar fixes and clarifications. |
| packages/docs-gesture-handler/versioned_docs/version-2.x/gestures/_shared/base-gesture-callbacks.md | Copy edits for correctness. |
| packages/docs-gesture-handler/versioned_docs/version-2.x/gesture-handlers/pinch-gh.md | Aligns copy with pinch terminology. |
| packages/docs-gesture-handler/versioned_docs/version-2.x/gesture-handlers/interactions.md | Copy edits for correctness. |
| packages/docs-gesture-handler/versioned_docs/version-2.x/gesture-handlers/force-gh.md | Fixes grammar and punctuation. |
| packages/docs-gesture-handler/versioned_docs/version-2.x/gesture-handlers/fling-gh.md | Copy edits for correctness. |
| packages/docs-gesture-handler/versioned_docs/version-2.x/fundamentals/states-events.mdx | Fixes grammar and “send/sent”. |
| packages/docs-gesture-handler/versioned_docs/version-2.x/fundamentals/introduction.md | Copy edits for clarity. |
| packages/docs-gesture-handler/versioned_docs/version-2.x/fundamentals/gesture-composition.md | Copy edits and punctuation. |
| packages/docs-gesture-handler/versioned_docs/version-2.x/components/touchables.md | Removes duplicated sentence; copy edits. |
| packages/docs-gesture-handler/versioned_docs/version-2.x/components/reanimated_swipeable.md | Fixes “panable/pannable” and grammar. |
| packages/docs-gesture-handler/versioned_docs/version-2.x/components/buttons.mdx | Fixes grammar and phrasing. |
| packages/docs-gesture-handler/versioned_docs/version-1.x/troubleshooting.md | Copy edits and grammar fixes. |
| packages/docs-gesture-handler/versioned_docs/version-1.x/state.md | Grammar fixes. |
| packages/docs-gesture-handler/versioned_docs/version-1.x/interactions.md | Copy edits for correctness. |
| packages/docs-gesture-handler/versioned_docs/version-1.x/getting-started.md | Adds missing punctuation. |
| packages/docs-gesture-handler/versioned_docs/version-1.x/example.md | Fixes “consist/consists”. |
| packages/docs-gesture-handler/versioned_docs/version-1.x/credits.md | Adds missing period. |
| packages/docs-gesture-handler/versioned_docs/version-1.x/contributing.md | Grammar fixes and pluralization. |
| packages/docs-gesture-handler/versioned_docs/version-1.x/api/gesture-handlers/pinch-gh.md | Copy edits and pinch terminology fixes. |
| packages/docs-gesture-handler/versioned_docs/version-1.x/api/gesture-handlers/force-gh.md | Copy edits and punctuation. |
| packages/docs-gesture-handler/versioned_docs/version-1.x/api/gesture-handlers/fling-gh.md | Copy edits for correctness. |
| packages/docs-gesture-handler/versioned_docs/version-1.x/api/gesture-handlers/common-gh.md | Copy edits for correctness. |
| packages/docs-gesture-handler/versioned_docs/version-1.x/api/components/touchables.md | Removes duplicated sentence; copy edits. |
| packages/docs-gesture-handler/versioned_docs/version-1.x/api/components/swipeable.md | Fixes “pannable” and grammar. |
| packages/docs-gesture-handler/versioned_docs/version-1.x/api/components/drawer-layout.mdx | Copy edits for correctness. |
| packages/docs-gesture-handler/versioned_docs/version-1.x/api/components/buttons.mdx | Copy edits and punctuation. |
| packages/docs-gesture-handler/versioned_docs/version-1.x/about-handlers.md | “Javascript/JavaScript” and grammar consistency. |
| packages/docs-gesture-handler/src/theme/TOCItems/Tree.js | Removes custom theme passthrough file. |
| packages/docs-gesture-handler/src/theme/TOCCollapsible/index.js | Removes custom theme passthrough file. |
| packages/docs-gesture-handler/src/theme/SearchPage/index.js | Removes custom theme passthrough file. |
| packages/docs-gesture-handler/src/theme/PaginatorNavLink/index.js | Removes custom theme passthrough file. |
| packages/docs-gesture-handler/src/theme/Navbar/index.js | Adds promo rotator and landing-page logic. |
| packages/docs-gesture-handler/src/theme/MDXComponents/styles.module.css | Removes custom details styling CSS. |
| packages/docs-gesture-handler/src/theme/MDXComponents/DetailsStyling.tsx | Removes custom details implementation. |
| packages/docs-gesture-handler/src/theme/MDXComponents/Details.js | Removes MDX details wrapper component. |
| packages/docs-gesture-handler/src/theme/MDXComponents.js | Adds Badges component mapping. |
| packages/docs-gesture-handler/src/theme/Footer/index.js | Removes custom theme passthrough file. |
| packages/docs-gesture-handler/src/theme/DocSidebarItems/index.js | Removes custom theme passthrough file. |
| packages/docs-gesture-handler/src/theme/DocSidebarItem/index.js | Removes custom theme passthrough file. |
| packages/docs-gesture-handler/src/theme/DocItem/TOC/Mobile/index.js | Removes custom theme passthrough file. |
| packages/docs-gesture-handler/src/theme/DocItem/Metadata/index.js | Removes custom theme passthrough file. |
| packages/docs-gesture-handler/src/theme/DocCard/index.js | Removes custom theme passthrough file. |
| packages/docs-gesture-handler/src/theme/Admonition/index.js | Removes custom theme passthrough file. |
| packages/docs-gesture-handler/src/examples/CallbacksFlowCharts/GestureEventChart.jsx | Adjusts example flow edges. |
| packages/docs-gesture-handler/src/examples/CallbacksFlowCharts/FlowChart.jsx | Removes unused useLayoutEffect import. |
| packages/docs-gesture-handler/src/css/colors.css | Adds CSS vars for markdown copy button and badges. |
| packages/docs-gesture-handler/src/components/TopPromoRotator/styles.module.css | Adds styles for top promo banner rotator. |
| packages/docs-gesture-handler/src/components/Hero/StartScreen/index.tsx | Updates “Get started” link target. |
| packages/docs-gesture-handler/src/components/CollapsibleCode/index.tsx | Allows default collapsed state via prop; renames state var. |
| packages/docs-gesture-handler/redirects.json | Adds client redirect map for moved docs routes. |
| packages/docs-gesture-handler/package.json | Upgrades Docusaurus and React; adds redirects and other deps/resolutions. |
| packages/docs-gesture-handler/docusaurus.config.js | Updates edit URL, redirects plugin, GTM, presets, webpack rules. |
| packages/docs-gesture-handler/docs/legacy-gestures/touch-events.md | Moves to “legacy” section and adds old-API warning include. |
| packages/docs-gesture-handler/docs/legacy-gestures/state-manager.md | Adds legacy state-manager page. |
| packages/docs-gesture-handler/docs/legacy-gestures/manual-gesture.md | Adds legacy manual gesture page. |
| packages/docs-gesture-handler/docs/legacy-gestures/force-touch-gesture.md | Adds legacy force touch gesture page. |
| packages/docs-gesture-handler/docs/legacy-gestures/composed-gestures.md | Adds legacy composed gestures page. |
| packages/docs-gesture-handler/docs/legacy-gestures/_shared/v2-info.md | Adds warning banner for v2 builder API pages. |
| packages/docs-gesture-handler/docs/legacy-gestures/_shared/gesture-detector-functional1.md | Adds example snippet include for legacy docs. |
| packages/docs-gesture-handler/docs/legacy-gestures/_shared/base-gesture-event-data.md | Adds legacy shared event data content. |
| packages/docs-gesture-handler/docs/legacy-gestures/_shared/base-gesture-callbacks.md | Adds legacy shared callbacks content. |
| packages/docs-gesture-handler/docs/legacy-gestures/_shared/base-continuous-gesture-config.md | Adds legacy continuous-config content. |
| packages/docs-gesture-handler/docs/legacy-gestures/_shared/base-continuous-gesture-callbacks.md | Adds legacy continuous-callbacks content. |
| packages/docs-gesture-handler/docs/legacy-gestures/category.json | Adds generated index category for GH2 docs. |
| packages/docs-gesture-handler/docs/guides/swipe-and-scroll.md | Copy edits for clarity. |
| packages/docs-gesture-handler/docs/guides/quickstart/index.md | Adds target="_blank" to external link. |
| packages/docs-gesture-handler/docs/gestures/use-hover-gesture.mdx | Migrates some includes to MDX and adds richer examples/badges. |
| packages/docs-gesture-handler/docs/gestures/_shared/mouse-button.mdx | Adds mouse button config doc block. |
| packages/docs-gesture-handler/docs/gestures/_shared/base-gesture-event-data.mdx | Wraps type defs in collapsible code component. |
| packages/docs-gesture-handler/docs/gestures/_shared/base-continuous-gesture-config.md | Fixes links and clarifies wording. |
| packages/docs-gesture-handler/docs/gestures/_examples/RotationExample.tsx | Adds rotation example for docs. |
| packages/docs-gesture-handler/docs/gestures/_examples/LongPressExample.tsx | Adds long press example for docs. |
| packages/docs-gesture-handler/docs/fundamentals/root-view.mdx | Adds root view fundamentals page. |
| packages/docs-gesture-handler/docs/fundamentals/reanimated-interactions.mdx | Rewords and reorders content; link fixes. |
| packages/docs-gesture-handler/docs/fundamentals/animated-interactions.mdx | Rewords and links onUpdate and native driver docs. |
| packages/docs-gesture-handler/docs/fundamentals/_examples/props/SimultaneousWith.tsx | Adds simultaneity example for docs. |
| packages/docs-gesture-handler/docs/fundamentals/_examples/props/RequireToFail.tsx | Adds require-to-fail example for docs. |
| packages/docs-gesture-handler/docs/fundamentals/_examples/props/Block.tsx | Adds block relation example for docs. |
| packages/docs-gesture-handler/docs/fundamentals/_examples/hooks/Simultaneous.tsx | Adds simultaneous composed gesture hook example. |
| packages/docs-gesture-handler/docs/fundamentals/_examples/hooks/Exclusive.tsx | Adds exclusive composed gesture hook example. |
| packages/docs-gesture-handler/docs/fundamentals/_examples/hooks/Competing.tsx | Adds competing composed gesture hook example. |
| packages/docs-gesture-handler/docs/components/touchables.md | Renames to legacy touchables page and updates warning/link. |
| package.json | Removes scripts test runner; bumps yarn package manager version. |
| apps/macos-example/tsconfig.json | Adds Pods exclusion. |
| apps/macos-example/package.json | Updates React/RN macOS versions and deps; raises Node engine. |
| apps/macos-example/metro.config.js | Updates exclusionList import path and blacklists workspace node_modules. |
| apps/macos-example/macos/Podfile | Enables new arch/fabric and updates minimum macOS target. |
| apps/macos-example/macos/MacOSExample-macOS/Info.plist | Adds new architecture flag. |
| apps/macos-example/macos/MacOSExample-macOS/AppDelegate.mm | Adds dependency provider for new arch. |
| apps/macos-example/Gemfile | Adds Ruby 3.4 stdlib gems. |
| apps/expo-example/package.json | Removes slider dep; bumps reanimated/worklets. |
| apps/expo-example/metro.config.js | Blacklist generation updated to include common-app root. |
| apps/common-app/src/new_api/tests/twoFingerPan/index.tsx | Adds two-finger pan test screen. |
| apps/common-app/src/new_api/tests/reattaching/index.tsx | Adds reattaching test screen for gesture swapping. |
| apps/common-app/src/new_api/tests/pressable/testingBase.tsx | Adds RN vs RNGH pressable comparison harness. |
| apps/common-app/src/new_api/tests/pressable/index.tsx | Adds pressable test suite screen. |
| apps/common-app/src/new_api/tests/pressable/hoverDelay.tsx | Adds hover delay example for pressable. |
| apps/common-app/src/new_api/tests/pressable/hitSlop.tsx | Adds hitSlop/retention example for pressable. |
| apps/common-app/src/new_api/tests/pressable/functionalStyles.tsx | Adds functional style example for pressable. |
| apps/common-app/src/new_api/tests/pressable/delayedPress.tsx | Adds delay press/long press test scenario. |
| apps/common-app/src/new_api/tests/pressable/androidRipple.tsx | Adds Android ripple example. |
| apps/common-app/src/new_api/showcase/timer/index.tsx | Adds long-press timer showcase. |
| apps/common-app/src/new_api/showcase/bottom_sheet/index.tsx | Updates pan event types and style helper. |
| apps/common-app/src/new_api/hover_mouse/mouse_buttons/index.tsx | Disables reanimated in tests to run callbacks on JS thread. |
| apps/common-app/src/new_api/components/switchAndInput/index.tsx | Updates finalize callback to read e.canceled. |
| apps/common-app/src/new_api/components/buttons/index.tsx | Fixes feedback message label on press. |
| apps/common-app/src/new_api/complicated/velocity_test/index.tsx | Moves logic to onDeactivate and cleans up onFinalize. |
| apps/common-app/src/legacy/v2_api/pressable/index.tsx | Switches to LegacyPressable. |
| apps/common-app/src/legacy/v2_api/manualGestures/index.tsx | Switches to SharedValue type imports. |
| apps/common-app/src/legacy/v2_api/drag_n_drop/Draggable.tsx | Switches to SharedValue type imports. |
| apps/common-app/src/legacy/v2_api/chat_heads/index.tsx | Switches to SharedValue type imports. |
| apps/common-app/src/legacy/v2_api/calculator/index.tsx | Switches to SharedValue type imports. |
| apps/common-app/src/legacy/v2_api/bottom_sheet/index.tsx | Style helper change to absoluteFill. |
| apps/common-app/src/legacy/showcase/bottomSheet/index.tsx | Style helper change to absoluteFill. |
| apps/common-app/src/legacy/release_tests/nestedText/index.tsx | Switches to LegacyText. |
| apps/common-app/src/legacy/release_tests/nestedPressables/index.tsx | Renames imports and uses legacy pressable from RNGH and RN pressable separately. |
| apps/common-app/src/legacy/release_tests/gesturizedPressable/testingBase.tsx | Renames pressable labels and clarifies RN vs RNGH. |
| apps/common-app/src/legacy/release_tests/gesturizedPressable/delayedPressExample.tsx | Removes unused spring config fields. |
| apps/common-app/src/legacy/release_tests/combo/index.tsx | Removes slider wrapper usage and related styles/imports. |
| apps/common-app/src/legacy/recipes/scaleAndRotate/index.tsx | Style helper change to absoluteFill. |
| apps/common-app/src/legacy/basic/pagerAndDrawer/index.android.tsx | Renames wrapper helper to legacy_createNativeWrapper; style helper change. |
| apps/common-app/src/common_assets/AnimatedCameraView/AnimatedCameraView.tsx | Updates animated ref and shared value typings. |
| apps/common-app/src/ListWithHeader/ListWithHeader.tsx | Fixes ref typing and avoids mutating props object; uses destructured props. |
| apps/common-app/package.json | Bumps reanimated and adds worklets; removes slider devDep. |
| apps/basic-example/package.json | Bumps RN/tooling; switches Jest preset; updates Node engine requirement. |
| apps/basic-example/metro.config.js | Stops blacklisting reanimated; updates exclusionList import formatting. |
| apps/basic-example/jest.config.js | Switches preset to @react-native/jest-preset. |
| apps/basic-example/ios/BasicExample/Info.plist | Adds iPad orientations. |
| apps/basic-example/ios/BasicExample.xcodeproj/project.pbxproj | Updates build settings and targeted devices; adds legacy-arch removal flags. |
| apps/basic-example/android/gradlew.bat | Removes CLASSPATH wiring from wrapper invocation. |
| apps/basic-example/android/gradlew | Removes CLASSPATH wiring from wrapper invocation. |
| apps/basic-example/android/gradle/wrapper/gradle-wrapper.properties | Updates Gradle distribution URL. |
| apps/basic-example/Gemfile | Adds nkf gem dependency. |
| README.md | Adds GH3 requirements info and compatibility link. |
| .yarnrc.yml | Updates yarnPath to newer Yarn release. |
| .github/workflows/run-jest-tests.yml | Removes scripts Jest step; keeps package tests only. |
| .github/workflows/publish-release.yml | Switches to scheduled nightly publishing and a shared publish action; adds GTM. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
packages/docs-gesture-handler/docs/gestures/_examples/RotationExample.tsx
Show resolved
Hide resolved
packages/docs-gesture-handler/docs/gestures/_examples/LongPressExample.tsx
Show resolved
Hide resolved
packages/react-native-gesture-handler/src/components/Pressable/Pressable.tsx
Show resolved
Hide resolved
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 16 out of 16 changed files in this pull request and generated 2 comments.
Comments suppressed due to low confidence (1)
packages/react-native-gesture-handler/src/v3/types/index.ts:32
GestureEndEventCallbackis introduced inConfigTypes.tsand used byGestureCallbacks.onDeactivate/onFinalize, but it is not re-exported from this types barrel. This makes it harder for consumers (and internal code) to reference the new callback type without deep imports, and it replaces the previously exportedGestureEventCallbackWithDidSucceedwithout providing an equivalent export. Re-exportGestureEndEventCallbackfrom here alongsideGestureEventCallback/GestureTouchEventCallback.
export type {
GestureCallbacks,
GestureEventCallback,
GestureTouchEventCallback,
GestureRelations,
InternalConfigProps,
CommonGestureConfig,
ComposedGestureConfig,
} from './ConfigTypes';
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Description
Up to this point, the API mirrored V2, where
successwas being passed as an additional parameter to the end callbacks.This PR changes it, so the flag is being passed as part of the event to the callbacks. I also think that the approach to working with gestures is to assume that they will succeed, so I changed the flag to
canceled.This also seems to be the easiest one to explain in the docs - "the gesture was canceled due to failure to meet activation criteria, the activation of another gesture, by the OS".
Test plan
Verify that
calceledexists in events passed toonDeactivateandonFinalize.