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.
- package/README.md +4 -0
- package/RNGestureHandler.podspec +1 -1
- package/android/build.gradle +6 -5
- package/android/gradle.properties +1 -1
- package/android/src/main/java/com/swmansion/gesturehandler/core/FlingGestureHandler.kt +1 -1
- package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandler.kt +28 -32
- package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerOrchestrator.kt +44 -6
- package/android/src/main/java/com/swmansion/gesturehandler/core/LongPressGestureHandler.kt +4 -3
- package/android/src/main/java/com/swmansion/gesturehandler/core/NativeViewGestureHandler.kt +0 -13
- package/android/src/main/java/com/swmansion/gesturehandler/core/PanGestureHandler.kt +1 -1
- package/android/src/main/java/com/swmansion/gesturehandler/core/TapGestureHandler.kt +1 -1
- package/android/src/main/java/com/swmansion/gesturehandler/react/Extensions.kt +3 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +30 -3
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerDetectorView.kt +4 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.kt +8 -6
- package/apple/Handlers/RNNativeViewHandler.mm +4 -1
- package/apple/RNGestureHandlerButton.h +5 -0
- package/apple/RNGestureHandlerButtonComponentView.mm +38 -0
- package/apple/RNGestureHandlerDetector.h +0 -2
- package/apple/RNGestureHandlerDetector.mm +6 -6
- package/apple/RNGestureHandlerManager.h +5 -0
- package/apple/RNGestureHandlerManager.mm +14 -12
- package/lib/module/components/Pressable/Pressable.js +6 -2
- package/lib/module/components/Pressable/Pressable.js.map +1 -1
- package/lib/module/components/Pressable/StateMachine.js +10 -1
- package/lib/module/components/Pressable/StateMachine.js.map +1 -1
- package/lib/module/components/Pressable/stateDefinitions.js +3 -2
- package/lib/module/components/Pressable/stateDefinitions.js.map +1 -1
- package/lib/module/components/Pressable/utils.js +32 -1
- package/lib/module/components/Pressable/utils.js.map +1 -1
- package/lib/module/components/ReanimatedDrawerLayout.js +5 -4
- package/lib/module/components/ReanimatedDrawerLayout.js.map +1 -1
- package/lib/module/components/ReanimatedSwipeable/ReanimatedSwipeable.js +8 -2
- package/lib/module/components/ReanimatedSwipeable/ReanimatedSwipeable.js.map +1 -1
- package/lib/module/components/utils.js +14 -0
- package/lib/module/components/utils.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/utils.js +6 -6
- package/lib/module/handlers/gestures/GestureDetector/utils.js.map +1 -1
- package/lib/module/handlers/gestures/gesture.js +8 -0
- package/lib/module/handlers/gestures/gesture.js.map +1 -1
- package/lib/module/handlers/gestures/gestureComposition.js +14 -2
- package/lib/module/handlers/gestures/gestureComposition.js.map +1 -1
- package/lib/module/v3/components/GestureButtons.js +3 -0
- package/lib/module/v3/components/GestureButtons.js.map +1 -1
- package/lib/module/v3/components/Pressable.js +24 -5
- package/lib/module/v3/components/Pressable.js.map +1 -1
- package/lib/module/v3/components/Touchable/Touchable.js +3 -0
- package/lib/module/v3/components/Touchable/Touchable.js.map +1 -1
- package/lib/module/v3/hooks/utils/configUtils.js +3 -3
- package/lib/module/v3/hooks/utils/configUtils.js.map +1 -1
- package/lib/module/v3/hooks/utils/propsWhiteList.js +7 -6
- package/lib/module/v3/hooks/utils/propsWhiteList.js.map +1 -1
- package/lib/module/v3/hooks/utils/reanimatedUtils.js +8 -10
- package/lib/module/v3/hooks/utils/reanimatedUtils.js.map +1 -1
- package/lib/module/web/tools/GestureHandlerWebDelegate.js +5 -4
- package/lib/module/web/tools/GestureHandlerWebDelegate.js.map +1 -1
- package/lib/typescript/components/Pressable/Pressable.d.ts.map +1 -1
- package/lib/typescript/components/Pressable/StateMachine.d.ts +1 -0
- package/lib/typescript/components/Pressable/StateMachine.d.ts.map +1 -1
- package/lib/typescript/components/Pressable/stateDefinitions.d.ts.map +1 -1
- package/lib/typescript/components/Pressable/utils.d.ts +2 -1
- package/lib/typescript/components/Pressable/utils.d.ts.map +1 -1
- package/lib/typescript/components/ReanimatedDrawerLayout.d.ts +14 -2
- package/lib/typescript/components/ReanimatedDrawerLayout.d.ts.map +1 -1
- package/lib/typescript/components/ReanimatedSwipeable/ReanimatedSwipeable.d.ts.map +1 -1
- package/lib/typescript/components/utils.d.ts +11 -0
- package/lib/typescript/components/utils.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/GestureDetector/utils.d.ts +4 -4
- package/lib/typescript/handlers/gestures/GestureDetector/utils.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/gesture.d.ts +4 -0
- package/lib/typescript/handlers/gestures/gesture.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/gestureComposition.d.ts.map +1 -1
- package/lib/typescript/v3/components/GestureButtons.d.ts.map +1 -1
- package/lib/typescript/v3/components/Pressable.d.ts.map +1 -1
- package/lib/typescript/v3/components/Touchable/Touchable.d.ts.map +1 -1
- package/lib/typescript/v3/hooks/utils/configUtils.d.ts.map +1 -1
- package/lib/typescript/v3/hooks/utils/propsWhiteList.d.ts.map +1 -1
- package/lib/typescript/v3/hooks/utils/reanimatedUtils.d.ts.map +1 -1
- package/lib/typescript/web/tools/GestureHandlerWebDelegate.d.ts.map +1 -1
- package/package.json +6 -6
- package/scripts/gesture_handler_utils.rb +23 -17
- package/shared/shadowNodes/react/renderer/components/rngesturehandler_codegen/RNGestureHandlerDetectorShadowNode.cpp +19 -0
- package/shared/shadowNodes/react/renderer/components/rngesturehandler_codegen/RNGestureHandlerDetectorShadowNode.h +1 -0
- package/src/components/Pressable/Pressable.tsx +9 -1
- package/src/components/Pressable/StateMachine.tsx +16 -1
- package/src/components/Pressable/stateDefinitions.ts +3 -2
- package/src/components/Pressable/utils.ts +37 -0
- package/src/components/ReanimatedDrawerLayout.tsx +27 -8
- package/src/components/ReanimatedSwipeable/ReanimatedSwipeable.tsx +8 -2
- package/src/components/utils.ts +22 -0
- package/src/handlers/gestures/GestureDetector/utils.ts +6 -10
- package/src/handlers/gestures/gesture.ts +11 -0
- package/src/handlers/gestures/gestureComposition.ts +15 -2
- package/src/v3/components/GestureButtons.tsx +4 -0
- package/src/v3/components/Pressable.tsx +33 -3
- package/src/v3/components/Touchable/Touchable.tsx +4 -0
- package/src/v3/hooks/utils/configUtils.ts +4 -5
- package/src/v3/hooks/utils/propsWhiteList.ts +6 -6
- package/src/v3/hooks/utils/reanimatedUtils.ts +9 -10
- 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":"
|
|
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 {
|
|
2
|
+
import type { GestureType } from '../gesture';
|
|
3
3
|
export declare const ALLOWED_PROPS: string[];
|
|
4
4
|
export declare function extractGestureRelations(gesture: GestureType): {
|
|
5
|
-
waitFor:
|
|
6
|
-
simultaneousHandlers:
|
|
7
|
-
blocksHandlers:
|
|
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,
|
|
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;
|
|
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;
|
|
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;
|
|
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;
|
|
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,
|
|
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,
|
|
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,
|
|
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;
|
|
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.
|
|
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.
|
|
77
|
-
"@react-native/jest-preset": "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.
|
|
98
|
+
"react-native": "0.86.0",
|
|
99
99
|
"react-native-builder-bob": "^0.40.13",
|
|
100
|
-
"react-native-reanimated": "
|
|
101
|
-
"react-native-worklets": "
|
|
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
|
-
|
|
2
|
-
|
|
1
|
+
module GestureHandlerUtils
|
|
2
|
+
module_function
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
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
|
-
|
|
9
|
-
|
|
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
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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
|
-
|
|
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.
|
|
39
|
+
eventName: StateMachineEvent.NATIVE_BEGIN,
|
|
40
40
|
callback: handlePressIn,
|
|
41
41
|
},
|
|
42
42
|
{
|
|
43
|
-
eventName: StateMachineEvent.
|
|
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 {
|
|
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
|
-
<
|
|
677
|
+
<InterceptingGestureDetector
|
|
661
678
|
gesture={panGesture}
|
|
662
679
|
userSelect={userSelect}
|
|
663
680
|
enableContextMenu={enableContextMenu}>
|
|
664
|
-
<Animated.View
|
|
665
|
-
|
|
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
|
-
</
|
|
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
|
-
</
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
package/src/components/utils.ts
CHANGED
|
@@ -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
|
-
|
|
69
|
-
|
|
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
|
-
|
|
75
|
-
gesture.config.blocksHandlers
|
|
76
|
-
);
|
|
72
|
+
const blocksHandlers = extractValidHandlerTags(gesture.config.blocksHandlers);
|
|
77
73
|
|
|
78
74
|
return {
|
|
79
|
-
waitFor:
|
|
80
|
-
simultaneousHandlers:
|
|
81
|
-
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
|
-
|
|
52
|
+
gesture.relationsSnapshot.simultaneousWith,
|
|
40
53
|
simultaneousGestures
|
|
41
54
|
);
|
|
42
55
|
newConfig.requireToFail = extendRelation(
|
|
43
|
-
|
|
56
|
+
gesture.relationsSnapshot.requireToFail,
|
|
44
57
|
requireGesturesToFail
|
|
45
58
|
);
|
|
46
59
|
|