react-native-gesture-handler 2.33.0 → 2.33.1
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/android/paper/src/main/java/com/facebook/react/viewmanagers/RNGestureHandlerRootViewManagerDelegate.java +3 -0
- package/android/paper/src/main/java/com/facebook/react/viewmanagers/RNGestureHandlerRootViewManagerInterface.java +2 -0
- package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandler.kt +9 -3
- package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerOrchestrator.kt +5 -8
- package/android/src/main/java/com/swmansion/gesturehandler/core/HoverGestureHandler.kt +1 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt +2 -1
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootViewManager.kt +6 -0
- package/apple/RNGestureHandler.mm +15 -3
- package/apple/RNGestureHandlerButtonComponentView.mm +6 -0
- package/lib/commonjs/handlers/createHandler.js +1 -1
- package/lib/commonjs/handlers/createHandler.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.js +10 -0
- package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/attachHandlers.js +8 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/attachHandlers.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/index.js +5 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/index.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/updateHandlers.js +7 -0
- package/lib/commonjs/handlers/gestures/GestureDetector/updateHandlers.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/useMountReactions.js +22 -3
- package/lib/commonjs/handlers/gestures/GestureDetector/useMountReactions.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/utils.js +35 -6
- package/lib/commonjs/handlers/gestures/GestureDetector/utils.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gesture.js +8 -0
- package/lib/commonjs/handlers/gestures/gesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gestureComposition.js +14 -2
- package/lib/commonjs/handlers/gestures/gestureComposition.js.map +1 -1
- package/lib/commonjs/handlers/gestures/reanimatedWrapper.js +23 -0
- package/lib/commonjs/handlers/gestures/reanimatedWrapper.js.map +1 -1
- package/lib/commonjs/specs/RNGestureHandlerRootViewNativeComponent.ts +11 -2
- package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js +5 -1
- package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js.map +1 -1
- package/lib/commonjs/web/tools/KeyboardEventManager.js +17 -12
- package/lib/commonjs/web/tools/KeyboardEventManager.js.map +1 -1
- package/lib/commonjs/web/tools/WheelEventManager.js +15 -5
- package/lib/commonjs/web/tools/WheelEventManager.js.map +1 -1
- package/lib/module/handlers/createHandler.js +1 -1
- package/lib/module/handlers/createHandler.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/Wrap.js +12 -2
- package/lib/module/handlers/gestures/GestureDetector/Wrap.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/attachHandlers.js +9 -2
- package/lib/module/handlers/gestures/GestureDetector/attachHandlers.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/index.js +5 -1
- package/lib/module/handlers/gestures/GestureDetector/index.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/updateHandlers.js +8 -1
- package/lib/module/handlers/gestures/GestureDetector/updateHandlers.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/useMountReactions.js +22 -3
- package/lib/module/handlers/gestures/GestureDetector/useMountReactions.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/utils.js +34 -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/handlers/gestures/reanimatedWrapper.js +22 -0
- package/lib/module/handlers/gestures/reanimatedWrapper.js.map +1 -1
- package/lib/module/specs/RNGestureHandlerRootViewNativeComponent.ts +11 -2
- package/lib/module/web/tools/GestureHandlerWebDelegate.js +5 -1
- package/lib/module/web/tools/GestureHandlerWebDelegate.js.map +1 -1
- package/lib/module/web/tools/KeyboardEventManager.js +17 -12
- package/lib/module/web/tools/KeyboardEventManager.js.map +1 -1
- package/lib/module/web/tools/WheelEventManager.js +15 -5
- package/lib/module/web/tools/WheelEventManager.js.map +1 -1
- package/lib/typescript/handlers/createHandler.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/GestureDetector/Wrap.d.ts +1 -0
- package/lib/typescript/handlers/gestures/GestureDetector/Wrap.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/GestureDetector/attachHandlers.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/GestureDetector/index.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/GestureDetector/types.d.ts +1 -0
- package/lib/typescript/handlers/gestures/GestureDetector/types.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/GestureDetector/updateHandlers.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/GestureDetector/useMountReactions.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/GestureDetector/utils.d.ts +5 -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/handlers/gestures/reanimatedWrapper.d.ts +1 -0
- package/lib/typescript/handlers/gestures/reanimatedWrapper.d.ts.map +1 -1
- package/lib/typescript/specs/RNGestureHandlerRootViewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/web/tools/GestureHandlerWebDelegate.d.ts.map +1 -1
- package/lib/typescript/web/tools/KeyboardEventManager.d.ts +2 -1
- package/lib/typescript/web/tools/KeyboardEventManager.d.ts.map +1 -1
- package/lib/typescript/web/tools/WheelEventManager.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/handlers/createHandler.tsx +4 -1
- package/src/handlers/gestures/GestureDetector/Wrap.tsx +17 -1
- package/src/handlers/gestures/GestureDetector/attachHandlers.ts +11 -2
- package/src/handlers/gestures/GestureDetector/index.tsx +4 -0
- package/src/handlers/gestures/GestureDetector/types.ts +3 -0
- package/src/handlers/gestures/GestureDetector/updateHandlers.ts +8 -0
- package/src/handlers/gestures/GestureDetector/useMountReactions.ts +29 -4
- package/src/handlers/gestures/GestureDetector/utils.ts +42 -10
- package/src/handlers/gestures/gesture.ts +11 -0
- package/src/handlers/gestures/gestureComposition.ts +15 -2
- package/src/handlers/gestures/reanimatedWrapper.ts +23 -0
- package/src/specs/RNGestureHandlerRootViewNativeComponent.ts +11 -2
- package/src/web/tools/GestureHandlerWebDelegate.ts +6 -1
- package/src/web/tools/KeyboardEventManager.ts +20 -18
- package/src/web/tools/WheelEventManager.ts +14 -5
|
@@ -6,7 +6,7 @@ import { filterConfig, scheduleFlushOperations } from '../../utils';
|
|
|
6
6
|
import { ActionType } from '../../../ActionType';
|
|
7
7
|
import { Platform } from 'react-native';
|
|
8
8
|
import { ghQueueMicrotask } from '../../../ghQueueMicrotask';
|
|
9
|
-
import { extractGestureRelations, checkGestureCallbacksForWorklets, ALLOWED_PROPS } from './utils';
|
|
9
|
+
import { extractGestureRelations, checkGestureCallbacksForWorklets, ALLOWED_PROPS, hasExternalRelations } from './utils';
|
|
10
10
|
import { MountRegistry } from '../../../mountRegistry';
|
|
11
11
|
export function attachHandlers({
|
|
12
12
|
preparedGesture,
|
|
@@ -31,6 +31,9 @@ export function attachHandlers({
|
|
|
31
31
|
registerHandler(handler.handlerTag, handler, handler.config.testId);
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
+
// React to every mount until the microtask below classifies the new gesture set
|
|
35
|
+
preparedGesture.hasExternalRelations = true;
|
|
36
|
+
|
|
34
37
|
// Use queueMicrotask to extract handlerTags, because all refs should be initialized
|
|
35
38
|
// when it's ran
|
|
36
39
|
ghQueueMicrotask(() => {
|
|
@@ -40,8 +43,13 @@ export function attachHandlers({
|
|
|
40
43
|
for (const handler of gesturesToAttach) {
|
|
41
44
|
RNGestureHandlerModule.updateGestureHandler(handler.handlerTag, filterConfig(handler.config, ALLOWED_PROPS, extractGestureRelations(handler)));
|
|
42
45
|
}
|
|
46
|
+
preparedGesture.hasExternalRelations = hasExternalRelations(gesturesToAttach);
|
|
43
47
|
scheduleFlushOperations();
|
|
44
48
|
});
|
|
49
|
+
|
|
50
|
+
// Set before the mount events below fire, so this detector's own mount
|
|
51
|
+
// listener can tell its gestures apart from external ones
|
|
52
|
+
preparedGesture.attachedGestures = gesturesToAttach;
|
|
45
53
|
for (const gesture of gesturesToAttach) {
|
|
46
54
|
const actionType = gesture.shouldUseReanimated ? ActionType.REANIMATED_WORKLET : ActionType.JS_FUNCTION_NEW_API;
|
|
47
55
|
if (Platform.OS === 'web') {
|
|
@@ -53,7 +61,6 @@ export function attachHandlers({
|
|
|
53
61
|
}
|
|
54
62
|
MountRegistry.gestureWillMount(gesture);
|
|
55
63
|
}
|
|
56
|
-
preparedGesture.attachedGestures = gesturesToAttach;
|
|
57
64
|
if (preparedGesture.animatedHandlers) {
|
|
58
65
|
const isAnimatedGesture = g => g.shouldUseReanimated;
|
|
59
66
|
preparedGesture.animatedHandlers.value = gesturesToAttach.filter(isAnimatedGesture).map(g => g.handlers);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["registerHandler","RNGestureHandlerModule","filterConfig","scheduleFlushOperations","ActionType","Platform","ghQueueMicrotask","extractGestureRelations","checkGestureCallbacksForWorklets","ALLOWED_PROPS","MountRegistry","attachHandlers","preparedGesture","gestureConfig","gesturesToAttach","viewTag","webEventHandlersRef","initialize","isMounted","prepare","handler","createGestureHandler","handlerName","handlerTag","config","testId","updateGestureHandler","gesture","actionType","shouldUseReanimated","REANIMATED_WORKLET","JS_FUNCTION_NEW_API","OS","attachGestureHandler","JS_FUNCTION_OLD_API","gestureWillMount","
|
|
1
|
+
{"version":3,"names":["registerHandler","RNGestureHandlerModule","filterConfig","scheduleFlushOperations","ActionType","Platform","ghQueueMicrotask","extractGestureRelations","checkGestureCallbacksForWorklets","ALLOWED_PROPS","hasExternalRelations","MountRegistry","attachHandlers","preparedGesture","gestureConfig","gesturesToAttach","viewTag","webEventHandlersRef","initialize","isMounted","prepare","handler","createGestureHandler","handlerName","handlerTag","config","testId","updateGestureHandler","attachedGestures","gesture","actionType","shouldUseReanimated","REANIMATED_WORKLET","JS_FUNCTION_NEW_API","OS","attachGestureHandler","JS_FUNCTION_OLD_API","gestureWillMount","animatedHandlers","isAnimatedGesture","g","value","filter","map","handlers"],"sourceRoot":"../../../../../src","sources":["handlers/gestures/GestureDetector/attachHandlers.ts"],"mappings":";;AAEA,SAASA,eAAe,QAAQ,wBAAwB;AACxD,OAAOC,sBAAsB,MAAM,iCAAiC;AACpE,SAASC,YAAY,EAAEC,uBAAuB,QAAQ,aAAa;AAEnE,SAASC,UAAU,QAAQ,qBAAqB;AAChD,SAASC,QAAQ,QAAQ,cAAc;AAEvC,SAASC,gBAAgB,QAAQ,2BAA2B;AAE5D,SACEC,uBAAuB,EACvBC,gCAAgC,EAChCC,aAAa,EACbC,oBAAoB,QACf,SAAS;AAChB,SAASC,aAAa,QAAQ,wBAAwB;AAUtD,OAAO,SAASC,cAAcA,CAAC;EAC7BC,eAAe;EACfC,aAAa;EACbC,gBAAgB;EAChBC,OAAO;EACPC;AACoB,CAAC,EAAE;EACvBH,aAAa,CAACI,UAAU,CAAC,CAAC;;EAE1B;EACA;EACAZ,gBAAgB,CAAC,MAAM;IACrB,IAAI,CAACO,eAAe,CAACM,SAAS,EAAE;MAC9B;IACF;IACAL,aAAa,CAACM,OAAO,CAAC,CAAC;EACzB,CAAC,CAAC;EAEF,KAAK,MAAMC,OAAO,IAAIN,gBAAgB,EAAE;IACtCP,gCAAgC,CAACa,OAAO,CAAC;IACzCpB,sBAAsB,CAACqB,oBAAoB,CACzCD,OAAO,CAACE,WAAW,EACnBF,OAAO,CAACG,UAAU,EAClBtB,YAAY,CAACmB,OAAO,CAACI,MAAM,EAAEhB,aAAa,CAC5C,CAAC;IAEDT,eAAe,CAACqB,OAAO,CAACG,UAAU,EAAEH,OAAO,EAAEA,OAAO,CAACI,MAAM,CAACC,MAAM,CAAC;EACrE;;EAEA;EACAb,eAAe,CAACH,oBAAoB,GAAG,IAAI;;EAE3C;EACA;EACAJ,gBAAgB,CAAC,MAAM;IACrB,IAAI,CAACO,eAAe,CAACM,SAAS,EAAE;MAC9B;IACF;IACA,KAAK,MAAME,OAAO,IAAIN,gBAAgB,EAAE;MACtCd,sBAAsB,CAAC0B,oBAAoB,CACzCN,OAAO,CAACG,UAAU,EAClBtB,YAAY,CACVmB,OAAO,CAACI,MAAM,EACdhB,aAAa,EACbF,uBAAuB,CAACc,OAAO,CACjC,CACF,CAAC;IACH;IAEAR,eAAe,CAACH,oBAAoB,GAClCA,oBAAoB,CAACK,gBAAgB,CAAC;IAExCZ,uBAAuB,CAAC,CAAC;EAC3B,CAAC,CAAC;;EAEF;EACA;EACAU,eAAe,CAACe,gBAAgB,GAAGb,gBAAgB;EAEnD,KAAK,MAAMc,OAAO,IAAId,gBAAgB,EAAE;IACtC,MAAMe,UAAU,GAAGD,OAAO,CAACE,mBAAmB,GAC1C3B,UAAU,CAAC4B,kBAAkB,GAC7B5B,UAAU,CAAC6B,mBAAmB;IAElC,IAAI5B,QAAQ,CAAC6B,EAAE,KAAK,KAAK,EAAE;MAEvBjC,sBAAsB,CAACkC,oBAAoB,CAE3CN,OAAO,CAACL,UAAU,EAClBR,OAAO,EACPZ,UAAU,CAACgC,mBAAmB;MAAE;MAChCnB,mBACF,CAAC;IACH,CAAC,MAAM;MACLhB,sBAAsB,CAACkC,oBAAoB,CACzCN,OAAO,CAACL,UAAU,EAClBR,OAAO,EACPc,UACF,CAAC;IACH;IAEAnB,aAAa,CAAC0B,gBAAgB,CAACR,OAAO,CAAC;EACzC;EAEA,IAAIhB,eAAe,CAACyB,gBAAgB,EAAE;IACpC,MAAMC,iBAAiB,GAAIC,CAAc,IAAKA,CAAC,CAACT,mBAAmB;IAEnElB,eAAe,CAACyB,gBAAgB,CAACG,KAAK,GAAG1B,gBAAgB,CACtD2B,MAAM,CAACH,iBAAiB,CAAC,CACzBI,GAAG,CAAEH,CAAC,IAAKA,CAAC,CAACI,QAAQ,CAErB;EACL;AACF","ignoreList":[]}
|
|
@@ -73,7 +73,11 @@ export const GestureDetector = props => {
|
|
|
73
73
|
animatedEventHandler: null,
|
|
74
74
|
animatedHandlers: null,
|
|
75
75
|
shouldUseReanimated: shouldUseReanimated,
|
|
76
|
-
isMounted: false
|
|
76
|
+
isMounted: false,
|
|
77
|
+
// The real value is computed in the attach microtask, which runs after
|
|
78
|
+
// this commit's effects. Until then react to every mount, so a relation
|
|
79
|
+
// to a gesture mounting in the same commit is never skipped.
|
|
80
|
+
hasExternalRelations: true
|
|
77
81
|
}).current;
|
|
78
82
|
const updateAttachedGestures = useDetectorUpdater(state, preparedGesture, gesturesToAttach, gestureConfig, webEventHandlersRef);
|
|
79
83
|
const refHandler = useViewRefHandler(state, updateAttachedGestures);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useContext","useEffect","useMemo","useRef","Platform","findNodeHandle","isTestEnv","resolveHostInstance","GestureHandlerRootViewContext","useAnimatedGesture","attachHandlers","needsToReattach","dropHandlers","useWebEventHandlers","Wrap","AnimatedWrap","useDetectorUpdater","useViewRefHandler","useMountReactions","useIsomorphicLayoutEffect","jsx","_jsx","propagateDetectorConfig","props","gesture","keysToPropagate","key","value","undefined","g","toGestureArray","config","GestureDetector","rootViewContext","__DEV__","OS","Error","gestureConfig","gesturesToAttach","shouldUseReanimated","some","webEventHandlersRef","state","firstRender","viewRef","previousViewTag","forceRebuildReanimatedEvent","current","preparedGesture","attachedGestures","animatedEventHandler","animatedHandlers","isMounted","updateAttachedGestures","refHandler","needsToRebuildReanimatedEvent","viewTag","ref","onGestureHandlerEvent","children"],"sourceRoot":"../../../../../src","sources":["handlers/gestures/GestureDetector/index.tsx"],"mappings":";;AAAA;AACA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,SAAS,EAAEC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AACrE,SAASC,QAAQ,QAAQ,cAAc;AACvC,OAAOC,cAAc,MAAM,yBAAyB;AAIpD,SAASC,SAAS,QAAQ,gBAAgB;AAC1C,SAASC,mBAAmB,QAAQ,uBAAuB;AAE3D,OAAOC,6BAA6B,MAAM,wCAAwC;AAElF,SAASC,kBAAkB,QAAQ,sBAAsB;AACzD,SAASC,cAAc,QAAQ,kBAAkB;AACjD,SAASC,eAAe,QAAQ,mBAAmB;AACnD,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,mBAAmB,QAAQ,SAAS;AAC7C,SAASC,IAAI,EAAEC,YAAY,QAAQ,QAAQ;AAC3C,SAASC,kBAAkB,QAAQ,sBAAsB;AACzD,SAASC,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,yBAAyB,QAAQ,oCAAoC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE/E,SAASC,uBAAuBA,CAC9BC,KAA2B,EAC3BC,OAAsC,EACtC;EACA,MAAMC,eAA+C,GAAG,CACtD,YAAY,EACZ,mBAAmB,EACnB,aAAa,CACd;EAED,KAAK,MAAMC,GAAG,IAAID,eAAe,EAAE;IACjC,MAAME,KAAK,GAAGJ,KAAK,CAACG,GAAG,CAAC;IACxB,IAAIC,KAAK,KAAKC,SAAS,EAAE;MACvB;IACF;IAEA,KAAK,MAAMC,CAAC,IAAIL,OAAO,CAACM,cAAc,CAAC,CAAC,EAAE;MACxC,MAAMC,MAAM,GAAGF,CAAC,CAACE,MAAoC;MACrDA,MAAM,CAACL,GAAG,CAAC,GAAGC,KAAK;IACrB;EACF;AACF;AA+BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMK,eAAe,GAAIT,KAA2B,IAAK;EAC9D,MAAMU,eAAe,GAAGjC,UAAU,CAACQ,6BAA6B,CAAC;EACjE,IAAI0B,OAAO,IAAI,CAACD,eAAe,IAAI,CAAC3B,SAAS,CAAC,CAAC,IAAIF,QAAQ,CAAC+B,EAAE,KAAK,KAAK,EAAE;IACxE,MAAM,IAAIC,KAAK,CACb,qOACF,CAAC;EACH;EAEA,IAAI,CAACb,KAAK,CAACC,OAAO,EAAE;IAClB,MAAM,IAAIY,KAAK,CAAC,oDAAoD,CAAC;EACvE;;EAEA;EACA,MAAMC,aAAa,GAAGd,KAAK,CAACC,OAAO;EACnCF,uBAAuB,CAACC,KAAK,EAAEc,aAAa,CAAC;EAE7C,MAAMC,gBAAgB,GAAGpC,OAAO,CAC9B,MAAMmC,aAAa,CAACP,cAAc,CAAC,CAAC,EACpC,CAACO,aAAa,CAChB,CAAC;EACD,MAAME,mBAAmB,GAAGD,gBAAgB,CAACE,IAAI,CAC9CX,CAAC,IAAKA,CAAC,CAACU,mBACX,CAAC;EAED,MAAME,mBAAmB,GAAG5B,mBAAmB,CAAC,CAAC;EACjD;EACA,MAAM6B,KAAK,GAAGvC,MAAM,CAAuB;IACzCwC,WAAW,EAAE,IAAI;IACjBC,OAAO,EAAE,IAAI;IACbC,eAAe,EAAE,CAAC,CAAC;IACnBC,2BAA2B,EAAE;EAC/B,CAAC,CAAC,CAACC,OAAO;EAEV,MAAMC,eAAe,GAAGjD,KAAK,CAACI,MAAM,CAAuB;IACzD8C,gBAAgB,EAAE,EAAE;IACpBC,oBAAoB,EAAE,IAAI;IAC1BC,gBAAgB,EAAE,IAAI;IACtBZ,mBAAmB,EAAEA,mBAAmB;IACxCa,SAAS,EAAE;
|
|
1
|
+
{"version":3,"names":["React","useContext","useEffect","useMemo","useRef","Platform","findNodeHandle","isTestEnv","resolveHostInstance","GestureHandlerRootViewContext","useAnimatedGesture","attachHandlers","needsToReattach","dropHandlers","useWebEventHandlers","Wrap","AnimatedWrap","useDetectorUpdater","useViewRefHandler","useMountReactions","useIsomorphicLayoutEffect","jsx","_jsx","propagateDetectorConfig","props","gesture","keysToPropagate","key","value","undefined","g","toGestureArray","config","GestureDetector","rootViewContext","__DEV__","OS","Error","gestureConfig","gesturesToAttach","shouldUseReanimated","some","webEventHandlersRef","state","firstRender","viewRef","previousViewTag","forceRebuildReanimatedEvent","current","preparedGesture","attachedGestures","animatedEventHandler","animatedHandlers","isMounted","hasExternalRelations","updateAttachedGestures","refHandler","needsToRebuildReanimatedEvent","viewTag","ref","onGestureHandlerEvent","children"],"sourceRoot":"../../../../../src","sources":["handlers/gestures/GestureDetector/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,7 +4,7 @@ import { registerHandler } from '../../handlersRegistry';
|
|
|
4
4
|
import RNGestureHandlerModule from '../../../RNGestureHandlerModule';
|
|
5
5
|
import { filterConfig, scheduleFlushOperations } from '../../utils';
|
|
6
6
|
import { ghQueueMicrotask } from '../../../ghQueueMicrotask';
|
|
7
|
-
import { extractGestureRelations, checkGestureCallbacksForWorklets, ALLOWED_PROPS } from './utils';
|
|
7
|
+
import { extractGestureRelations, checkGestureCallbacksForWorklets, ALLOWED_PROPS, hasExternalRelations } from './utils';
|
|
8
8
|
export function updateHandlers(preparedGesture, gestureConfig, newGestures) {
|
|
9
9
|
gestureConfig.prepare();
|
|
10
10
|
for (let i = 0; i < newGestures.length; i++) {
|
|
@@ -22,6 +22,9 @@ export function updateHandlers(preparedGesture, gestureConfig, newGestures) {
|
|
|
22
22
|
// Store attached gestures to avoid crash when gestures changed after queueing micro task
|
|
23
23
|
const attachedGestures = preparedGesture.attachedGestures;
|
|
24
24
|
|
|
25
|
+
// React to every mount until the microtask below classifies the new gesture set
|
|
26
|
+
preparedGesture.hasExternalRelations = true;
|
|
27
|
+
|
|
25
28
|
// Use queueMicrotask to extract handlerTags, because when it's ran, all refs should be updated
|
|
26
29
|
// and handlerTags in BaseGesture references should be updated in the loop above (we need to wait
|
|
27
30
|
// in case of external relations)
|
|
@@ -50,6 +53,10 @@ export function updateHandlers(preparedGesture, gestureConfig, newGestures) {
|
|
|
50
53
|
RNGestureHandlerModule.updateGestureHandler(handler.handlerTag, filterConfig(handler.config, ALLOWED_PROPS, extractGestureRelations(handler)));
|
|
51
54
|
registerHandler(handler.handlerTag, handler, handler.config.testId);
|
|
52
55
|
}
|
|
56
|
+
|
|
57
|
+
// Classify the new instances: their configs reference the new siblings,
|
|
58
|
+
// which the old attached objects would mistake for external gestures
|
|
59
|
+
preparedGesture.hasExternalRelations = hasExternalRelations(newGestures);
|
|
53
60
|
if (preparedGesture.animatedHandlers && shouldUpdateSharedValueIfUsed) {
|
|
54
61
|
const newHandlersValue = attachedGestures.filter(g => g.shouldUseReanimated) // Ignore gestures that shouldn't run on UI
|
|
55
62
|
.map(g => g.handlers);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["registerHandler","RNGestureHandlerModule","filterConfig","scheduleFlushOperations","ghQueueMicrotask","extractGestureRelations","checkGestureCallbacksForWorklets","ALLOWED_PROPS","updateHandlers","preparedGesture","gestureConfig","newGestures","prepare","i","length","handler","attachedGestures","handlerTag","handlers","isMounted","shouldUpdateSharedValueIfUsed","gestureId","shouldUseReanimated","config","updateGestureHandler","testId","animatedHandlers","newHandlersValue","filter","g","map","value"],"sourceRoot":"../../../../../src","sources":["handlers/gestures/GestureDetector/updateHandlers.ts"],"mappings":";;AACA,SAASA,eAAe,QAAQ,wBAAwB;AACxD,OAAOC,sBAAsB,MAAM,iCAAiC;AACpE,SAASC,YAAY,EAAEC,uBAAuB,QAAQ,aAAa;AAEnE,SAASC,gBAAgB,QAAQ,2BAA2B;AAE5D,SACEC,uBAAuB,EACvBC,gCAAgC,EAChCC,aAAa,
|
|
1
|
+
{"version":3,"names":["registerHandler","RNGestureHandlerModule","filterConfig","scheduleFlushOperations","ghQueueMicrotask","extractGestureRelations","checkGestureCallbacksForWorklets","ALLOWED_PROPS","hasExternalRelations","updateHandlers","preparedGesture","gestureConfig","newGestures","prepare","i","length","handler","attachedGestures","handlerTag","handlers","isMounted","shouldUpdateSharedValueIfUsed","gestureId","shouldUseReanimated","config","updateGestureHandler","testId","animatedHandlers","newHandlersValue","filter","g","map","value"],"sourceRoot":"../../../../../src","sources":["handlers/gestures/GestureDetector/updateHandlers.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,14 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { transformIntoHandlerTags } from '../../utils';
|
|
4
3
|
import { MountRegistry } from '../../../mountRegistry';
|
|
5
4
|
import { useEffect } from 'react';
|
|
6
5
|
function shouldUpdateDetector(relation, gesture) {
|
|
7
6
|
if (relation === undefined) {
|
|
8
7
|
return false;
|
|
9
8
|
}
|
|
10
|
-
for (const
|
|
11
|
-
|
|
9
|
+
for (const entry of relation) {
|
|
10
|
+
// A gesture object gets its tag in `initialize`, when its own detector
|
|
11
|
+
// attaches. The mount event carries that very object, so identity is enough.
|
|
12
|
+
if (entry === gesture) {
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
if (entry === null || typeof entry !== 'object' || !('current' in entry)) {
|
|
16
|
+
continue;
|
|
17
|
+
}
|
|
18
|
+
const current = entry.current;
|
|
19
|
+
if (current?.handlerTag === gesture.handlerTag) {
|
|
12
20
|
return true;
|
|
13
21
|
}
|
|
14
22
|
}
|
|
@@ -23,6 +31,17 @@ export function useMountReactions(updateDetector, state) {
|
|
|
23
31
|
return;
|
|
24
32
|
}
|
|
25
33
|
|
|
34
|
+
// Nothing here can resolve late, skip the scan (most detectors)
|
|
35
|
+
if (!state.hasExternalRelations) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// Own gestures are resolved by the attach microtask, and on a reattach
|
|
40
|
+
// they would match the sibling entries added by composition
|
|
41
|
+
if (state.attachedGestures.includes(gesture)) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
|
|
26
45
|
// At this point the ref in the gesture config should be updated, so we can check if one of the gestures
|
|
27
46
|
// set in a relation with the gesture got mounted. If so, we need to update the detector to propagate
|
|
28
47
|
// the changes to the native side.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["MountRegistry","useEffect","shouldUpdateDetector","relation","gesture","undefined","entry","current","handlerTag","useMountReactions","updateDetector","state","addMountListener","isMounted","hasExternalRelations","attachedGestures","includes","attachedGesture","blocksHandlers","config","requireToFail","simultaneousWith"],"sourceRoot":"../../../../../src","sources":["handlers/gestures/GestureDetector/useMountReactions.ts"],"mappings":";;AACA,SAASA,aAAa,QAAQ,wBAAwB;AAEtD,SAASC,SAAS,QAAQ,OAAO;AAKjC,SAASC,oBAAoBA,CAC3BC,QAAkC,EAClCC,OAAuB,EACvB;EACA,IAAID,QAAQ,KAAKE,SAAS,EAAE;IAC1B,OAAO,KAAK;EACd;EAEA,KAAK,MAAMC,KAAK,IAAIH,QAAQ,EAAE;IAC5B;IACA;IACA,IAAIG,KAAK,KAAKF,OAAO,EAAE;MACrB,OAAO,IAAI;IACb;IAEA,IAAIE,KAAK,KAAK,IAAI,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,EAAE,SAAS,IAAIA,KAAK,CAAC,EAAE;MACxE;IACF;IAEA,MAAMC,OAAO,GAAGD,KAAK,CAACC,OAAqD;IAE3E,IAAIA,OAAO,EAAEC,UAAU,KAAKJ,OAAO,CAACI,UAAU,EAAE;MAC9C,OAAO,IAAI;IACb;EACF;EAEA,OAAO,KAAK;AACd;AAEA,OAAO,SAASC,iBAAiBA,CAC/BC,cAA0B,EAC1BC,KAA2B,EAC3B;EACAV,SAAS,CAAC,MAAM;IACd,OAAOD,aAAa,CAACY,gBAAgB,CAAER,OAAO,IAAK;MACjD;MACA;MACA,IAAI,CAACO,KAAK,CAACE,SAAS,EAAE;QACpB;MACF;;MAEA;MACA,IAAI,CAACF,KAAK,CAACG,oBAAoB,EAAE;QAC/B;MACF;;MAEA;MACA;MACA,IAAIH,KAAK,CAACI,gBAAgB,CAACC,QAAQ,CAACZ,OAAgB,CAAC,EAAE;QACrD;MACF;;MAEA;MACA;MACA;MACA,KAAK,MAAMa,eAAe,IAAIN,KAAK,CAACI,gBAAgB,EAAE;QACpD,MAAMG,cAAc,GAAGD,eAAe,CAACE,MAAM,CAACD,cAAc;QAC5D,MAAME,aAAa,GAAGH,eAAe,CAACE,MAAM,CAACC,aAAa;QAC1D,MAAMC,gBAAgB,GAAGJ,eAAe,CAACE,MAAM,CAACE,gBAAgB;QAEhE,IACEnB,oBAAoB,CAACgB,cAAc,EAAEd,OAAO,CAAC,IAC7CF,oBAAoB,CAACkB,aAAa,EAAEhB,OAAO,CAAC,IAC5CF,oBAAoB,CAACmB,gBAAgB,EAAEjB,OAAO,CAAC,EAC/C;UACAM,cAAc,CAAC,CAAC;;UAEhB;UACA;QACF;MACF;IACF,CAAC,CAAC;EACJ,CAAC,EAAE,CAACA,cAAc,EAAEC,KAAK,CAAC,CAAC;AAC7B","ignoreList":[]}
|
|
@@ -39,14 +39,42 @@ function convertToHandlerTag(ref) {
|
|
|
39
39
|
function extractValidHandlerTags(interactionGroup) {
|
|
40
40
|
return Array.from(new Set(interactionGroup?.map(convertToHandlerTag)?.filter(tag => tag > 0) ?? []));
|
|
41
41
|
}
|
|
42
|
+
|
|
43
|
+
// Relations that may resolve to a different handler after this detector attached:
|
|
44
|
+
// refs (filled when the target mounts) and gesture objects attached by another
|
|
45
|
+
// detector (they get a tag in `initialize`). Siblings added by composition are
|
|
46
|
+
// attached together with the gesture, so they never resolve late.
|
|
47
|
+
export function hasExternalRelations(gestures) {
|
|
48
|
+
const ownGestures = new Set(gestures);
|
|
49
|
+
for (const gesture of gestures) {
|
|
50
|
+
const relations = [gesture.config.blocksHandlers, gesture.config.requireToFail, gesture.config.simultaneousWith];
|
|
51
|
+
for (const relation of relations) {
|
|
52
|
+
if (relation === undefined) {
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
for (const entry of relation) {
|
|
56
|
+
if (typeof entry === 'number') {
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Anything but our own gesture object is external: a ref, or a gesture
|
|
61
|
+
// attached by another detector
|
|
62
|
+
if (!(entry instanceof BaseGesture) || !ownGestures.has(entry)) {
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
42
70
|
export function extractGestureRelations(gesture) {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
71
|
+
const requireToFail = extractValidHandlerTags(gesture.config.requireToFail);
|
|
72
|
+
const simultaneousWith = extractValidHandlerTags(gesture.config.simultaneousWith);
|
|
73
|
+
const blocksHandlers = extractValidHandlerTags(gesture.config.blocksHandlers);
|
|
46
74
|
return {
|
|
47
|
-
waitFor:
|
|
48
|
-
simultaneousHandlers:
|
|
49
|
-
blocksHandlers:
|
|
75
|
+
waitFor: requireToFail,
|
|
76
|
+
simultaneousHandlers: simultaneousWith,
|
|
77
|
+
blocksHandlers: blocksHandlers
|
|
50
78
|
};
|
|
51
79
|
}
|
|
52
80
|
export function checkGestureCallbacksForWorklets(gesture) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useRef","useState","isTestEnv","tagMessage","BaseGesture","flingGestureHandlerProps","forceTouchGestureHandlerProps","longPressGestureHandlerProps","panGestureHandlerProps","panGestureHandlerCustomNativeProps","tapGestureHandlerProps","hoverGestureHandlerProps","nativeViewGestureHandlerProps","baseGestureHandlerWithDetectorProps","isNewWebImplementationEnabled","Reanimated","onGestureHandlerEvent","ALLOWED_PROPS","emptyWorklet","wasBabelPluginEnabled","__workletHash","undefined","convertToHandlerTag","ref","handlerTag","current","extractValidHandlerTags","interactionGroup","Array","from","Set","map","filter","tag","
|
|
1
|
+
{"version":3,"names":["useCallback","useRef","useState","isTestEnv","tagMessage","BaseGesture","flingGestureHandlerProps","forceTouchGestureHandlerProps","longPressGestureHandlerProps","panGestureHandlerProps","panGestureHandlerCustomNativeProps","tapGestureHandlerProps","hoverGestureHandlerProps","nativeViewGestureHandlerProps","baseGestureHandlerWithDetectorProps","isNewWebImplementationEnabled","Reanimated","onGestureHandlerEvent","ALLOWED_PROPS","emptyWorklet","wasBabelPluginEnabled","__workletHash","undefined","convertToHandlerTag","ref","handlerTag","current","extractValidHandlerTags","interactionGroup","Array","from","Set","map","filter","tag","hasExternalRelations","gestures","ownGestures","gesture","relations","config","blocksHandlers","requireToFail","simultaneousWith","relation","entry","has","extractGestureRelations","waitFor","simultaneousHandlers","checkGestureCallbacksForWorklets","__DEV__","runOnJS","areSomeNotWorklets","handlers","isWorklet","includes","areSomeWorklets","console","error","areAllNotWorklets","warn","useForceRender","renderState","setRenderState","forceRender","useWebEventHandlers","e","nativeEvent","onGestureHandlerStateChange"],"sourceRoot":"../../../../../src","sources":["handlers/gestures/GestureDetector/utils.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -29,6 +29,14 @@ export class BaseGesture extends Gesture {
|
|
|
29
29
|
handlerTag = -1;
|
|
30
30
|
handlerName = '';
|
|
31
31
|
config = {};
|
|
32
|
+
// Snapshot of the relations defined directly on this gesture (e.g. via
|
|
33
|
+
// `simultaneousWithExternalGesture`), captured before any composition extends
|
|
34
|
+
// them. Composition rebuilds the relation config from this snapshot on every
|
|
35
|
+
// `prepare`, so repeated renders don't accumulate references to gestures from
|
|
36
|
+
// previous renders (memory leak, see #3763), while keeping the original
|
|
37
|
+
// references so relations stay re-resolvable after a remount, such as a
|
|
38
|
+
// `react-freeze` unfreeze (see #4238).
|
|
39
|
+
|
|
32
40
|
handlers = {
|
|
33
41
|
gestureId: -1,
|
|
34
42
|
handlerTag: -1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getNextHandlerTag","isRemoteDebuggingEnabled","CALLBACK_TYPE","UNDEFINED","BEGAN","START","UPDATE","CHANGE","END","FINALIZE","TOUCHES_DOWN","TOUCHES_MOVE","TOUCHES_UP","TOUCHES_CANCELLED","Gesture","nextGestureId","BaseGesture","gestureId","handlerTag","handlerName","config","handlers","isWorklet","constructor","addDependency","key","gesture","value","Array","concat","withRef","ref","callback","__workletHash","undefined","onBegin","onStart","onEnd","onFinalize","onTouchesDown","needsPointerData","onTouchesMove","onTouchesUp","onTouchesCancelled","enabled","shouldCancelWhenOutside","hitSlop","activeCursor","mouseButton","runOnJS","simultaneousWithExternalGesture","gestures","requireExternalGestureToFail","blocksExternalGesture","withTestId","id","testId","cancelsTouchesInView","initialize","current","toGestureArray","prepare","shouldUseReanimated","includes","ContinousBaseGesture","onUpdate","onChange","manualActivation"],"sourceRoot":"../../../../src","sources":["handlers/gestures/gesture.ts"],"mappings":";;AASA,SAASA,iBAAiB,QAAQ,sBAAsB;AAaxD,SAASC,wBAAwB,QAAQ,aAAa;;AAmBO;;AA8C7D,OAAO,MAAMC,aAAa,GAAG;EAC3BC,SAAS,EAAE,CAAC;EACZC,KAAK,EAAE,CAAC;EACRC,KAAK,EAAE,CAAC;EACRC,MAAM,EAAE,CAAC;EACTC,MAAM,EAAE,CAAC;EACTC,GAAG,EAAE,CAAC;EACNC,QAAQ,EAAE,CAAC;EACXC,YAAY,EAAE,CAAC;EACfC,YAAY,EAAE,CAAC;EACfC,UAAU,EAAE,CAAC;EACbC,iBAAiB,EAAE;AACrB,CAAU;;AAEV;AACA;;AAGA,OAAO,MAAeC,OAAO,CAAC;AAoB9B,IAAIC,aAAa,GAAG,CAAC;AACrB,OAAO,MAAeC,WAAW,SAEvBF,OAAO,CAAC;EACRG,SAAS,GAAG,CAAC,CAAC;EACfC,UAAU,GAAG,CAAC,CAAC;EACfC,WAAW,GAAG,EAAE;EAChBC,MAAM,GAAsB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"names":["getNextHandlerTag","isRemoteDebuggingEnabled","CALLBACK_TYPE","UNDEFINED","BEGAN","START","UPDATE","CHANGE","END","FINALIZE","TOUCHES_DOWN","TOUCHES_MOVE","TOUCHES_UP","TOUCHES_CANCELLED","Gesture","nextGestureId","BaseGesture","gestureId","handlerTag","handlerName","config","handlers","isWorklet","constructor","addDependency","key","gesture","value","Array","concat","withRef","ref","callback","__workletHash","undefined","onBegin","onStart","onEnd","onFinalize","onTouchesDown","needsPointerData","onTouchesMove","onTouchesUp","onTouchesCancelled","enabled","shouldCancelWhenOutside","hitSlop","activeCursor","mouseButton","runOnJS","simultaneousWithExternalGesture","gestures","requireExternalGestureToFail","blocksExternalGesture","withTestId","id","testId","cancelsTouchesInView","initialize","current","toGestureArray","prepare","shouldUseReanimated","includes","ContinousBaseGesture","onUpdate","onChange","manualActivation"],"sourceRoot":"../../../../src","sources":["handlers/gestures/gesture.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -18,14 +18,26 @@ export class ComposedGesture extends Gesture {
|
|
|
18
18
|
}
|
|
19
19
|
prepareSingleGesture(gesture, simultaneousGestures, requireGesturesToFail) {
|
|
20
20
|
if (gesture instanceof BaseGesture) {
|
|
21
|
+
// Capture the relations defined directly on the gesture before composition
|
|
22
|
+
// extends them, then always rebuild from that snapshot. Otherwise, when the
|
|
23
|
+
// gesture is stable (e.g. wrapped in `useMemo`) but the composition is
|
|
24
|
+
// recreated on every render, the relations would keep accumulating
|
|
25
|
+
// references to gestures from previous renders, leaking memory (see #3763).
|
|
26
|
+
// We keep the original references (instead of collapsing them to handler
|
|
27
|
+
// tags) so relations can still be re-resolved after a remount, such as a
|
|
28
|
+
// `react-freeze` unfreeze (see #4238).
|
|
29
|
+
gesture.relationsSnapshot ??= {
|
|
30
|
+
simultaneousWith: gesture.config.simultaneousWith,
|
|
31
|
+
requireToFail: gesture.config.requireToFail
|
|
32
|
+
};
|
|
21
33
|
const newConfig = {
|
|
22
34
|
...gesture.config
|
|
23
35
|
};
|
|
24
36
|
|
|
25
37
|
// No need to extend `blocksHandlers` here, because it's not changed in composition.
|
|
26
38
|
// The same effect is achieved by reversing the order of 2 gestures in `Exclusive`
|
|
27
|
-
newConfig.simultaneousWith = extendRelation(
|
|
28
|
-
newConfig.requireToFail = extendRelation(
|
|
39
|
+
newConfig.simultaneousWith = extendRelation(gesture.relationsSnapshot.simultaneousWith, simultaneousGestures);
|
|
40
|
+
newConfig.requireToFail = extendRelation(gesture.relationsSnapshot.requireToFail, requireGesturesToFail);
|
|
29
41
|
gesture.config = newConfig;
|
|
30
42
|
} else if (gesture instanceof ComposedGesture) {
|
|
31
43
|
gesture.simultaneousGestures = simultaneousGestures;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BaseGesture","Gesture","extendRelation","currentRelation","extendWith","undefined","ComposedGesture","gestures","simultaneousGestures","requireGesturesToFail","constructor","prepareSingleGesture","gesture","
|
|
1
|
+
{"version":3,"names":["BaseGesture","Gesture","extendRelation","currentRelation","extendWith","undefined","ComposedGesture","gestures","simultaneousGestures","requireGesturesToFail","constructor","prepareSingleGesture","gesture","relationsSnapshot","simultaneousWith","config","requireToFail","newConfig","prepare","initialize","toGestureArray","flatMap","SimultaneousGesture","simultaneousArrays","map","filter","x","i","length","ExclusiveGesture","gestureArrays","concat"],"sourceRoot":"../../../../src","sources":["handlers/gestures/gestureComposition.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -22,5 +22,27 @@ if (Reanimated !== undefined && !Reanimated.setGestureState) {
|
|
|
22
22
|
console.warn(tagMessage('Please use newer version of react-native-reanimated in order to control state of the gestures.'));
|
|
23
23
|
};
|
|
24
24
|
}
|
|
25
|
+
|
|
26
|
+
// Reanimated resolves `getAnimatableRef()` once, when its ref to the wrapped
|
|
27
|
+
// component attaches. Only versions that re-resolve it on update (their
|
|
28
|
+
// `AnimatedComponent` has `_refreshComponentRef`) can be handed a child's host
|
|
29
|
+
// instance that may change, as the legacy `Wrap` does. The class is not
|
|
30
|
+
// exported, so probe it by subpath, as the v3 detector does for
|
|
31
|
+
// `NativeEventsManager`.
|
|
32
|
+
let refreshesAnimatableRef = false;
|
|
33
|
+
try {
|
|
34
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
35
|
+
const AnimatedComponent =
|
|
36
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-unsafe-member-access
|
|
37
|
+
require('react-native-reanimated/src/createAnimatedComponent/AnimatedComponent').default;
|
|
38
|
+
refreshesAnimatableRef =
|
|
39
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
40
|
+
typeof AnimatedComponent?.prototype?._refreshComponentRef === 'function';
|
|
41
|
+
} catch {
|
|
42
|
+
// Reanimated is missing or older; keep handing Reanimated the Wrap itself.
|
|
43
|
+
}
|
|
44
|
+
export function reanimatedRefreshesAnimatableRef() {
|
|
45
|
+
return refreshesAnimatableRef;
|
|
46
|
+
}
|
|
25
47
|
export { Reanimated };
|
|
26
48
|
//# sourceMappingURL=reanimatedWrapper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["tagMessage","Reanimated","require","e","undefined","useSharedValue","setGestureState","console","warn"],"sourceRoot":"../../../../src","sources":["handlers/gestures/reanimatedWrapper.ts"],"mappings":";;AAKA,SAASA,UAAU,QAAQ,aAAa;AAMxC,IAAIC,UAiBS;AAEb,IAAI;EACFA,UAAU,GAAGC,OAAO,CAAC,yBAAyB,CAAC;AACjD,CAAC,CAAC,OAAOC,CAAC,EAAE;EACV;EACA;EACAF,UAAU,GAAGG,SAAS;AACxB;AAEA,IAAI,CAACH,UAAU,EAAEI,cAAc,EAAE;EAC/B;EACA;EACAJ,UAAU,GAAGG,SAAS;AACxB;AAEA,IAAIH,UAAU,KAAKG,SAAS,IAAI,CAACH,UAAU,CAACK,eAAe,EAAE;EAC3D;EACAL,UAAU,CAACK,eAAe,GAAG,MAAM;IACjC,SAAS;;IACTC,OAAO,CAACC,IAAI,CACVR,UAAU,CACR,gGACF,CACF,CAAC;EACH,CAAC;AACH;
|
|
1
|
+
{"version":3,"names":["tagMessage","Reanimated","require","e","undefined","useSharedValue","setGestureState","console","warn","refreshesAnimatableRef","AnimatedComponent","default","prototype","_refreshComponentRef","reanimatedRefreshesAnimatableRef"],"sourceRoot":"../../../../src","sources":["handlers/gestures/reanimatedWrapper.ts"],"mappings":";;AAKA,SAASA,UAAU,QAAQ,aAAa;AAMxC,IAAIC,UAiBS;AAEb,IAAI;EACFA,UAAU,GAAGC,OAAO,CAAC,yBAAyB,CAAC;AACjD,CAAC,CAAC,OAAOC,CAAC,EAAE;EACV;EACA;EACAF,UAAU,GAAGG,SAAS;AACxB;AAEA,IAAI,CAACH,UAAU,EAAEI,cAAc,EAAE;EAC/B;EACA;EACAJ,UAAU,GAAGG,SAAS;AACxB;AAEA,IAAIH,UAAU,KAAKG,SAAS,IAAI,CAACH,UAAU,CAACK,eAAe,EAAE;EAC3D;EACAL,UAAU,CAACK,eAAe,GAAG,MAAM;IACjC,SAAS;;IACTC,OAAO,CAACC,IAAI,CACVR,UAAU,CACR,gGACF,CACF,CAAC;EACH,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIS,sBAAsB,GAAG,KAAK;AAClC,IAAI;EACF;EACA,MAAMC,iBAAiB;EACrB;EACAR,OAAO,CAAC,uEAAuE,CAAC,CAACS,OAAO;EAC1FF,sBAAsB;EACpB;EACA,OAAOC,iBAAiB,EAAEE,SAAS,EAAEC,oBAAoB,KAAK,UAAU;AAC5E,CAAC,CAAC,MAAM;EACN;AAAA;AAGF,OAAO,SAASC,gCAAgCA,CAAA,EAAG;EACjD,OAAOL,sBAAsB;AAC/B;AAEA,SAASR,UAAU","ignoreList":[]}
|
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
import { codegenNativeComponent } from 'react-native';
|
|
2
|
-
import type { HostComponent, ViewProps } from 'react-native';
|
|
2
|
+
import type { CodegenTypes, HostComponent, ViewProps } from 'react-native';
|
|
3
3
|
|
|
4
4
|
export interface RootViewNativeProps extends ViewProps {
|
|
5
5
|
unstable_forceActive?: boolean;
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
// @ts-expect-error WithDefault adds null for codegen, unlike ViewProps.pointerEvents.
|
|
9
|
+
interface NativeProps extends ViewProps {
|
|
10
|
+
pointerEvents?: CodegenTypes.WithDefault<
|
|
11
|
+
'box-none' | 'none' | 'box-only' | 'auto',
|
|
12
|
+
'auto'
|
|
13
|
+
>;
|
|
14
|
+
unstable_forceActive?: boolean;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export default codegenNativeComponent<NativeProps>(
|
|
9
18
|
'RNGestureHandlerRootView'
|
|
10
19
|
) as HostComponent<RootViewNativeProps>;
|
|
@@ -7,6 +7,7 @@ import { isPointerInBounds } from '../utils';
|
|
|
7
7
|
import { MouseButton } from '../../handlers/gestureHandlerCommon';
|
|
8
8
|
import KeyboardEventManager from './KeyboardEventManager';
|
|
9
9
|
import WheelEventManager from './WheelEventManager';
|
|
10
|
+
import PanGestureHandler from '../handlers/PanGestureHandler';
|
|
10
11
|
export class GestureHandlerWebDelegate {
|
|
11
12
|
isInitialized = false;
|
|
12
13
|
eventManagers = [];
|
|
@@ -26,12 +27,15 @@ export class GestureHandlerWebDelegate {
|
|
|
26
27
|
touchAction: this.view.style.touchAction
|
|
27
28
|
};
|
|
28
29
|
const config = handler.config;
|
|
30
|
+
const shouldSendWheelEvents = handler instanceof PanGestureHandler;
|
|
29
31
|
this.setUserSelect(config.enabled);
|
|
30
32
|
this.setTouchAction(config.enabled);
|
|
31
33
|
this.setContextMenu(config.enabled);
|
|
32
34
|
this.eventManagers.push(new PointerEventManager(this.view));
|
|
33
35
|
this.eventManagers.push(new KeyboardEventManager(this.view));
|
|
34
|
-
|
|
36
|
+
if (shouldSendWheelEvents) {
|
|
37
|
+
this.eventManagers.push(new WheelEventManager(this.view));
|
|
38
|
+
}
|
|
35
39
|
this.eventManagers.forEach(manager => this.gestureHandler.attachEventManager(manager));
|
|
36
40
|
}
|
|
37
41
|
isPointerInBounds({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["findNodeHandle","PointerEventManager","State","isPointerInBounds","MouseButton","KeyboardEventManager","WheelEventManager","GestureHandlerWebDelegate","isInitialized","eventManagers","defaultViewStyles","userSelect","touchAction","init","viewRef","handler","Error","handlerTag","gestureHandler","view","style","config","setUserSelect","enabled","setTouchAction","setContextMenu","push","forEach","manager","attachEventManager","x","y","measureView","rect","getBoundingClientRect","pageX","left","pageY","top","width","height","reset","resetManager","tryResetCursor","activeCursor","state","ACTIVE","cursor","shouldDisableContextMenu","enableContextMenu","undefined","isButtonInConfig","RIGHT","addContextMenuListeners","addEventListener","disableContextMenu","removeContextMenuListeners","removeEventListener","e","preventDefault","stopPropagation","isHandlerEnabled","onEnabledChange","registerListeners","unregisterListeners","onBegin","onActivate","onEnd","onCancel","onFail","destroy","_view","value"],"sourceRoot":"../../../../src","sources":["web/tools/GestureHandlerWebDelegate.ts"],"mappings":";;AAAA,OAAOA,cAAc,MAAM,sBAAsB;AAMjD,OAAOC,mBAAmB,MAAM,uBAAuB;AACvD,SAASC,KAAK,QAAQ,aAAa;AACnC,SAASC,iBAAiB,QAAQ,UAAU;AAG5C,SAASC,WAAW,QAAQ,qCAAqC;AACjE,OAAOC,oBAAoB,MAAM,wBAAwB;AACzD,OAAOC,iBAAiB,MAAM,qBAAqB;
|
|
1
|
+
{"version":3,"names":["findNodeHandle","PointerEventManager","State","isPointerInBounds","MouseButton","KeyboardEventManager","WheelEventManager","PanGestureHandler","GestureHandlerWebDelegate","isInitialized","eventManagers","defaultViewStyles","userSelect","touchAction","init","viewRef","handler","Error","handlerTag","gestureHandler","view","style","config","shouldSendWheelEvents","setUserSelect","enabled","setTouchAction","setContextMenu","push","forEach","manager","attachEventManager","x","y","measureView","rect","getBoundingClientRect","pageX","left","pageY","top","width","height","reset","resetManager","tryResetCursor","activeCursor","state","ACTIVE","cursor","shouldDisableContextMenu","enableContextMenu","undefined","isButtonInConfig","RIGHT","addContextMenuListeners","addEventListener","disableContextMenu","removeContextMenuListeners","removeEventListener","e","preventDefault","stopPropagation","isHandlerEnabled","onEnabledChange","registerListeners","unregisterListeners","onBegin","onActivate","onEnd","onCancel","onFail","destroy","_view","value"],"sourceRoot":"../../../../src","sources":["web/tools/GestureHandlerWebDelegate.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,17 +4,16 @@ import { EventTypes } from '../interfaces';
|
|
|
4
4
|
import EventManager from './EventManager';
|
|
5
5
|
import { PointerType } from '../../PointerType';
|
|
6
6
|
export default class KeyboardEventManager extends EventManager {
|
|
7
|
-
static activationKeys = ['Enter', ' '];
|
|
8
|
-
static cancelationKeys = ['Tab'];
|
|
9
|
-
|
|
7
|
+
static activationKeys = new Set(['Enter', ' ']);
|
|
8
|
+
static cancelationKeys = new Set(['Tab']);
|
|
9
|
+
keyPointer = null;
|
|
10
10
|
static registeredStaticListeners = false;
|
|
11
11
|
static instances = new Set();
|
|
12
12
|
static keyUpStaticCallback = event => {
|
|
13
13
|
// We need a global listener, as in some cases, keyUp event gets stop-propagated.
|
|
14
14
|
// Then, if we used only component-level listeners the gesture would never end,
|
|
15
15
|
// causing other gestues to fail.
|
|
16
|
-
|
|
17
|
-
if (this.activationKeys.indexOf(event.key) === -1) {
|
|
16
|
+
if (!this.activationKeys.has(event.key)) {
|
|
18
17
|
return;
|
|
19
18
|
}
|
|
20
19
|
this.instances.forEach(item => {
|
|
@@ -22,20 +21,25 @@ export default class KeyboardEventManager extends EventManager {
|
|
|
22
21
|
});
|
|
23
22
|
};
|
|
24
23
|
keyDownCallback = event => {
|
|
25
|
-
if (
|
|
26
|
-
|
|
24
|
+
if (this.keyPointer !== null) {
|
|
25
|
+
if (KeyboardEventManager.cancelationKeys.has(event.key)) {
|
|
26
|
+
this.dispatchEvent(event, EventTypes.CANCEL);
|
|
27
|
+
this.keyPointer = null;
|
|
28
|
+
}
|
|
27
29
|
return;
|
|
28
30
|
}
|
|
29
|
-
if (KeyboardEventManager.activationKeys.
|
|
31
|
+
if (!KeyboardEventManager.activationKeys.has(event.key) || event.repeat) {
|
|
30
32
|
return;
|
|
31
33
|
}
|
|
34
|
+
this.keyPointer = event.key;
|
|
32
35
|
this.dispatchEvent(event, EventTypes.DOWN);
|
|
33
36
|
};
|
|
34
37
|
onKeyUp = event => {
|
|
35
|
-
if (
|
|
38
|
+
if (this.keyPointer !== event.key) {
|
|
36
39
|
return;
|
|
37
40
|
}
|
|
38
41
|
this.dispatchEvent(event, EventTypes.UP);
|
|
42
|
+
this.keyPointer = null;
|
|
39
43
|
};
|
|
40
44
|
dispatchEvent(event, eventType) {
|
|
41
45
|
if (!(event.target instanceof HTMLElement)) {
|
|
@@ -44,15 +48,12 @@ export default class KeyboardEventManager extends EventManager {
|
|
|
44
48
|
const adaptedEvent = this.mapEvent(event, eventType);
|
|
45
49
|
switch (eventType) {
|
|
46
50
|
case EventTypes.UP:
|
|
47
|
-
this.isPressed = false;
|
|
48
51
|
this.onPointerUp(adaptedEvent);
|
|
49
52
|
break;
|
|
50
53
|
case EventTypes.DOWN:
|
|
51
|
-
this.isPressed = true;
|
|
52
54
|
this.onPointerDown(adaptedEvent);
|
|
53
55
|
break;
|
|
54
56
|
case EventTypes.CANCEL:
|
|
55
|
-
this.isPressed = false;
|
|
56
57
|
this.onPointerCancel(adaptedEvent);
|
|
57
58
|
break;
|
|
58
59
|
}
|
|
@@ -77,6 +78,10 @@ export default class KeyboardEventManager extends EventManager {
|
|
|
77
78
|
KeyboardEventManager.registeredStaticListeners = false;
|
|
78
79
|
}
|
|
79
80
|
}
|
|
81
|
+
resetManager() {
|
|
82
|
+
super.resetManager();
|
|
83
|
+
this.keyPointer = null;
|
|
84
|
+
}
|
|
80
85
|
mapEvent(event, eventType) {
|
|
81
86
|
const viewRect = event.target.getBoundingClientRect();
|
|
82
87
|
const viewportPosition = {
|