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.
Files changed (100) hide show
  1. package/android/paper/src/main/java/com/facebook/react/viewmanagers/RNGestureHandlerRootViewManagerDelegate.java +3 -0
  2. package/android/paper/src/main/java/com/facebook/react/viewmanagers/RNGestureHandlerRootViewManagerInterface.java +2 -0
  3. package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandler.kt +9 -3
  4. package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerOrchestrator.kt +5 -8
  5. package/android/src/main/java/com/swmansion/gesturehandler/core/HoverGestureHandler.kt +1 -0
  6. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt +2 -1
  7. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootViewManager.kt +6 -0
  8. package/apple/RNGestureHandler.mm +15 -3
  9. package/apple/RNGestureHandlerButtonComponentView.mm +6 -0
  10. package/lib/commonjs/handlers/createHandler.js +1 -1
  11. package/lib/commonjs/handlers/createHandler.js.map +1 -1
  12. package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.js +10 -0
  13. package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.js.map +1 -1
  14. package/lib/commonjs/handlers/gestures/GestureDetector/attachHandlers.js +8 -1
  15. package/lib/commonjs/handlers/gestures/GestureDetector/attachHandlers.js.map +1 -1
  16. package/lib/commonjs/handlers/gestures/GestureDetector/index.js +5 -1
  17. package/lib/commonjs/handlers/gestures/GestureDetector/index.js.map +1 -1
  18. package/lib/commonjs/handlers/gestures/GestureDetector/updateHandlers.js +7 -0
  19. package/lib/commonjs/handlers/gestures/GestureDetector/updateHandlers.js.map +1 -1
  20. package/lib/commonjs/handlers/gestures/GestureDetector/useMountReactions.js +22 -3
  21. package/lib/commonjs/handlers/gestures/GestureDetector/useMountReactions.js.map +1 -1
  22. package/lib/commonjs/handlers/gestures/GestureDetector/utils.js +35 -6
  23. package/lib/commonjs/handlers/gestures/GestureDetector/utils.js.map +1 -1
  24. package/lib/commonjs/handlers/gestures/gesture.js +8 -0
  25. package/lib/commonjs/handlers/gestures/gesture.js.map +1 -1
  26. package/lib/commonjs/handlers/gestures/gestureComposition.js +14 -2
  27. package/lib/commonjs/handlers/gestures/gestureComposition.js.map +1 -1
  28. package/lib/commonjs/handlers/gestures/reanimatedWrapper.js +23 -0
  29. package/lib/commonjs/handlers/gestures/reanimatedWrapper.js.map +1 -1
  30. package/lib/commonjs/specs/RNGestureHandlerRootViewNativeComponent.ts +11 -2
  31. package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js +5 -1
  32. package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js.map +1 -1
  33. package/lib/commonjs/web/tools/KeyboardEventManager.js +17 -12
  34. package/lib/commonjs/web/tools/KeyboardEventManager.js.map +1 -1
  35. package/lib/commonjs/web/tools/WheelEventManager.js +15 -5
  36. package/lib/commonjs/web/tools/WheelEventManager.js.map +1 -1
  37. package/lib/module/handlers/createHandler.js +1 -1
  38. package/lib/module/handlers/createHandler.js.map +1 -1
  39. package/lib/module/handlers/gestures/GestureDetector/Wrap.js +12 -2
  40. package/lib/module/handlers/gestures/GestureDetector/Wrap.js.map +1 -1
  41. package/lib/module/handlers/gestures/GestureDetector/attachHandlers.js +9 -2
  42. package/lib/module/handlers/gestures/GestureDetector/attachHandlers.js.map +1 -1
  43. package/lib/module/handlers/gestures/GestureDetector/index.js +5 -1
  44. package/lib/module/handlers/gestures/GestureDetector/index.js.map +1 -1
  45. package/lib/module/handlers/gestures/GestureDetector/updateHandlers.js +8 -1
  46. package/lib/module/handlers/gestures/GestureDetector/updateHandlers.js.map +1 -1
  47. package/lib/module/handlers/gestures/GestureDetector/useMountReactions.js +22 -3
  48. package/lib/module/handlers/gestures/GestureDetector/useMountReactions.js.map +1 -1
  49. package/lib/module/handlers/gestures/GestureDetector/utils.js +34 -6
  50. package/lib/module/handlers/gestures/GestureDetector/utils.js.map +1 -1
  51. package/lib/module/handlers/gestures/gesture.js +8 -0
  52. package/lib/module/handlers/gestures/gesture.js.map +1 -1
  53. package/lib/module/handlers/gestures/gestureComposition.js +14 -2
  54. package/lib/module/handlers/gestures/gestureComposition.js.map +1 -1
  55. package/lib/module/handlers/gestures/reanimatedWrapper.js +22 -0
  56. package/lib/module/handlers/gestures/reanimatedWrapper.js.map +1 -1
  57. package/lib/module/specs/RNGestureHandlerRootViewNativeComponent.ts +11 -2
  58. package/lib/module/web/tools/GestureHandlerWebDelegate.js +5 -1
  59. package/lib/module/web/tools/GestureHandlerWebDelegate.js.map +1 -1
  60. package/lib/module/web/tools/KeyboardEventManager.js +17 -12
  61. package/lib/module/web/tools/KeyboardEventManager.js.map +1 -1
  62. package/lib/module/web/tools/WheelEventManager.js +15 -5
  63. package/lib/module/web/tools/WheelEventManager.js.map +1 -1
  64. package/lib/typescript/handlers/createHandler.d.ts.map +1 -1
  65. package/lib/typescript/handlers/gestures/GestureDetector/Wrap.d.ts +1 -0
  66. package/lib/typescript/handlers/gestures/GestureDetector/Wrap.d.ts.map +1 -1
  67. package/lib/typescript/handlers/gestures/GestureDetector/attachHandlers.d.ts.map +1 -1
  68. package/lib/typescript/handlers/gestures/GestureDetector/index.d.ts.map +1 -1
  69. package/lib/typescript/handlers/gestures/GestureDetector/types.d.ts +1 -0
  70. package/lib/typescript/handlers/gestures/GestureDetector/types.d.ts.map +1 -1
  71. package/lib/typescript/handlers/gestures/GestureDetector/updateHandlers.d.ts.map +1 -1
  72. package/lib/typescript/handlers/gestures/GestureDetector/useMountReactions.d.ts.map +1 -1
  73. package/lib/typescript/handlers/gestures/GestureDetector/utils.d.ts +5 -4
  74. package/lib/typescript/handlers/gestures/GestureDetector/utils.d.ts.map +1 -1
  75. package/lib/typescript/handlers/gestures/gesture.d.ts +4 -0
  76. package/lib/typescript/handlers/gestures/gesture.d.ts.map +1 -1
  77. package/lib/typescript/handlers/gestures/gestureComposition.d.ts.map +1 -1
  78. package/lib/typescript/handlers/gestures/reanimatedWrapper.d.ts +1 -0
  79. package/lib/typescript/handlers/gestures/reanimatedWrapper.d.ts.map +1 -1
  80. package/lib/typescript/specs/RNGestureHandlerRootViewNativeComponent.d.ts.map +1 -1
  81. package/lib/typescript/web/tools/GestureHandlerWebDelegate.d.ts.map +1 -1
  82. package/lib/typescript/web/tools/KeyboardEventManager.d.ts +2 -1
  83. package/lib/typescript/web/tools/KeyboardEventManager.d.ts.map +1 -1
  84. package/lib/typescript/web/tools/WheelEventManager.d.ts.map +1 -1
  85. package/package.json +1 -1
  86. package/src/handlers/createHandler.tsx +4 -1
  87. package/src/handlers/gestures/GestureDetector/Wrap.tsx +17 -1
  88. package/src/handlers/gestures/GestureDetector/attachHandlers.ts +11 -2
  89. package/src/handlers/gestures/GestureDetector/index.tsx +4 -0
  90. package/src/handlers/gestures/GestureDetector/types.ts +3 -0
  91. package/src/handlers/gestures/GestureDetector/updateHandlers.ts +8 -0
  92. package/src/handlers/gestures/GestureDetector/useMountReactions.ts +29 -4
  93. package/src/handlers/gestures/GestureDetector/utils.ts +42 -10
  94. package/src/handlers/gestures/gesture.ts +11 -0
  95. package/src/handlers/gestures/gestureComposition.ts +15 -2
  96. package/src/handlers/gestures/reanimatedWrapper.ts +23 -0
  97. package/src/specs/RNGestureHandlerRootViewNativeComponent.ts +11 -2
  98. package/src/web/tools/GestureHandlerWebDelegate.ts +6 -1
  99. package/src/web/tools/KeyboardEventManager.ts +20 -18
  100. 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","attachedGestures","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,QACR,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;EACAX,gBAAgB,CAAC,MAAM;IACrB,IAAI,CAACM,eAAe,CAACM,SAAS,EAAE;MAC9B;IACF;IACAL,aAAa,CAACM,OAAO,CAAC,CAAC;EACzB,CAAC,CAAC;EAEF,KAAK,MAAMC,OAAO,IAAIN,gBAAgB,EAAE;IACtCN,gCAAgC,CAACY,OAAO,CAAC;IACzCnB,sBAAsB,CAACoB,oBAAoB,CACzCD,OAAO,CAACE,WAAW,EACnBF,OAAO,CAACG,UAAU,EAClBrB,YAAY,CAACkB,OAAO,CAACI,MAAM,EAAEf,aAAa,CAC5C,CAAC;IAEDT,eAAe,CAACoB,OAAO,CAACG,UAAU,EAAEH,OAAO,EAAEA,OAAO,CAACI,MAAM,CAACC,MAAM,CAAC;EACrE;;EAEA;EACA;EACAnB,gBAAgB,CAAC,MAAM;IACrB,IAAI,CAACM,eAAe,CAACM,SAAS,EAAE;MAC9B;IACF;IACA,KAAK,MAAME,OAAO,IAAIN,gBAAgB,EAAE;MACtCb,sBAAsB,CAACyB,oBAAoB,CACzCN,OAAO,CAACG,UAAU,EAClBrB,YAAY,CACVkB,OAAO,CAACI,MAAM,EACdf,aAAa,EACbF,uBAAuB,CAACa,OAAO,CACjC,CACF,CAAC;IACH;IAEAjB,uBAAuB,CAAC,CAAC;EAC3B,CAAC,CAAC;EAEF,KAAK,MAAMwB,OAAO,IAAIb,gBAAgB,EAAE;IACtC,MAAMc,UAAU,GAAGD,OAAO,CAACE,mBAAmB,GAC1CzB,UAAU,CAAC0B,kBAAkB,GAC7B1B,UAAU,CAAC2B,mBAAmB;IAElC,IAAI1B,QAAQ,CAAC2B,EAAE,KAAK,KAAK,EAAE;MAEvB/B,sBAAsB,CAACgC,oBAAoB,CAE3CN,OAAO,CAACJ,UAAU,EAClBR,OAAO,EACPX,UAAU,CAAC8B,mBAAmB;MAAE;MAChClB,mBACF,CAAC;IACH,CAAC,MAAM;MACLf,sBAAsB,CAACgC,oBAAoB,CACzCN,OAAO,CAACJ,UAAU,EAClBR,OAAO,EACPa,UACF,CAAC;IACH;IAEAlB,aAAa,CAACyB,gBAAgB,CAACR,OAAO,CAAC;EACzC;EAEAf,eAAe,CAACwB,gBAAgB,GAAGtB,gBAAgB;EAEnD,IAAIF,eAAe,CAACyB,gBAAgB,EAAE;IACpC,MAAMC,iBAAiB,GAAIC,CAAc,IAAKA,CAAC,CAACV,mBAAmB;IAEnEjB,eAAe,CAACyB,gBAAgB,CAACG,KAAK,GAAG1B,gBAAgB,CACtD2B,MAAM,CAACH,iBAAiB,CAAC,CACzBI,GAAG,CAAEH,CAAC,IAAKA,CAAC,CAACI,QAAQ,CAErB;EACL;AACF","ignoreList":[]}
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":"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","ignoreList":[]}
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,QACR,SAAS;AAEhB,OAAO,SAASC,cAAcA,CAC5BC,eAAqC,EACrCC,aAA4C,EAC5CC,WAA0B,EAC1B;EACAD,aAAa,CAACE,OAAO,CAAC,CAAC;EAEvB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,WAAW,CAACG,MAAM,EAAED,CAAC,EAAE,EAAE;IAC3C,MAAME,OAAO,GAAGN,eAAe,CAACO,gBAAgB,CAACH,CAAC,CAAC;IACnDP,gCAAgC,CAACS,OAAO,CAAC;;IAEzC;IACA;IACA,IAAIJ,WAAW,CAACE,CAAC,CAAC,CAACI,UAAU,KAAKF,OAAO,CAACE,UAAU,EAAE;MACpDN,WAAW,CAACE,CAAC,CAAC,CAACI,UAAU,GAAGF,OAAO,CAACE,UAAU;MAC9CN,WAAW,CAACE,CAAC,CAAC,CAACK,QAAQ,CAACD,UAAU,GAAGF,OAAO,CAACE,UAAU;IACzD;EACF;;EAEA;EACA,MAAMD,gBAAgB,GAAGP,eAAe,CAACO,gBAAgB;;EAEzD;EACA;EACA;EACAZ,gBAAgB,CAAC,MAAM;IACrB,IAAI,CAACK,eAAe,CAACU,SAAS,EAAE;MAC9B;IACF;;IAEA;IACA,IAAIH,gBAAgB,KAAKP,eAAe,CAACO,gBAAgB,EAAE;MACzD;IACF;;IAEA;IACA,IAAII,6BAA6B,GAC/BJ,gBAAgB,CAACF,MAAM,KAAKH,WAAW,CAACG,MAAM;IAEhD,KAAK,IAAID,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,WAAW,CAACG,MAAM,EAAED,CAAC,EAAE,EAAE;MAC3C,MAAME,OAAO,GAAGC,gBAAgB,CAACH,CAAC,CAAC;;MAEnC;MACA;MACA,IACEE,OAAO,CAACG,QAAQ,CAACG,SAAS,KAAKV,WAAW,CAACE,CAAC,CAAC,CAACK,QAAQ,CAACG,SAAS,KAC/DV,WAAW,CAACE,CAAC,CAAC,CAACS,mBAAmB,IAAIP,OAAO,CAACO,mBAAmB,CAAC,EACnE;QACAF,6BAA6B,GAAG,IAAI;MACtC;MAEAL,OAAO,CAACQ,MAAM,GAAGZ,WAAW,CAACE,CAAC,CAAC,CAACU,MAAM;MACtCR,OAAO,CAACG,QAAQ,GAAGP,WAAW,CAACE,CAAC,CAAC,CAACK,QAAQ;MAE1CjB,sBAAsB,CAACuB,oBAAoB,CACzCT,OAAO,CAACE,UAAU,EAClBf,YAAY,CACVa,OAAO,CAACQ,MAAM,EACdhB,aAAa,EACbF,uBAAuB,CAACU,OAAO,CACjC,CACF,CAAC;MAEDf,eAAe,CAACe,OAAO,CAACE,UAAU,EAAEF,OAAO,EAAEA,OAAO,CAACQ,MAAM,CAACE,MAAM,CAAC;IACrE;IAEA,IAAIhB,eAAe,CAACiB,gBAAgB,IAAIN,6BAA6B,EAAE;MACrE,MAAMO,gBAAgB,GAAGX,gBAAgB,CACtCY,MAAM,CAAEC,CAAC,IAAKA,CAAC,CAACP,mBAAmB,CAAC,CAAC;MAAA,CACrCQ,GAAG,CAAED,CAAC,IAAKA,CAAC,CAACX,QAAQ,CAErB;MAEHT,eAAe,CAACiB,gBAAgB,CAACK,KAAK,GAAGJ,gBAAgB;IAC3D;IAEAxB,uBAAuB,CAAC,CAAC;EAC3B,CAAC,CAAC;AACJ","ignoreList":[]}
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 tag of transformIntoHandlerTags(relation)) {
11
- if (tag === gesture.handlerTag) {
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":["transformIntoHandlerTags","MountRegistry","useEffect","shouldUpdateDetector","relation","gesture","undefined","tag","handlerTag","useMountReactions","updateDetector","state","addMountListener","isMounted","attachedGesture","attachedGestures","blocksHandlers","config","requireToFail","simultaneousWith"],"sourceRoot":"../../../../../src","sources":["handlers/gestures/GestureDetector/useMountReactions.ts"],"mappings":";;AAAA,SAASA,wBAAwB,QAAQ,aAAa;AACtD,SAASC,aAAa,QAAQ,wBAAwB;AAEtD,SAASC,SAAS,QAAQ,OAAO;AAGjC,SAASC,oBAAoBA,CAC3BC,QAAkC,EAClCC,OAA+B,EAC/B;EACA,IAAID,QAAQ,KAAKE,SAAS,EAAE;IAC1B,OAAO,KAAK;EACd;EAEA,KAAK,MAAMC,GAAG,IAAIP,wBAAwB,CAACI,QAAQ,CAAC,EAAE;IACpD,IAAIG,GAAG,KAAKF,OAAO,CAACG,UAAU,EAAE;MAC9B,OAAO,IAAI;IACb;EACF;EAEA,OAAO,KAAK;AACd;AAEA,OAAO,SAASC,iBAAiBA,CAC/BC,cAA0B,EAC1BC,KAA2B,EAC3B;EACAT,SAAS,CAAC,MAAM;IACd,OAAOD,aAAa,CAACW,gBAAgB,CAAEP,OAAO,IAAK;MACjD;MACA;MACA,IAAI,CAACM,KAAK,CAACE,SAAS,EAAE;QACpB;MACF;;MAEA;MACA;MACA;MACA,KAAK,MAAMC,eAAe,IAAIH,KAAK,CAACI,gBAAgB,EAAE;QACpD,MAAMC,cAAc,GAAGF,eAAe,CAACG,MAAM,CAACD,cAAc;QAC5D,MAAME,aAAa,GAAGJ,eAAe,CAACG,MAAM,CAACC,aAAa;QAC1D,MAAMC,gBAAgB,GAAGL,eAAe,CAACG,MAAM,CAACE,gBAAgB;QAEhE,IACEhB,oBAAoB,CAACa,cAAc,EAAEX,OAAO,CAAC,IAC7CF,oBAAoB,CAACe,aAAa,EAAEb,OAAO,CAAC,IAC5CF,oBAAoB,CAACgB,gBAAgB,EAAEd,OAAO,CAAC,EAC/C;UACAK,cAAc,CAAC,CAAC;;UAEhB;UACA;QACF;MACF;IACF,CAAC,CAAC;EACJ,CAAC,EAAE,CAACA,cAAc,EAAEC,KAAK,CAAC,CAAC;AAC7B","ignoreList":[]}
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
- gesture.config.requireToFail = extractValidHandlerTags(gesture.config.requireToFail);
44
- gesture.config.simultaneousWith = extractValidHandlerTags(gesture.config.simultaneousWith);
45
- gesture.config.blocksHandlers = extractValidHandlerTags(gesture.config.blocksHandlers);
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: gesture.config.requireToFail,
48
- simultaneousHandlers: gesture.config.simultaneousWith,
49
- blocksHandlers: gesture.config.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","extractGestureRelations","gesture","config","requireToFail","simultaneousWith","blocksHandlers","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":[]}
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":"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","ignoreList":[]}
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(newConfig.simultaneousWith, simultaneousGestures);
28
- newConfig.requireToFail = extendRelation(newConfig.requireToFail, requireGesturesToFail);
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","newConfig","config","simultaneousWith","requireToFail","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":[]}
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":";;AAAA,SAASA,WAAW,EAAEC,OAAO,QAAiC,WAAW;AAEzE,SAASC,cAAcA,CACrBC,eAAyC,EACzCC,UAAyB,EACzB;EACA,IAAID,eAAe,KAAKE,SAAS,EAAE;IACjC,OAAO,CAAC,GAAGD,UAAU,CAAC;EACxB,CAAC,MAAM;IACL,OAAO,CAAC,GAAGD,eAAe,EAAE,GAAGC,UAAU,CAAC;EAC5C;AACF;AAEA,OAAO,MAAME,eAAe,SAASL,OAAO,CAAC;EACjCM,QAAQ,GAAc,EAAE;EACxBC,oBAAoB,GAAkB,EAAE;EACxCC,qBAAqB,GAAkB,EAAE;EAEnDC,WAAWA,CAAC,GAAGH,QAAmB,EAAE;IAClC,KAAK,CAAC,CAAC;IACP,IAAI,CAACA,QAAQ,GAAGA,QAAQ;EAC1B;EAEUI,oBAAoBA,CAC5BC,OAAgB,EAChBJ,oBAAmC,EACnCC,qBAAoC,EACpC;IACA,IAAIG,OAAO,YAAYZ,WAAW,EAAE;MAClC;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACAY,OAAO,CAACC,iBAAiB,KAAK;QAC5BC,gBAAgB,EAAEF,OAAO,CAACG,MAAM,CAACD,gBAAgB;QACjDE,aAAa,EAAEJ,OAAO,CAACG,MAAM,CAACC;MAChC,CAAC;MAED,MAAMC,SAAS,GAAG;QAAE,GAAGL,OAAO,CAACG;MAAO,CAAC;;MAEvC;MACA;MACAE,SAAS,CAACH,gBAAgB,GAAGZ,cAAc,CACzCU,OAAO,CAACC,iBAAiB,CAACC,gBAAgB,EAC1CN,oBACF,CAAC;MACDS,SAAS,CAACD,aAAa,GAAGd,cAAc,CACtCU,OAAO,CAACC,iBAAiB,CAACG,aAAa,EACvCP,qBACF,CAAC;MAEDG,OAAO,CAACG,MAAM,GAAGE,SAAS;IAC5B,CAAC,MAAM,IAAIL,OAAO,YAAYN,eAAe,EAAE;MAC7CM,OAAO,CAACJ,oBAAoB,GAAGA,oBAAoB;MACnDI,OAAO,CAACH,qBAAqB,GAAGA,qBAAqB;MACrDG,OAAO,CAACM,OAAO,CAAC,CAAC;IACnB;EACF;EAEAA,OAAOA,CAAA,EAAG;IACR,KAAK,MAAMN,OAAO,IAAI,IAAI,CAACL,QAAQ,EAAE;MACnC,IAAI,CAACI,oBAAoB,CACvBC,OAAO,EACP,IAAI,CAACJ,oBAAoB,EACzB,IAAI,CAACC,qBACP,CAAC;IACH;EACF;EAEAU,UAAUA,CAAA,EAAG;IACX,KAAK,MAAMP,OAAO,IAAI,IAAI,CAACL,QAAQ,EAAE;MACnCK,OAAO,CAACO,UAAU,CAAC,CAAC;IACtB;EACF;EAEAC,cAAcA,CAAA,EAAkB;IAC9B,OAAO,IAAI,CAACb,QAAQ,CAACc,OAAO,CAAET,OAAO,IAAKA,OAAO,CAACQ,cAAc,CAAC,CAAC,CAAC;EACrE;AACF;AAEA,OAAO,MAAME,mBAAmB,SAAShB,eAAe,CAAC;EACvDY,OAAOA,CAAA,EAAG;IACR;IACA;IACA,MAAMK,kBAAkB,GAAG,IAAI,CAAChB,QAAQ,CAACiB,GAAG,CAAEZ,OAAO;IACnD;IACA,IAAI,CAACL;IACH;IAAA,CACCkB,MAAM,CAAEC,CAAC,IAAKA,CAAC,KAAKd,OAAO;IAC5B;IACA;IACA;IACA;IAAA,CACCS,OAAO,CAAEK,CAAC,IAAKA,CAAC,CAACN,cAAc,CAAC,CAAC,CACtC,CAAC;IAED,KAAK,IAAIO,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAACpB,QAAQ,CAACqB,MAAM,EAAED,CAAC,EAAE,EAAE;MAC7C,IAAI,CAAChB,oBAAoB,CACvB,IAAI,CAACJ,QAAQ,CAACoB,CAAC,CAAC,EAChBJ,kBAAkB,CAACI,CAAC,CAAC,EACrB,IAAI,CAAClB,qBACP,CAAC;IACH;EACF;AACF;AAEA,OAAO,MAAMoB,gBAAgB,SAASvB,eAAe,CAAC;EACpDY,OAAOA,CAAA,EAAG;IACR;IACA;IACA,MAAMY,aAAa,GAAG,IAAI,CAACvB,QAAQ,CAACiB,GAAG,CAAEZ,OAAO,IAC9CA,OAAO,CAACQ,cAAc,CAAC,CACzB,CAAC;IAED,IAAIJ,aAA4B,GAAG,EAAE;IAErC,KAAK,IAAIW,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAACpB,QAAQ,CAACqB,MAAM,EAAED,CAAC,EAAE,EAAE;MAC7C,IAAI,CAAChB,oBAAoB,CACvB,IAAI,CAACJ,QAAQ,CAACoB,CAAC,CAAC,EAChB,IAAI,CAACnB,oBAAoB,EACzB,IAAI,CAACC,qBAAqB,CAACsB,MAAM,CAACf,aAAa,CACjD,CAAC;;MAED;MACAA,aAAa,GAAGA,aAAa,CAACe,MAAM,CAACD,aAAa,CAACH,CAAC,CAAC,CAAC;IACxD;EACF;AACF","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;AAEA,SAASC,UAAU","ignoreList":[]}
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
- export default codegenNativeComponent<RootViewNativeProps>(
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
- this.eventManagers.push(new WheelEventManager(this.view));
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":"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","ignoreList":[]}
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
- isPressed = false;
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 (KeyboardEventManager.cancelationKeys.indexOf(event.key) !== -1 && this.isPressed) {
26
- this.dispatchEvent(event, EventTypes.CANCEL);
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.indexOf(event.key) === -1) {
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 (KeyboardEventManager.activationKeys.indexOf(event.key) === -1 || !this.isPressed) {
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 = {