react-native-gesture-handler 3.0.0 → 3.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/README.md +4 -0
  2. package/RNGestureHandler.podspec +1 -1
  3. package/android/build.gradle +6 -5
  4. package/android/gradle.properties +1 -1
  5. package/android/src/main/java/com/swmansion/gesturehandler/core/FlingGestureHandler.kt +1 -1
  6. package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandler.kt +28 -32
  7. package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerOrchestrator.kt +44 -6
  8. package/android/src/main/java/com/swmansion/gesturehandler/core/LongPressGestureHandler.kt +4 -3
  9. package/android/src/main/java/com/swmansion/gesturehandler/core/NativeViewGestureHandler.kt +0 -13
  10. package/android/src/main/java/com/swmansion/gesturehandler/core/PanGestureHandler.kt +1 -1
  11. package/android/src/main/java/com/swmansion/gesturehandler/core/TapGestureHandler.kt +1 -1
  12. package/android/src/main/java/com/swmansion/gesturehandler/react/Extensions.kt +3 -0
  13. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +30 -3
  14. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerDetectorView.kt +4 -0
  15. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.kt +8 -6
  16. package/apple/Handlers/RNNativeViewHandler.mm +4 -1
  17. package/apple/RNGestureHandlerButton.h +5 -0
  18. package/apple/RNGestureHandlerButtonComponentView.mm +38 -0
  19. package/apple/RNGestureHandlerDetector.h +0 -2
  20. package/apple/RNGestureHandlerDetector.mm +6 -6
  21. package/apple/RNGestureHandlerManager.h +5 -0
  22. package/apple/RNGestureHandlerManager.mm +14 -12
  23. package/lib/module/components/Pressable/Pressable.js +6 -2
  24. package/lib/module/components/Pressable/Pressable.js.map +1 -1
  25. package/lib/module/components/Pressable/StateMachine.js +10 -1
  26. package/lib/module/components/Pressable/StateMachine.js.map +1 -1
  27. package/lib/module/components/Pressable/stateDefinitions.js +3 -2
  28. package/lib/module/components/Pressable/stateDefinitions.js.map +1 -1
  29. package/lib/module/components/Pressable/utils.js +32 -1
  30. package/lib/module/components/Pressable/utils.js.map +1 -1
  31. package/lib/module/components/ReanimatedDrawerLayout.js +5 -4
  32. package/lib/module/components/ReanimatedDrawerLayout.js.map +1 -1
  33. package/lib/module/components/ReanimatedSwipeable/ReanimatedSwipeable.js +8 -2
  34. package/lib/module/components/ReanimatedSwipeable/ReanimatedSwipeable.js.map +1 -1
  35. package/lib/module/components/utils.js +14 -0
  36. package/lib/module/components/utils.js.map +1 -1
  37. package/lib/module/handlers/gestures/GestureDetector/utils.js +6 -6
  38. package/lib/module/handlers/gestures/GestureDetector/utils.js.map +1 -1
  39. package/lib/module/handlers/gestures/gesture.js +8 -0
  40. package/lib/module/handlers/gestures/gesture.js.map +1 -1
  41. package/lib/module/handlers/gestures/gestureComposition.js +14 -2
  42. package/lib/module/handlers/gestures/gestureComposition.js.map +1 -1
  43. package/lib/module/v3/components/GestureButtons.js +3 -0
  44. package/lib/module/v3/components/GestureButtons.js.map +1 -1
  45. package/lib/module/v3/components/Pressable.js +24 -5
  46. package/lib/module/v3/components/Pressable.js.map +1 -1
  47. package/lib/module/v3/components/Touchable/Touchable.js +3 -0
  48. package/lib/module/v3/components/Touchable/Touchable.js.map +1 -1
  49. package/lib/module/v3/hooks/utils/configUtils.js +3 -3
  50. package/lib/module/v3/hooks/utils/configUtils.js.map +1 -1
  51. package/lib/module/v3/hooks/utils/propsWhiteList.js +7 -6
  52. package/lib/module/v3/hooks/utils/propsWhiteList.js.map +1 -1
  53. package/lib/module/v3/hooks/utils/reanimatedUtils.js +8 -10
  54. package/lib/module/v3/hooks/utils/reanimatedUtils.js.map +1 -1
  55. package/lib/module/web/tools/GestureHandlerWebDelegate.js +5 -4
  56. package/lib/module/web/tools/GestureHandlerWebDelegate.js.map +1 -1
  57. package/lib/typescript/components/Pressable/Pressable.d.ts.map +1 -1
  58. package/lib/typescript/components/Pressable/StateMachine.d.ts +1 -0
  59. package/lib/typescript/components/Pressable/StateMachine.d.ts.map +1 -1
  60. package/lib/typescript/components/Pressable/stateDefinitions.d.ts.map +1 -1
  61. package/lib/typescript/components/Pressable/utils.d.ts +2 -1
  62. package/lib/typescript/components/Pressable/utils.d.ts.map +1 -1
  63. package/lib/typescript/components/ReanimatedDrawerLayout.d.ts +14 -2
  64. package/lib/typescript/components/ReanimatedDrawerLayout.d.ts.map +1 -1
  65. package/lib/typescript/components/ReanimatedSwipeable/ReanimatedSwipeable.d.ts.map +1 -1
  66. package/lib/typescript/components/utils.d.ts +11 -0
  67. package/lib/typescript/components/utils.d.ts.map +1 -1
  68. package/lib/typescript/handlers/gestures/GestureDetector/utils.d.ts +4 -4
  69. package/lib/typescript/handlers/gestures/GestureDetector/utils.d.ts.map +1 -1
  70. package/lib/typescript/handlers/gestures/gesture.d.ts +4 -0
  71. package/lib/typescript/handlers/gestures/gesture.d.ts.map +1 -1
  72. package/lib/typescript/handlers/gestures/gestureComposition.d.ts.map +1 -1
  73. package/lib/typescript/v3/components/GestureButtons.d.ts.map +1 -1
  74. package/lib/typescript/v3/components/Pressable.d.ts.map +1 -1
  75. package/lib/typescript/v3/components/Touchable/Touchable.d.ts.map +1 -1
  76. package/lib/typescript/v3/hooks/utils/configUtils.d.ts.map +1 -1
  77. package/lib/typescript/v3/hooks/utils/propsWhiteList.d.ts.map +1 -1
  78. package/lib/typescript/v3/hooks/utils/reanimatedUtils.d.ts.map +1 -1
  79. package/lib/typescript/web/tools/GestureHandlerWebDelegate.d.ts.map +1 -1
  80. package/package.json +6 -6
  81. package/scripts/gesture_handler_utils.rb +23 -17
  82. package/shared/shadowNodes/react/renderer/components/rngesturehandler_codegen/RNGestureHandlerDetectorShadowNode.cpp +19 -0
  83. package/shared/shadowNodes/react/renderer/components/rngesturehandler_codegen/RNGestureHandlerDetectorShadowNode.h +1 -0
  84. package/src/components/Pressable/Pressable.tsx +9 -1
  85. package/src/components/Pressable/StateMachine.tsx +16 -1
  86. package/src/components/Pressable/stateDefinitions.ts +3 -2
  87. package/src/components/Pressable/utils.ts +37 -0
  88. package/src/components/ReanimatedDrawerLayout.tsx +27 -8
  89. package/src/components/ReanimatedSwipeable/ReanimatedSwipeable.tsx +8 -2
  90. package/src/components/utils.ts +22 -0
  91. package/src/handlers/gestures/GestureDetector/utils.ts +6 -10
  92. package/src/handlers/gestures/gesture.ts +11 -0
  93. package/src/handlers/gestures/gestureComposition.ts +15 -2
  94. package/src/v3/components/GestureButtons.tsx +4 -0
  95. package/src/v3/components/Pressable.tsx +33 -3
  96. package/src/v3/components/Touchable/Touchable.tsx +4 -0
  97. package/src/v3/hooks/utils/configUtils.ts +4 -5
  98. package/src/v3/hooks/utils/propsWhiteList.ts +6 -6
  99. package/src/v3/hooks/utils/reanimatedUtils.ts +9 -10
  100. package/src/web/tools/GestureHandlerWebDelegate.ts +10 -4
@@ -1,5 +1,16 @@
1
1
  import type { BaseGesture, GestureRef } from '../handlers/gestures/gesture';
2
+ type TVProps = {
3
+ focusable?: boolean | undefined;
4
+ isTVSelectable?: boolean | undefined;
5
+ };
6
+ /**
7
+ * Gesture Handler buttons render the native button component directly, bypassing RN's `<View>` —
8
+ * the only place the `focusable` prop is translated into `isTVSelectable`, which actually drives
9
+ * tvOS focusability.
10
+ */
11
+ export declare function getTVProps(props: TVProps): TVProps;
2
12
  export type RelationPropName = 'simultaneousWithExternalGesture' | 'requireExternalGestureToFail' | 'blocksExternalGesture';
3
13
  export type RelationPropType = Exclude<GestureRef, number> | Exclude<GestureRef, number>[];
4
14
  export declare function applyRelationProp(gesture: BaseGesture<any>, relationPropName: RelationPropName, relationProp: RelationPropType): void;
15
+ export {};
5
16
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/components/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE5E,MAAM,MAAM,gBAAgB,GACxB,iCAAiC,GACjC,8BAA8B,GAC9B,uBAAuB,CAAC;AAE5B,MAAM,MAAM,gBAAgB,GACxB,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,GAC3B,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC;AAElC,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,EACzB,gBAAgB,EAAE,gBAAgB,EAClC,YAAY,EAAE,gBAAgB,QAW/B"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/components/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE5E,KAAK,OAAO,GAAG;IACb,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACtC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAQlD;AAED,MAAM,MAAM,gBAAgB,GACxB,iCAAiC,GACjC,8BAA8B,GAC9B,uBAAuB,CAAC;AAE5B,MAAM,MAAM,gBAAgB,GACxB,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,GAC3B,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC;AAElC,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,EACzB,gBAAgB,EAAE,gBAAgB,EAClC,YAAY,EAAE,gBAAgB,QAW/B"}
@@ -1,10 +1,10 @@
1
1
  import type { PropsRef } from '../../../web/interfaces';
2
- import type { GestureRef, GestureType } from '../gesture';
2
+ import type { GestureType } from '../gesture';
3
3
  export declare const ALLOWED_PROPS: string[];
4
4
  export declare function extractGestureRelations(gesture: GestureType): {
5
- waitFor: GestureRef[];
6
- simultaneousHandlers: GestureRef[];
7
- blocksHandlers: GestureRef[];
5
+ waitFor: number[];
6
+ simultaneousHandlers: number[];
7
+ blocksHandlers: number[];
8
8
  };
9
9
  export declare function checkGestureCallbacksForWorklets(gesture: GestureType): void;
10
10
  export declare function useForceRender(): () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/handlers/gestures/GestureDetector/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,QAAQ,EAET,MAAM,yBAAyB,CAAC;AAYjC,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAK1D,eAAO,MAAM,aAAa,UAUzB,CAAC;AAgCF,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,WAAW;;;;EAgB3D;AAED,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,WAAW,QAsCpE;AAED,wBAAgB,cAAc,eAO7B;AAED,wBAAgB,mBAAmB,wCAYlC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/handlers/gestures/GestureDetector/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,QAAQ,EAET,MAAM,yBAAyB,CAAC;AAYjC,OAAO,KAAK,EAAc,WAAW,EAAE,MAAM,YAAY,CAAC;AAK1D,eAAO,MAAM,aAAa,UAUzB,CAAC;AAgCF,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,WAAW;;;;EAY3D;AAED,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,WAAW,QAsCpE;AAED,wBAAgB,cAAc,eAO7B;AAED,wBAAgB,mBAAmB,wCAYlC"}
@@ -73,6 +73,10 @@ export declare abstract class BaseGesture<EventPayloadT extends Record<string, u
73
73
  handlerTag: number;
74
74
  handlerName: string;
75
75
  config: BaseGestureConfig;
76
+ relationsSnapshot?: {
77
+ simultaneousWith: GestureRef[] | undefined;
78
+ requireToFail: GestureRef[] | undefined;
79
+ };
76
80
  handlers: HandlerCallbacks<EventPayloadT>;
77
81
  constructor();
78
82
  private addDependency;
@@ -1 +1 @@
1
- {"version":3,"file":"gesture.d.ts","sourceRoot":"","sources":["../../../../src/handlers/gestures/gesture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gesture.d.ts","sourceRoot":"","sources":["../../../../src/handlers/gestures/gesture.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"gestureComposition.d.ts","sourceRoot":"","sources":["../../../../src/handlers/gestures/gestureComposition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,WAAW,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAe,OAAO,EAAE,MAAM,WAAW,CAAC;AAajD;;GAEG;AACH,qBAAa,eAAgB,SAAQ,OAAO;IAC1C,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAM;IACnC,SAAS,CAAC,oBAAoB,EAAE,WAAW,EAAE,CAAM;IACnD,SAAS,CAAC,qBAAqB,EAAE,WAAW,EAAE,CAAM;gBAExC,GAAG,QAAQ,EAAE,OAAO,EAAE;IAKlC,SAAS,CAAC,oBAAoB,CAC5B,OAAO,EAAE,OAAO,EAChB,oBAAoB,EAAE,WAAW,EAAE,EACnC,qBAAqB,EAAE,WAAW,EAAE;IAwBtC,OAAO;IAUP,UAAU;IAMV,cAAc,IAAI,WAAW,EAAE;CAGhC;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,eAAe;IAC7C,OAAO;CAuBjB;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,eAAe;IAC1C,OAAO;CAoBjB;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,YAAY,CAAC,OAAO,eAAe,CAAC,CAAC;AACvE;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,mBAAmB,CAAC;AAClD;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,YAAY,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAC/E;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,YAAY,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
1
+ {"version":3,"file":"gestureComposition.d.ts","sourceRoot":"","sources":["../../../../src/handlers/gestures/gestureComposition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,WAAW,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAe,OAAO,EAAE,MAAM,WAAW,CAAC;AAajD;;GAEG;AACH,qBAAa,eAAgB,SAAQ,OAAO;IAC1C,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAM;IACnC,SAAS,CAAC,oBAAoB,EAAE,WAAW,EAAE,CAAM;IACnD,SAAS,CAAC,qBAAqB,EAAE,WAAW,EAAE,CAAM;gBAExC,GAAG,QAAQ,EAAE,OAAO,EAAE;IAKlC,SAAS,CAAC,oBAAoB,CAC5B,OAAO,EAAE,OAAO,EAChB,oBAAoB,EAAE,WAAW,EAAE,EACnC,qBAAqB,EAAE,WAAW,EAAE;IAqCtC,OAAO;IAUP,UAAU;IAMV,cAAc,IAAI,WAAW,EAAE;CAGhC;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,eAAe;IAC7C,OAAO;CAuBjB;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,eAAe;IAC1C,OAAO;CAoBjB;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,YAAY,CAAC,OAAO,eAAe,CAAC,CAAC;AACvE;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,mBAAmB,CAAC;AAClD;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,YAAY,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAC/E;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,YAAY,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"GestureButtons.d.ts","sourceRoot":"","sources":["../../../../src/v3/components/GestureButtons.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiB,MAAM,OAAO,CAAC;AAOtC,OAAO,KAAK,EACV,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAiB/B;;GAEG;AACH,eAAO,MAAM,SAAS,GAAI,OAAO,cAAc,sBAE9C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,GAAI,OAAO,eAAe,sBAoEhD,CAAC;AAcF;;GAEG;AACH,eAAO,MAAM,UAAU,GAAI,OAAO,eAAe,sBA2ChD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,OAAO,qBAAqB,sBAwB5D,CAAC;AAEF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,uCAAuC,CAAC"}
1
+ {"version":3,"file":"GestureButtons.d.ts","sourceRoot":"","sources":["../../../../src/v3/components/GestureButtons.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiB,MAAM,OAAO,CAAC;AAQtC,OAAO,KAAK,EACV,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAiB/B;;GAEG;AACH,eAAO,MAAM,SAAS,GAAI,OAAO,cAAc,sBAE9C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,GAAI,OAAO,eAAe,sBAuEhD,CAAC;AAcF;;GAEG;AACH,eAAO,MAAM,UAAU,GAAI,OAAO,eAAe,sBA2ChD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,OAAO,qBAAqB,sBAwB5D,CAAC;AAEF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,uCAAuC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Pressable.d.ts","sourceRoot":"","sources":["../../../../src/v3/components/Pressable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAMN,MAAM,OAAO,CAAC;AASf,OAAO,KAAK,EAGV,cAAc,EACf,MAAM,2CAA2C,CAAC;AA4BnD,QAAA,MAAM,SAAS,GAAI,OAAO,cAAc,sBAuVvC,CAAC;AAEF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"Pressable.d.ts","sourceRoot":"","sources":["../../../../src/v3/components/Pressable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAMN,MAAM,OAAO,CAAC;AASf,OAAO,KAAK,EAGV,cAAc,EACf,MAAM,2CAA2C,CAAC;AA8BnD,QAAA,MAAM,SAAS,GAAI,OAAO,cAAc,sBAmXvC,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Touchable.d.ts","sourceRoot":"","sources":["../../../../../src/v3/components/Touchable/Touchable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAMnD,OAAO,KAAK,EAIV,cAAc,EACf,MAAM,kBAAkB,CAAC;AA4D1B,eAAO,MAAM,SAAS,GAAI,OAAO,cAAc,sBA4J9C,CAAC"}
1
+ {"version":3,"file":"Touchable.d.ts","sourceRoot":"","sources":["../../../../../src/v3/components/Touchable/Touchable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAOnD,OAAO,KAAK,EAIV,cAAc,EACf,MAAM,kBAAkB,CAAC;AA4D1B,eAAO,MAAM,SAAS,GAAI,OAAO,cAAc,sBA+J9C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"configUtils.d.ts","sourceRoot":"","sources":["../../../../../src/v3/hooks/utils/configUtils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,iBAAiB,EACjB,0BAA0B,EAC1B,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAUrB,wBAAgB,0BAA0B,CACxC,OAAO,SAAS,MAAM,EACtB,YAAY,EACZ,oBAAoB,SAAS,YAAY,EACzC,MAAM,EAAE,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,oBAAoB,CAAC,QA6CvE;AAED,wBAAgB,0BAA0B,CACxC,OAAO,SAAS,MAAM,EACtB,YAAY,EACZ,oBAAoB,SAAS,YAAY,EAEzC,WAAW,EAAE,iBAAiB,EAC9B,MAAM,EAAE,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,oBAAoB,CAAC,kEA4BvE;AA6CD,wBAAgB,0BAA0B,CACxC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,YAAY,EACZ,eAAe,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,EACzD,oBAAoB,SAAS,YAAY,GAAG,YAAY,EAExD,MAAM,EAAE,0BAA0B,CAChC,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,oBAAoB,CAAC,CAC/D,EACD,YAAY,GAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAyB,EACjE,gBAAgB,GAAE,CAChB,MAAM,EAAE,eAAe,KACpB,eAA2C,GAC/C,iBAAiB,CAAC,eAAe,EAAE,YAAY,EAAE,oBAAoB,CAAC,CAmBxE"}
1
+ {"version":3,"file":"configUtils.d.ts","sourceRoot":"","sources":["../../../../../src/v3/hooks/utils/configUtils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,iBAAiB,EACjB,0BAA0B,EAC1B,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAUrB,wBAAgB,0BAA0B,CACxC,OAAO,SAAS,MAAM,EACtB,YAAY,EACZ,oBAAoB,SAAS,YAAY,EACzC,MAAM,EAAE,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,oBAAoB,CAAC,QAyCvE;AAED,wBAAgB,0BAA0B,CACxC,OAAO,SAAS,MAAM,EACtB,YAAY,EACZ,oBAAoB,SAAS,YAAY,EAEzC,WAAW,EAAE,iBAAiB,EAC9B,MAAM,EAAE,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,oBAAoB,CAAC,kEA+BvE;AA6CD,wBAAgB,0BAA0B,CACxC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,YAAY,EACZ,eAAe,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,EACzD,oBAAoB,SAAS,YAAY,GAAG,YAAY,EAExD,MAAM,EAAE,0BAA0B,CAChC,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,oBAAoB,CAAC,CAC/D,EACD,YAAY,GAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAyB,EACjE,gBAAgB,GAAE,CAChB,MAAM,EAAE,eAAe,KACpB,eAA2C,GAC/C,iBAAiB,CAAC,eAAe,EAAE,YAAY,EAAE,oBAAoB,CAAC,CAmBxE"}
@@ -1 +1 @@
1
- {"version":3,"file":"propsWhiteList.d.ts","sourceRoot":"","sources":["../../../../../src/v3/hooks/utils/propsWhiteList.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EAEjB,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AA2BhD,eAAO,MAAM,kBAAkB,gQAY7B,CAAC;AAOH,eAAO,MAAM,gBAAgB,+CAY3B,CAAC;AAEH,eAAO,MAAM,aAAa,mDAmBxB,CAAC;AAEH,eAAO,MAAM,eAAe,gDAU1B,CAAC;AAEH,eAAO,MAAM,gBAAgB,aAAoB,CAAC;AAElD,eAAO,MAAM,kBAAkB,4eAQ7B,CAAC"}
1
+ {"version":3,"file":"propsWhiteList.d.ts","sourceRoot":"","sources":["../../../../../src/v3/hooks/utils/propsWhiteList.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EAEjB,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AA2BhD,eAAO,MAAM,kBAAkB,gQAW7B,CAAC;AAEH,eAAO,MAAM,gBAAgB,+CAY3B,CAAC;AAEH,eAAO,MAAM,aAAa,mDAmBxB,CAAC;AAQH,eAAO,MAAM,eAAe,gDAU1B,CAAC;AAEH,eAAO,MAAM,gBAAgB,aAAoB,CAAC;AAElD,eAAO,MAAM,kBAAkB,4eAQ7B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"reanimatedUtils.d.ts","sourceRoot":"","sources":["../../../../../src/v3/hooks/utils/reanimatedUtils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,iBAAiB,EAEjB,cAAc,EACf,MAAM,aAAa,CAAC;AAgBrB,eAAO,MAAM,mBAAmB,QAAQ,CAAC;AAKzC,wBAAgB,gBAAgB,CAC9B,OAAO,EACP,YAAY,EACZ,oBAAoB,SAAS,YAAY,EAEzC,MAAM,EAAE,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,oBAAoB,CAAC,EACtE,UAAU,EAAE,MAAM,QAkCnB;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EACP,YAAY,EACZ,oBAAoB,SAAS,YAAY,EAEzC,MAAM,EAAE,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,oBAAoB,CAAC,EACtE,UAAU,EAAE,MAAM,QAoBnB;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EACP,YAAY,EACZ,oBAAoB,SAAS,YAAY,EACzC,MAAM,EAAE,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,oBAAoB,CAAC,WAUvE;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,CAAC,EAAE,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,SAAS,GACxC,CAAC,CAIH"}
1
+ {"version":3,"file":"reanimatedUtils.d.ts","sourceRoot":"","sources":["../../../../../src/v3/hooks/utils/reanimatedUtils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,iBAAiB,EAEjB,cAAc,EACf,MAAM,aAAa,CAAC;AAgBrB,eAAO,MAAM,mBAAmB,QAAQ,CAAC;AAKzC,wBAAgB,gBAAgB,CAC9B,OAAO,EACP,YAAY,EACZ,oBAAoB,SAAS,YAAY,EAEzC,MAAM,EAAE,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,oBAAoB,CAAC,EACtE,UAAU,EAAE,MAAM,QAiCnB;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EACP,YAAY,EACZ,oBAAoB,SAAS,YAAY,EAEzC,MAAM,EAAE,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,oBAAoB,CAAC,EACtE,UAAU,EAAE,MAAM,QAoBnB;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EACP,YAAY,EACZ,oBAAoB,SAAS,YAAY,EACzC,MAAM,EAAE,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,oBAAoB,CAAC,WAUvE;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,CAAC,EAAE,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,SAAS,GACxC,CAAC,CAIH"}
@@ -1 +1 @@
1
- {"version":3,"file":"GestureHandlerWebDelegate.d.ts","sourceRoot":"","sources":["../../../../src/web/tools/GestureHandlerWebDelegate.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,eAAe,MAAM,6BAA6B,CAAC;AAQ/D,OAAO,KAAK,EACV,sBAAsB,EACtB,aAAa,EACd,MAAM,0BAA0B,CAAC;AAUlC,qBAAa,yBACX,YAAW,sBAAsB,CAAC,WAAW,EAAE,eAAe,CAAC;IAE/D,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,KAAK,CAA4B;IAEzC,OAAO,CAAC,cAAc,CAAmB;IACzC,OAAO,CAAC,aAAa,CAA+B;IACpD,OAAO,CAAC,iBAAiB,CAGvB;IAEF,OAAO,CAAC,4BAA4B,CAAS;IAC7C,OAAO,CAAC,qBAAqB,CAAS;IAEtC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,IAAI;IAqCrD,MAAM,IAAI,IAAI;IAmBd,wBAAwB,IAAI,IAAI;IAShC,SAAS,IAAI,IAAI;IAMjB,iBAAiB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO;IAO9D,WAAW,IAAI,aAAa;IAe5B,eAAe,CACb,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE;IAqC3B,KAAK,IAAI,IAAI;IAMb,cAAc;IAad,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,uBAAuB;IAkB/B,OAAO,CAAC,0BAA0B;IAoBlC,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,cAAc;IAatB,eAAe,IAAI,IAAI;IAYvB,OAAO,IAAI,IAAI;IAIf,UAAU,IAAI,IAAI;IAUlB,KAAK,IAAI,IAAI;IAIb,QAAQ,IAAI,IAAI;IAIhB,MAAM,IAAI,IAAI;IAIP,OAAO,IAAI,IAAI;IAUtB,OAAO,CAAC,YAAY;IAuBpB,OAAO,CAAC,UAAU;IAMlB,IAAW,IAAI,IAAI,WAAW,GAAG,IAAI,CAEpC;IAED,IAAW,IAAI,CAAC,KAAK,EAAE,WAAW,EAEjC;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;CACF"}
1
+ {"version":3,"file":"GestureHandlerWebDelegate.d.ts","sourceRoot":"","sources":["../../../../src/web/tools/GestureHandlerWebDelegate.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,eAAe,MAAM,6BAA6B,CAAC;AAQ/D,OAAO,KAAK,EACV,sBAAsB,EACtB,aAAa,EACd,MAAM,0BAA0B,CAAC;AAUlC,qBAAa,yBACX,YAAW,sBAAsB,CAAC,WAAW,EAAE,eAAe,CAAC;IAE/D,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,KAAK,CAA4B;IAEzC,OAAO,CAAC,cAAc,CAAmB;IACzC,OAAO,CAAC,aAAa,CAA+B;IACpD,OAAO,CAAC,iBAAiB,CAGvB;IAEF,OAAO,CAAC,4BAA4B,CAAS;IAC7C,OAAO,CAAC,qBAAqB,CAAS;IAEtC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,IAAI;IAqCrD,MAAM,IAAI,IAAI;IAmBd,wBAAwB,IAAI,IAAI;IAShC,SAAS,IAAI,IAAI;IAMjB,iBAAiB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO;IAO9D,WAAW,IAAI,aAAa;IAe5B,eAAe,CACb,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE;IA2C3B,KAAK,IAAI,IAAI;IAMb,cAAc;IAad,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,uBAAuB;IAkB/B,OAAO,CAAC,0BAA0B;IAoBlC,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,cAAc;IAatB,eAAe,IAAI,IAAI;IAYvB,OAAO,IAAI,IAAI;IAIf,UAAU,IAAI,IAAI;IAUlB,KAAK,IAAI,IAAI;IAIb,QAAQ,IAAI,IAAI;IAIhB,MAAM,IAAI,IAAI;IAIP,OAAO,IAAI,IAAI;IAUtB,OAAO,CAAC,YAAY;IAuBpB,OAAO,CAAC,UAAU;IAMlB,IAAW,IAAI,IAAI,WAAW,GAAG,IAAI,CAEpC;IAED,IAAW,IAAI,CAAC,KAAK,EAAE,WAAW,EAEjC;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-gesture-handler",
3
- "version": "3.0.0",
3
+ "version": "3.0.2",
4
4
  "description": "Declarative API exposing native platform touch and gesture system to React Native",
5
5
  "scripts": {
6
6
  "test": "jest",
@@ -73,8 +73,8 @@
73
73
  "@babel/core": "^7.25.2",
74
74
  "@babel/preset-env": "^7.25.3",
75
75
  "@babel/preset-typescript": "^7.12.7",
76
- "@react-native/babel-preset": "0.85.0",
77
- "@react-native/jest-preset": "0.85.0",
76
+ "@react-native/babel-preset": "0.86.0",
77
+ "@react-native/jest-preset": "0.86.0",
78
78
  "@testing-library/react-native": "^12.5.1",
79
79
  "@types/invariant": "^2.2.37",
80
80
  "@types/jest": "^29.5.12",
@@ -95,10 +95,10 @@
95
95
  "madge": "^6.1.0",
96
96
  "prettier": "3.3.3",
97
97
  "react": "19.2.3",
98
- "react-native": "0.85.0",
98
+ "react-native": "0.86.0",
99
99
  "react-native-builder-bob": "^0.40.13",
100
- "react-native-reanimated": "^4.3.0",
101
- "react-native-worklets": "^0.8.1",
100
+ "react-native-reanimated": "~4.4.1",
101
+ "react-native-worklets": "0.9.1",
102
102
  "react-test-renderer": "19.2.3",
103
103
  "typescript": "~5.8.3"
104
104
  },
@@ -1,25 +1,31 @@
1
- def try_to_parse_react_native_package_json(node_modules_dir)
2
- react_native_package_json_path = File.join(node_modules_dir, 'react-native/package.json')
1
+ module GestureHandlerUtils
2
+ module_function
3
3
 
4
- if !File.exist?(react_native_package_json_path)
5
- return nil
4
+ def try_to_parse_react_native_package_json(react_native_dir)
5
+ react_native_package_json_path = File.join(react_native_dir, 'package.json')
6
+
7
+ if !File.exist?(react_native_package_json_path)
8
+ return nil
9
+ end
10
+
11
+ return JSON.parse(File.read(react_native_package_json_path))
6
12
  end
7
13
 
8
- return JSON.parse(File.read(react_native_package_json_path))
9
- end
14
+ def get_react_native_minor_version()
15
+ react_native_dir = File.dirname(`cd "#{Pod::Config.instance.installation_root.to_s}" && node --print "require.resolve('react-native/package.json')"`)
16
+ react_native_json = try_to_parse_react_native_package_json(react_native_dir)
10
17
 
11
- def get_react_native_minor_version()
12
- react_native_node_modules_dir = File.join(File.dirname(`cd "#{Pod::Config.instance.installation_root.to_s}" && node --print "require.resolve('react-native/package.json')"`), '..')
13
- react_native_json = try_to_parse_react_native_package_json(react_native_node_modules_dir)
18
+ if react_native_json == nil
19
+ node_modules_dir = ENV["REACT_NATIVE_NODE_MODULES_DIR"]
20
+ if node_modules_dir != nil
21
+ react_native_json = try_to_parse_react_native_package_json(File.join(node_modules_dir, 'react-native'))
22
+ end
23
+ end
14
24
 
15
- if react_native_json == nil
16
- node_modules_dir = ENV["REACT_NATIVE_NODE_MODULES_DIR"]
17
- react_native_json = try_to_parse_react_native_package_json(node_modules_dir)
18
- end
25
+ if react_native_json == nil
26
+ raise '[react-native-gesture-handler] Unable to recognize your `react-native` version. Please set environmental variable with `react-native` location: `export REACT_NATIVE_NODE_MODULES_DIR="<path to react-native>" && pod install`.'
27
+ end
19
28
 
20
- if react_native_json == nil
21
- raise '[react-native-gesture-handler] Unable to recognize your `react-native` version. Please set environmental variable with `react-native` location: `export REACT_NATIVE_NODE_MODULES_DIR="<path to react-native>" && pod install`.'
29
+ return react_native_json['version'].split('.')[1].to_i
22
30
  end
23
-
24
- return react_native_json['version'].split('.')[1].to_i
25
31
  end
@@ -29,11 +29,14 @@ void RNGestureHandlerDetectorShadowNode::initialize() {
29
29
  // Will clone the child and ensure it's not flattened
30
30
  replaceChild(*children[i], children[i], i);
31
31
  }
32
+
33
+ updateOrderIndexFromChildren();
32
34
  }
33
35
 
34
36
  void RNGestureHandlerDetectorShadowNode::appendChild(
35
37
  const std::shared_ptr<const ShadowNode> &child) {
36
38
  YogaLayoutableShadowNode::appendChild(unflattenNode(child));
39
+ updateOrderIndexFromChildren();
37
40
  }
38
41
 
39
42
  void RNGestureHandlerDetectorShadowNode::replaceChild(
@@ -42,6 +45,7 @@ void RNGestureHandlerDetectorShadowNode::replaceChild(
42
45
  size_t suggestedIndex) {
43
46
  YogaLayoutableShadowNode::replaceChild(
44
47
  oldChild, unflattenNode(newChild), suggestedIndex);
48
+ updateOrderIndexFromChildren();
45
49
  }
46
50
 
47
51
  void RNGestureHandlerDetectorShadowNode::layout(LayoutContext layoutContext) {
@@ -127,4 +131,19 @@ RNGestureHandlerDetectorShadowNode::unflattenNode(
127
131
  return clonedNode;
128
132
  }
129
133
 
134
+ void RNGestureHandlerDetectorShadowNode::updateOrderIndexFromChildren() {
135
+ const auto &children = getChildren();
136
+ if (children.size() != 1) {
137
+ ShadowNode::orderIndex_ = 0;
138
+ return;
139
+ }
140
+
141
+ // The detector behaves like a transparent wrapper around its child.
142
+ // With a single child, mirror the child's RN-computed order index so styles
143
+ // such as zIndex keep affecting sibling ordering despite the extra native
144
+ // detector node. With multiple children, no single order index can preserve
145
+ // each child's independent ordering relative to outside siblings.
146
+ ShadowNode::orderIndex_ = children.front()->getOrderIndex();
147
+ }
148
+
130
149
  } // namespace facebook::react
@@ -65,6 +65,7 @@ class RNGestureHandlerDetectorShadowNode final
65
65
  std::shared_ptr<const ShadowNode> unflattenNode(
66
66
  const std::shared_ptr<const ShadowNode> &node);
67
67
  void initialize();
68
+ void updateOrderIndexFromChildren();
68
69
 
69
70
  std::optional<LayoutMetrics> previousLayoutMetrics_;
70
71
  };
@@ -34,6 +34,7 @@ import {
34
34
  gestureTouchToPressableEvent,
35
35
  isTouchWithinInset,
36
36
  numberAsInset,
37
+ viewCenterToPressableEvent,
37
38
  } from './utils';
38
39
 
39
40
  const DEFAULT_LONG_PRESS_DURATION = 500;
@@ -301,6 +302,13 @@ const LegacyPressable = (props: LegacyPressableProps) => {
301
302
  }
302
303
  })
303
304
  .onBegin(() => {
305
+ if (Platform.OS === 'android' && isScreenReaderEnabled) {
306
+ stateMachine.handleEvent(
307
+ StateMachineEvent.NATIVE_BEGIN,
308
+ viewCenterToPressableEvent(dimensions.current)
309
+ );
310
+ return;
311
+ }
304
312
  stateMachine.handleEvent(StateMachineEvent.NATIVE_BEGIN);
305
313
  })
306
314
  .onStart(() => {
@@ -325,7 +333,7 @@ const LegacyPressable = (props: LegacyPressableProps) => {
325
333
  }
326
334
  })
327
335
  .shouldActivateOnStart(Platform.OS === 'web'),
328
- [stateMachine, handlePressOut, handleFinalize]
336
+ [stateMachine, handlePressOut, handleFinalize, isScreenReaderEnabled]
329
337
  );
330
338
 
331
339
  const isPressableEnabled = disabled !== true;
@@ -3,6 +3,7 @@ import type { PressableEvent } from './PressableProps';
3
3
  export interface StateDefinition {
4
4
  eventName: string;
5
5
  callback?: (event: PressableEvent) => void;
6
+ optional?: boolean;
6
7
  }
7
8
 
8
9
  class PressableStateMachine {
@@ -30,9 +31,23 @@ class PressableStateMachine {
30
31
  return;
31
32
  }
32
33
 
33
- const step = this.states[this.currentStepIndex];
34
34
  this.eventPayload = eventPayload || this.eventPayload;
35
35
 
36
+ // Skip past optional steps that don't match the incoming event
37
+ while (
38
+ this.currentStepIndex < this.states.length &&
39
+ this.states[this.currentStepIndex].eventName !== eventName &&
40
+ this.states[this.currentStepIndex].optional
41
+ ) {
42
+ this.currentStepIndex++;
43
+ }
44
+
45
+ if (this.currentStepIndex >= this.states.length) {
46
+ this.reset();
47
+ return;
48
+ }
49
+
50
+ const step = this.states[this.currentStepIndex];
36
51
  if (step.eventName !== eventName) {
37
52
  if (this.currentStepIndex > 0) {
38
53
  // retry with position at index 0
@@ -36,11 +36,12 @@ function getAndroidAccessibilityStatesConfig(
36
36
  ) {
37
37
  return [
38
38
  {
39
- eventName: StateMachineEvent.LONG_PRESS_TOUCHES_DOWN,
39
+ eventName: StateMachineEvent.NATIVE_BEGIN,
40
40
  callback: handlePressIn,
41
41
  },
42
42
  {
43
- eventName: StateMachineEvent.NATIVE_BEGIN,
43
+ eventName: StateMachineEvent.LONG_PRESS_TOUCHES_DOWN,
44
+ optional: true,
44
45
  },
45
46
  {
46
47
  eventName: StateMachineEvent.FINALIZE,
@@ -142,10 +142,47 @@ const gestureTouchToPressableEvent = (
142
142
  };
143
143
  };
144
144
 
145
+ const viewCenterToPressableEvent = (
146
+ dimensions: PressableDimensions
147
+ ): PressableEvent => {
148
+ const timestamp = Date.now();
149
+ const targetId = 0;
150
+ const centerX = dimensions.width / 2;
151
+ const centerY = dimensions.height / 2;
152
+
153
+ const pressEvent: InnerPressableEvent = {
154
+ identifier: 0,
155
+ locationX: centerX,
156
+ locationY: centerY,
157
+ pageX: -1,
158
+ pageY: -1,
159
+ target: targetId,
160
+ timestamp,
161
+ touches: [],
162
+ changedTouches: [],
163
+ };
164
+
165
+ return {
166
+ nativeEvent: {
167
+ touches: [pressEvent],
168
+ changedTouches: [pressEvent],
169
+ identifier: 0,
170
+ locationX: centerX,
171
+ locationY: centerY,
172
+ pageX: -1,
173
+ pageY: -1,
174
+ target: targetId,
175
+ timestamp,
176
+ force: undefined,
177
+ },
178
+ };
179
+ };
180
+
145
181
  export {
146
182
  addInsets,
147
183
  gestureToPressableEvent,
148
184
  gestureTouchToPressableEvent,
149
185
  isTouchWithinInset,
150
186
  numberAsInset,
187
+ viewCenterToPressableEvent,
151
188
  };
@@ -41,7 +41,10 @@ import type {
41
41
  UserSelect,
42
42
  } from '../handlers/gestureHandlerCommon';
43
43
  import { MouseButton } from '../handlers/gestureHandlerCommon';
44
- import { GestureDetector } from '../v3/detectors';
44
+ import {
45
+ InterceptingGestureDetector,
46
+ VirtualGestureDetector,
47
+ } from '../v3/detectors';
45
48
  import type { PanGestureActiveEvent } from '../v3/hooks/gestures';
46
49
  import { usePanGesture, useTapGesture } from '../v3/hooks/gestures';
47
50
  import type { WithSharedValue } from '../v3/types';
@@ -185,15 +188,28 @@ export type DrawerLayoutProps = {
185
188
  overlayColor?: string;
186
189
 
187
190
  /**
188
- * Style wrapping the content.
191
+ * Style applied to the container wrapping the content view (the `children`)
192
+ * and the background overlay.
189
193
  */
190
194
  contentContainerStyle?: StyleProp<ViewStyle>;
191
195
 
192
196
  /**
193
- * Style wrapping the drawer.
197
+ * Style applied to the container wrapping the drawer (the view returned by
198
+ * `renderNavigationView`).
194
199
  */
195
200
  drawerContainerStyle?: StyleProp<ViewStyle>;
196
201
 
202
+ /**
203
+ * Style applied to the outermost container that wraps both the content view
204
+ * and the drawer.
205
+ */
206
+ rootContainerStyle?: StyleProp<ViewStyle>;
207
+
208
+ /**
209
+ * Called while the drawer is moving or animating, with a `position`
210
+ * parameter indicating the progress of the opening/closing animation.
211
+ * It equals `0` when the drawer is closed and `1` when it is fully opened.
212
+ */
197
213
  onDrawerSlide?: (position: number) => void;
198
214
 
199
215
  // Implicit `children` prop has been removed in @types/react^18.0.
@@ -283,6 +299,7 @@ const DrawerLayout = function DrawerLayout(
283
299
  drawerType = defaultProps.drawerType,
284
300
  drawerBackgroundColor,
285
301
  drawerContainerStyle,
302
+ rootContainerStyle,
286
303
  contentContainerStyle,
287
304
  minSwipeDistance = defaultProps.minSwipeDistance,
288
305
  edgeWidth = defaultProps.edgeWidth,
@@ -657,12 +674,14 @@ const DrawerLayout = function DrawerLayout(
657
674
  );
658
675
 
659
676
  return (
660
- <GestureDetector
677
+ <InterceptingGestureDetector
661
678
  gesture={panGesture}
662
679
  userSelect={userSelect}
663
680
  enableContextMenu={enableContextMenu}>
664
- <Animated.View style={styles.main} onLayout={handleContainerLayout}>
665
- <GestureDetector
681
+ <Animated.View
682
+ style={[styles.main, rootContainerStyle]}
683
+ onLayout={handleContainerLayout}>
684
+ <VirtualGestureDetector
666
685
  gesture={overlayDismissGesture}
667
686
  userSelect={userSelect}>
668
687
  <Animated.View
@@ -680,7 +699,7 @@ const DrawerLayout = function DrawerLayout(
680
699
  style={[styles.overlay, overlayAnimatedStyle]}
681
700
  />
682
701
  </Animated.View>
683
- </GestureDetector>
702
+ </VirtualGestureDetector>
684
703
  <Animated.View
685
704
  pointerEvents="box-none"
686
705
  animatedProps={drawerAnimatedProps}
@@ -694,7 +713,7 @@ const DrawerLayout = function DrawerLayout(
694
713
  </Animated.View>
695
714
  </Animated.View>
696
715
  </Animated.View>
697
- </GestureDetector>
716
+ </InterceptingGestureDetector>
698
717
  );
699
718
  };
700
719
 
@@ -392,7 +392,10 @@ const Swipeable = (props: SwipeableProps) => {
392
392
 
393
393
  const leftActionAnimation = useAnimatedStyle(() => {
394
394
  return {
395
- opacity: showLeftProgress.value === 0 ? 0 : 1,
395
+ // Both action containers use `absoluteFill` and overlap, so the
396
+ // inactive one must not intercept touches meant for the visible
397
+ // actions.
398
+ pointerEvents: showLeftProgress.value === 0 ? 'none' : 'auto',
396
399
  };
397
400
  });
398
401
 
@@ -422,7 +425,10 @@ const Swipeable = (props: SwipeableProps) => {
422
425
 
423
426
  const rightActionAnimation = useAnimatedStyle(() => {
424
427
  return {
425
- opacity: showRightProgress.value === 0 ? 0 : 1,
428
+ // Both action containers use `absoluteFill` and overlap, so the
429
+ // inactive one must not intercept touches meant for the visible
430
+ // actions.
431
+ pointerEvents: showRightProgress.value === 0 ? 'none' : 'auto',
426
432
  };
427
433
  });
428
434
 
@@ -1,5 +1,27 @@
1
+ import { Platform } from 'react-native';
2
+
1
3
  import type { BaseGesture, GestureRef } from '../handlers/gestures/gesture';
2
4
 
5
+ type TVProps = {
6
+ focusable?: boolean | undefined;
7
+ isTVSelectable?: boolean | undefined;
8
+ };
9
+
10
+ /**
11
+ * Gesture Handler buttons render the native button component directly, bypassing RN's `<View>` —
12
+ * the only place the `focusable` prop is translated into `isTVSelectable`, which actually drives
13
+ * tvOS focusability.
14
+ */
15
+ export function getTVProps(props: TVProps): TVProps {
16
+ if (!Platform.isTV) {
17
+ return {};
18
+ }
19
+
20
+ return {
21
+ isTVSelectable: props.focusable ?? props.isTVSelectable ?? true,
22
+ };
23
+ }
24
+
3
25
  export type RelationPropName =
4
26
  | 'simultaneousWithExternalGesture'
5
27
  | 'requireExternalGestureToFail'
@@ -65,20 +65,16 @@ function extractValidHandlerTags(interactionGroup: GestureRef[] | undefined) {
65
65
  }
66
66
 
67
67
  export function extractGestureRelations(gesture: GestureType) {
68
- gesture.config.requireToFail = extractValidHandlerTags(
69
- gesture.config.requireToFail
70
- );
71
- gesture.config.simultaneousWith = extractValidHandlerTags(
68
+ const requireToFail = extractValidHandlerTags(gesture.config.requireToFail);
69
+ const simultaneousWith = extractValidHandlerTags(
72
70
  gesture.config.simultaneousWith
73
71
  );
74
- gesture.config.blocksHandlers = extractValidHandlerTags(
75
- gesture.config.blocksHandlers
76
- );
72
+ const blocksHandlers = extractValidHandlerTags(gesture.config.blocksHandlers);
77
73
 
78
74
  return {
79
- waitFor: gesture.config.requireToFail,
80
- simultaneousHandlers: gesture.config.simultaneousWith,
81
- blocksHandlers: gesture.config.blocksHandlers,
75
+ waitFor: requireToFail,
76
+ simultaneousHandlers: simultaneousWith,
77
+ blocksHandlers: blocksHandlers,
82
78
  };
83
79
  }
84
80
 
@@ -137,6 +137,17 @@ export abstract class BaseGesture<
137
137
  public handlerTag = -1;
138
138
  public handlerName = '';
139
139
  public config: BaseGestureConfig = {};
140
+ // Snapshot of the relations defined directly on this gesture (e.g. via
141
+ // `simultaneousWithExternalGesture`), captured before any composition extends
142
+ // them. Composition rebuilds the relation config from this snapshot on every
143
+ // `prepare`, so repeated renders don't accumulate references to gestures from
144
+ // previous renders (memory leak, see #3763), while keeping the original
145
+ // references so relations stay re-resolvable after a remount, such as a
146
+ // `react-freeze` unfreeze (see #4238).
147
+ public relationsSnapshot?: {
148
+ simultaneousWith: GestureRef[] | undefined;
149
+ requireToFail: GestureRef[] | undefined;
150
+ };
140
151
  public handlers: HandlerCallbacks<EventPayloadT> = {
141
152
  gestureId: -1,
142
153
  handlerTag: -1,
@@ -31,16 +31,29 @@ export class ComposedGesture extends Gesture {
31
31
  requireGesturesToFail: GestureType[]
32
32
  ) {
33
33
  if (gesture instanceof BaseGesture) {
34
+ // Capture the relations defined directly on the gesture before composition
35
+ // extends them, then always rebuild from that snapshot. Otherwise, when the
36
+ // gesture is stable (e.g. wrapped in `useMemo`) but the composition is
37
+ // recreated on every render, the relations would keep accumulating
38
+ // references to gestures from previous renders, leaking memory (see #3763).
39
+ // We keep the original references (instead of collapsing them to handler
40
+ // tags) so relations can still be re-resolved after a remount, such as a
41
+ // `react-freeze` unfreeze (see #4238).
42
+ gesture.relationsSnapshot ??= {
43
+ simultaneousWith: gesture.config.simultaneousWith,
44
+ requireToFail: gesture.config.requireToFail,
45
+ };
46
+
34
47
  const newConfig = { ...gesture.config };
35
48
 
36
49
  // No need to extend `blocksHandlers` here, because it's not changed in composition.
37
50
  // The same effect is achieved by reversing the order of 2 gestures in `Exclusive`
38
51
  newConfig.simultaneousWith = extendRelation(
39
- newConfig.simultaneousWith,
52
+ gesture.relationsSnapshot.simultaneousWith,
40
53
  simultaneousGestures
41
54
  );
42
55
  newConfig.requireToFail = extendRelation(
43
- newConfig.requireToFail,
56
+ gesture.relationsSnapshot.requireToFail,
44
57
  requireGesturesToFail
45
58
  );
46
59