react-native-gesture-handler 3.0.0-beta.4 → 3.0.0-beta.5
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/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerOrchestrator.kt +12 -4
- package/android/src/main/java/com/swmansion/gesturehandler/core/NativeViewGestureHandler.kt +6 -2
- package/android/src/main/java/com/swmansion/gesturehandler/react/Extensions.kt +21 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +113 -49
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerDetectorView.kt +75 -98
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +7 -10
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRegistry.kt +64 -2
- package/apple/RNGestureHandler.mm +50 -27
- package/apple/RNGestureHandlerButton.h +4 -2
- package/apple/RNGestureHandlerButton.mm +106 -27
- package/apple/RNGestureHandlerButtonComponentView.mm +17 -2
- package/apple/RNGestureHandlerDetector.mm +99 -75
- package/apple/RNGestureHandlerModule.mm +11 -14
- package/apple/RNGestureHandlerRegistry.h +14 -0
- package/apple/RNGestureHandlerRegistry.m +56 -0
- package/lib/module/RNGestureHandlerModule.web.js +5 -1
- package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/module/components/GestureButtons.js +16 -5
- package/lib/module/components/GestureButtons.js.map +1 -1
- package/lib/module/components/GestureHandlerButton.js.map +1 -1
- package/lib/module/components/GestureHandlerButton.web.js +63 -23
- package/lib/module/components/GestureHandlerButton.web.js.map +1 -1
- package/lib/module/components/Pressable/Pressable.js +1 -0
- package/lib/module/components/Pressable/Pressable.js.map +1 -1
- package/lib/module/components/ReanimatedDrawerLayout.js.map +1 -1
- package/lib/module/components/ReanimatedSwipeable/ReanimatedSwipeable.js +38 -5
- package/lib/module/components/ReanimatedSwipeable/ReanimatedSwipeable.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/useDetectorUpdater.js +1 -2
- package/lib/module/handlers/gestures/GestureDetector/useDetectorUpdater.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/utils.js +0 -47
- package/lib/module/handlers/gestures/GestureDetector/utils.js.map +1 -1
- package/lib/module/handlers/gestures/reanimatedWrapper.js +14 -2
- package/lib/module/handlers/gestures/reanimatedWrapper.js.map +1 -1
- package/lib/module/mocks/module.js +3 -2
- package/lib/module/mocks/module.js.map +1 -1
- package/lib/module/specs/NativeRNGestureHandlerModule.js.map +1 -1
- package/lib/module/specs/RNGestureHandlerButtonNativeComponent.ts +28 -13
- package/lib/module/v3/NativeProxy.js +5 -3
- package/lib/module/v3/NativeProxy.js.map +1 -1
- package/lib/module/v3/NativeProxy.web.js +2 -2
- package/lib/module/v3/NativeProxy.web.js.map +1 -1
- package/lib/module/v3/components/GestureButtons.js +8 -3
- package/lib/module/v3/components/GestureButtons.js.map +1 -1
- package/lib/module/v3/components/Touchable/Touchable.js +53 -4
- package/lib/module/v3/components/Touchable/Touchable.js.map +1 -1
- package/lib/module/v3/detectors/HostGestureDetector.web.js +178 -59
- package/lib/module/v3/detectors/HostGestureDetector.web.js.map +1 -1
- package/lib/module/v3/detectors/NativeDetector.js +3 -2
- package/lib/module/v3/detectors/NativeDetector.js.map +1 -1
- package/lib/module/v3/detectors/VirtualDetector/InterceptingGestureDetector.js +3 -4
- package/lib/module/v3/detectors/VirtualDetector/InterceptingGestureDetector.js.map +1 -1
- package/lib/module/v3/detectors/VirtualDetector/VirtualDetector.js +2 -2
- package/lib/module/v3/detectors/VirtualDetector/VirtualDetector.js.map +1 -1
- package/lib/module/v3/detectors/useGestureRelationsUpdater.js +23 -0
- package/lib/module/v3/detectors/useGestureRelationsUpdater.js.map +1 -0
- package/lib/module/v3/detectors/utils.js +10 -8
- package/lib/module/v3/detectors/utils.js.map +1 -1
- package/lib/module/v3/hooks/useGesture.js +3 -18
- package/lib/module/v3/hooks/useGesture.js.map +1 -1
- package/lib/module/v3/hooks/utils/configUtils.js +1 -3
- package/lib/module/v3/hooks/utils/configUtils.js.map +1 -1
- package/lib/module/v3/hooks/utils/eventHandlersUtils.js +31 -29
- package/lib/module/v3/hooks/utils/eventHandlersUtils.js.map +1 -1
- package/lib/module/v3/hooks/utils/reanimatedUtils.js +8 -2
- package/lib/module/v3/hooks/utils/reanimatedUtils.js.map +1 -1
- package/lib/module/web/tools/NodeManager.js +44 -0
- package/lib/module/web/tools/NodeManager.js.map +1 -1
- package/lib/typescript/RNGestureHandlerModule.web.d.ts +1 -1
- package/lib/typescript/RNGestureHandlerModule.web.d.ts.map +1 -1
- package/lib/typescript/components/GestureButtons.d.ts +14 -6
- package/lib/typescript/components/GestureButtons.d.ts.map +1 -1
- package/lib/typescript/components/GestureHandlerButton.d.ts +62 -8
- package/lib/typescript/components/GestureHandlerButton.d.ts.map +1 -1
- package/lib/typescript/components/GestureHandlerButton.web.d.ts +10 -3
- package/lib/typescript/components/GestureHandlerButton.web.d.ts.map +1 -1
- package/lib/typescript/components/Pressable/Pressable.d.ts.map +1 -1
- package/lib/typescript/components/Pressable/PressableProps.d.ts +1 -1
- package/lib/typescript/components/Pressable/PressableProps.d.ts.map +1 -1
- package/lib/typescript/components/ReanimatedDrawerLayout.d.ts +16 -14
- package/lib/typescript/components/ReanimatedDrawerLayout.d.ts.map +1 -1
- package/lib/typescript/components/ReanimatedSwipeable/ReanimatedSwipeable.d.ts +2 -1
- package/lib/typescript/components/ReanimatedSwipeable/ReanimatedSwipeable.d.ts.map +1 -1
- package/lib/typescript/components/ReanimatedSwipeable/ReanimatedSwipeableProps.d.ts +30 -34
- package/lib/typescript/components/ReanimatedSwipeable/ReanimatedSwipeableProps.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/GestureDetector/useDetectorUpdater.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/GestureDetector/utils.d.ts +0 -1
- package/lib/typescript/handlers/gestures/GestureDetector/utils.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/reanimatedWrapper.d.ts.map +1 -1
- package/lib/typescript/mocks/module.d.ts +1 -1
- package/lib/typescript/mocks/module.d.ts.map +1 -1
- package/lib/typescript/specs/NativeRNGestureHandlerModule.d.ts +2 -2
- package/lib/typescript/specs/NativeRNGestureHandlerModule.d.ts.map +1 -1
- package/lib/typescript/specs/RNGestureHandlerButtonNativeComponent.d.ts +19 -11
- package/lib/typescript/specs/RNGestureHandlerButtonNativeComponent.d.ts.map +1 -1
- package/lib/typescript/v3/NativeProxy.d.ts +1 -1
- package/lib/typescript/v3/NativeProxy.d.ts.map +1 -1
- package/lib/typescript/v3/NativeProxy.web.d.ts +1 -1
- package/lib/typescript/v3/NativeProxy.web.d.ts.map +1 -1
- package/lib/typescript/v3/components/GestureButtons.d.ts +1 -38
- package/lib/typescript/v3/components/GestureButtons.d.ts.map +1 -1
- package/lib/typescript/v3/components/GestureButtonsProps.d.ts +1 -1
- package/lib/typescript/v3/components/GestureButtonsProps.d.ts.map +1 -1
- package/lib/typescript/v3/components/Touchable/Touchable.d.ts.map +1 -1
- package/lib/typescript/v3/components/Touchable/TouchableProps.d.ts +39 -1
- package/lib/typescript/v3/components/Touchable/TouchableProps.d.ts.map +1 -1
- package/lib/typescript/v3/detectors/HostGestureDetector.web.d.ts.map +1 -1
- package/lib/typescript/v3/detectors/NativeDetector.d.ts.map +1 -1
- package/lib/typescript/v3/detectors/VirtualDetector/InterceptingGestureDetector.d.ts.map +1 -1
- package/lib/typescript/v3/detectors/useGestureRelationsUpdater.d.ts +3 -0
- package/lib/typescript/v3/detectors/useGestureRelationsUpdater.d.ts.map +1 -0
- package/lib/typescript/v3/detectors/utils.d.ts +3 -3
- package/lib/typescript/v3/detectors/utils.d.ts.map +1 -1
- package/lib/typescript/v3/hooks/useGesture.d.ts.map +1 -1
- package/lib/typescript/v3/hooks/utils/configUtils.d.ts.map +1 -1
- package/lib/typescript/v3/hooks/utils/eventHandlersUtils.d.ts.map +1 -1
- package/lib/typescript/v3/hooks/utils/reanimatedUtils.d.ts +1 -0
- package/lib/typescript/v3/hooks/utils/reanimatedUtils.d.ts.map +1 -1
- package/lib/typescript/web/tools/NodeManager.d.ts +7 -0
- package/lib/typescript/web/tools/NodeManager.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/RNGestureHandlerModule.web.ts +5 -1
- package/src/components/GestureButtons.tsx +23 -7
- package/src/components/GestureHandlerButton.tsx +70 -8
- package/src/components/GestureHandlerButton.web.tsx +97 -29
- package/src/components/Pressable/Pressable.tsx +1 -0
- package/src/components/Pressable/PressableProps.tsx +2 -1
- package/src/components/ReanimatedDrawerLayout.tsx +27 -23
- package/src/components/ReanimatedSwipeable/ReanimatedSwipeable.tsx +51 -5
- package/src/components/ReanimatedSwipeable/ReanimatedSwipeableProps.ts +31 -39
- package/src/handlers/gestures/GestureDetector/useDetectorUpdater.ts +1 -2
- package/src/handlers/gestures/GestureDetector/utils.ts +0 -52
- package/src/handlers/gestures/reanimatedWrapper.ts +20 -2
- package/src/mocks/module.tsx +4 -2
- package/src/specs/NativeRNGestureHandlerModule.ts +2 -4
- package/src/specs/RNGestureHandlerButtonNativeComponent.ts +28 -13
- package/src/v3/NativeProxy.ts +9 -7
- package/src/v3/NativeProxy.web.ts +2 -2
- package/src/v3/components/GestureButtons.tsx +13 -5
- package/src/v3/components/GestureButtonsProps.ts +1 -0
- package/src/v3/components/Touchable/Touchable.tsx +65 -4
- package/src/v3/components/Touchable/TouchableProps.ts +49 -1
- package/src/v3/detectors/HostGestureDetector.web.tsx +265 -108
- package/src/v3/detectors/NativeDetector.tsx +3 -2
- package/src/v3/detectors/VirtualDetector/InterceptingGestureDetector.tsx +3 -4
- package/src/v3/detectors/VirtualDetector/VirtualDetector.tsx +2 -2
- package/src/v3/detectors/useGestureRelationsUpdater.ts +30 -0
- package/src/v3/detectors/utils.ts +28 -12
- package/src/v3/hooks/useGesture.ts +4 -14
- package/src/v3/hooks/utils/configUtils.ts +2 -3
- package/src/v3/hooks/utils/eventHandlersUtils.ts +43 -32
- package/src/v3/hooks/utils/reanimatedUtils.ts +10 -10
- package/src/web/tools/NodeManager.ts +57 -0
- package/lib/module/RNRenderer.js +0 -6
- package/lib/module/RNRenderer.js.map +0 -1
- package/lib/module/RNRenderer.web.js +0 -6
- package/lib/module/RNRenderer.web.js.map +0 -1
- package/lib/typescript/RNRenderer.d.ts +0 -2
- package/lib/typescript/RNRenderer.d.ts.map +0 -1
- package/lib/typescript/RNRenderer.web.d.ts +0 -4
- package/lib/typescript/RNRenderer.web.d.ts.map +0 -1
- package/src/RNRenderer.ts +0 -3
- package/src/RNRenderer.web.ts +0 -3
|
@@ -5,9 +5,124 @@ import { View } from 'react-native';
|
|
|
5
5
|
import { ActionType } from '../../ActionType';
|
|
6
6
|
import RNGestureHandlerModule from '../../RNGestureHandlerModule.web';
|
|
7
7
|
import { tagMessage } from '../../utils';
|
|
8
|
+
import NodeManager from '../../web/tools/NodeManager';
|
|
8
9
|
import { useNativeGestureRole } from './useNativeGestureRole';
|
|
10
|
+
|
|
11
|
+
// Bundles all per-instance state passed to the standalone helpers below. Holding everything in
|
|
12
|
+
// one stable object keeps the helpers pure (no closures over component-render-scoped values),
|
|
13
|
+
// which means the useEffects don't need them in their deps lists.
|
|
9
14
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
|
-
|
|
15
|
+
// Invoked from `NodeManager.observeHandler` once the handler is known to exist. Branches on
|
|
16
|
+
// handler kind + actionType to pick the right binding flow. May be called multiple times for
|
|
17
|
+
// the same tag (handler re-registration), so each branch must be idempotent.
|
|
18
|
+
function attachReadyHandler(refs, tag, actionType, virtualViewTag) {
|
|
19
|
+
const handler = RNGestureHandlerModule.getGestureHandlerNode(tag);
|
|
20
|
+
if (actionType === ActionType.NATIVE_DETECTOR && handler.shouldAttachGestureToChildView()) {
|
|
21
|
+
refs.nativeHandlers.add(tag);
|
|
22
|
+
if (refs.viewRef.current != null && refs.viewRef.current.childElementCount > 0) {
|
|
23
|
+
tryAttachNativeHandlersToChildView(refs);
|
|
24
|
+
}
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
if (actionType === ActionType.VIRTUAL_DETECTOR) {
|
|
28
|
+
const child = virtualViewTag != null ? refs.virtualChildren.get(virtualViewTag) : undefined;
|
|
29
|
+
if (child == null || child.viewRef.current == null) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
if (!refs.attachedHandlers.has(tag)) {
|
|
33
|
+
RNGestureHandlerModule.attachGestureHandler(tag, child.viewRef.current, actionType, refs.propsRef);
|
|
34
|
+
refs.attachedHandlers.add(tag);
|
|
35
|
+
}
|
|
36
|
+
RNGestureHandlerModule.updateGestureHandlerConfig(tag, {
|
|
37
|
+
userSelect: child.userSelect,
|
|
38
|
+
touchAction: child.touchAction,
|
|
39
|
+
enableContextMenu: child.enableContextMenu
|
|
40
|
+
});
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
if (refs.viewRef.current == null) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
if (!refs.attachedHandlers.has(tag)) {
|
|
47
|
+
RNGestureHandlerModule.attachGestureHandler(tag, refs.viewRef.current, actionType, refs.propsRef);
|
|
48
|
+
refs.attachedHandlers.add(tag);
|
|
49
|
+
}
|
|
50
|
+
RNGestureHandlerModule.updateGestureHandlerConfig(tag, {
|
|
51
|
+
userSelect: refs.propsRef.current.userSelect,
|
|
52
|
+
touchAction: refs.propsRef.current.touchAction,
|
|
53
|
+
enableContextMenu: refs.propsRef.current.enableContextMenu
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
function tryAttachNativeHandlersToChildView(refs) {
|
|
57
|
+
if (refs.nativeHandlers.size === 0) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
const view = refs.viewRef.current;
|
|
61
|
+
if (view == null) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
if (view.childElementCount > 1) {
|
|
65
|
+
throw new Error(tagMessage('Cannot have more than one child view when native gesture handlers are attached to the detector'));
|
|
66
|
+
}
|
|
67
|
+
const target = view.firstElementChild;
|
|
68
|
+
if (target == null) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
for (const tag of refs.nativeHandlers) {
|
|
72
|
+
// A tag may be in `nativeHandlers` from an earlier ready callback but the underlying
|
|
73
|
+
// handler may have been dropped since. Skip — a re-registration fires the observation again.
|
|
74
|
+
if (!NodeManager.hasHandler(tag)) {
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
if (refs.attachedHandlers.has(tag)) {
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
RNGestureHandlerModule.attachGestureHandler(tag, target, ActionType.NATIVE_DETECTOR, refs.propsRef);
|
|
81
|
+
refs.attachedHandlers.add(tag);
|
|
82
|
+
RNGestureHandlerModule.updateGestureHandlerConfig(tag, {
|
|
83
|
+
userSelect: refs.propsRef.current.userSelect,
|
|
84
|
+
touchAction: refs.propsRef.current.touchAction,
|
|
85
|
+
enableContextMenu: refs.propsRef.current.enableContextMenu
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// Reconcile `subscribedSet` against `currentTags`: observe new tags, cancel observation and
|
|
91
|
+
// detach for tags no longer present. The ready callback set up here is responsible for actually
|
|
92
|
+
// binding the handler once it exists.
|
|
93
|
+
function syncSubscriptions(refs, currentTags, subscribedSet, actionType, virtualViewTag) {
|
|
94
|
+
const toUnsubscribe = new Set(subscribedSet);
|
|
95
|
+
for (const tag of currentTags) {
|
|
96
|
+
toUnsubscribe.delete(tag);
|
|
97
|
+
if (subscribedSet.has(tag)) {
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
NodeManager.observeHandler(tag, refs.owner, () => {
|
|
101
|
+
attachReadyHandler(refs, tag, actionType, virtualViewTag);
|
|
102
|
+
});
|
|
103
|
+
subscribedSet.add(tag);
|
|
104
|
+
}
|
|
105
|
+
for (const tag of toUnsubscribe) {
|
|
106
|
+
NodeManager.cancelObservation(tag, refs.owner);
|
|
107
|
+
if (refs.attachedHandlers.has(tag)) {
|
|
108
|
+
RNGestureHandlerModule.detachGestureHandler(tag);
|
|
109
|
+
refs.attachedHandlers.delete(tag);
|
|
110
|
+
}
|
|
111
|
+
subscribedSet.delete(tag);
|
|
112
|
+
refs.nativeHandlers.delete(tag);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
function teardown(refs) {
|
|
116
|
+
NodeManager.cancelAllObservationsForOwner(refs.owner);
|
|
117
|
+
for (const tag of refs.attachedHandlers) {
|
|
118
|
+
RNGestureHandlerModule.detachGestureHandler(tag);
|
|
119
|
+
}
|
|
120
|
+
refs.attachedHandlers.clear();
|
|
121
|
+
refs.subscribedHandlers.clear();
|
|
122
|
+
refs.nativeHandlers.clear();
|
|
123
|
+
refs.subscribedVirtualHandlers.clear();
|
|
124
|
+
refs.virtualChildren.clear();
|
|
125
|
+
}
|
|
11
126
|
const HostGestureDetector = props => {
|
|
12
127
|
const {
|
|
13
128
|
handlerTags,
|
|
@@ -16,42 +131,36 @@ const HostGestureDetector = props => {
|
|
|
16
131
|
const handlerTagsSet = useMemo(() => new Set(handlerTags), [...handlerTags]);
|
|
17
132
|
const viewRef = useRef(null);
|
|
18
133
|
const propsRef = useRef(props);
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
RNGestureHandlerModule.attachGestureHandler(tag, viewRef.current.firstChild, actionType, propsRef);
|
|
37
|
-
attachedNativeHandlers.current.add(tag);
|
|
38
|
-
} else {
|
|
39
|
-
RNGestureHandlerModule.attachGestureHandler(tag, viewRef.current, actionType, propsRef);
|
|
40
|
-
}
|
|
41
|
-
attachedHandlerTags.add(tag);
|
|
42
|
-
RNGestureHandlerModule.updateGestureHandlerConfig(tag, {
|
|
43
|
-
userSelect: props.userSelect,
|
|
44
|
-
touchAction: props.touchAction,
|
|
45
|
-
enableContextMenu: props.enableContextMenu
|
|
46
|
-
});
|
|
47
|
-
});
|
|
48
|
-
};
|
|
134
|
+
|
|
135
|
+
// Stable per-instance state
|
|
136
|
+
const refsRef = useRef(null);
|
|
137
|
+
if (refsRef.current === null) {
|
|
138
|
+
refsRef.current = {
|
|
139
|
+
owner: {},
|
|
140
|
+
viewRef,
|
|
141
|
+
propsRef,
|
|
142
|
+
subscribedHandlers: new Set(),
|
|
143
|
+
attachedHandlers: new Set(),
|
|
144
|
+
nativeHandlers: new Set(),
|
|
145
|
+
subscribedVirtualHandlers: new Map(),
|
|
146
|
+
virtualChildren: new Map()
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
const refs = refsRef.current;
|
|
49
150
|
useNativeGestureRole(viewRef, children);
|
|
151
|
+
|
|
152
|
+
// Keep propsRef in sync and re-apply detector-level DOM props to top-level attached handlers
|
|
153
|
+
// when they change. Virtual children get their own (potentially different) DOM props applied
|
|
154
|
+
// in the virtualChildren effect below, so we only touch top-level subscribers here.
|
|
50
155
|
useEffect(() => {
|
|
51
156
|
const shouldUpdateDOMProps = propsRef.current.userSelect !== props.userSelect || propsRef.current.touchAction !== props.touchAction || propsRef.current.enableContextMenu !== props.enableContextMenu;
|
|
52
157
|
propsRef.current = props;
|
|
53
158
|
if (shouldUpdateDOMProps) {
|
|
54
|
-
|
|
159
|
+
// attachedHandlers ⊆ subscribedHandlers ⋃ subscribedVirtualHandlers, we want to ignore the
|
|
160
|
+
// handlers attached by the virtual detectors not to overwrite their DOM props.
|
|
161
|
+
const claimedByVirtual = Array.from(refs.subscribedVirtualHandlers.values()).reduce((acc, current) => acc.union(current), new Set());
|
|
162
|
+
const handlersToUpdate = refs.subscribedHandlers.intersection(refs.attachedHandlers).difference(claimedByVirtual);
|
|
163
|
+
for (const tag of handlersToUpdate) {
|
|
55
164
|
RNGestureHandlerModule.updateGestureHandlerConfig(tag, {
|
|
56
165
|
userSelect: props.userSelect,
|
|
57
166
|
touchAction: props.touchAction,
|
|
@@ -59,46 +168,56 @@ const HostGestureDetector = props => {
|
|
|
59
168
|
});
|
|
60
169
|
}
|
|
61
170
|
}
|
|
62
|
-
}, [props]);
|
|
171
|
+
}, [props, refs]);
|
|
63
172
|
useEffect(() => {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
return () => {
|
|
67
|
-
detachHandlers(EMPTY_HANDLERS, attachedHandlers.current);
|
|
68
|
-
attachedVirtualHandlers?.current.forEach(childHandlerTags => {
|
|
69
|
-
detachHandlers(EMPTY_HANDLERS, childHandlerTags);
|
|
70
|
-
});
|
|
71
|
-
};
|
|
72
|
-
}, [handlerTagsSet, viewRef]);
|
|
173
|
+
syncSubscriptions(refs, handlerTagsSet, refs.subscribedHandlers, ActionType.NATIVE_DETECTOR);
|
|
174
|
+
}, [handlerTagsSet, refs]);
|
|
73
175
|
useEffect(() => {
|
|
74
|
-
|
|
176
|
+
// Refresh the snapshot used by the ready callback so re-fires read current child props.
|
|
177
|
+
refs.virtualChildren.clear();
|
|
75
178
|
props.virtualChildren?.forEach(child => {
|
|
76
|
-
|
|
179
|
+
refs.virtualChildren.set(child.viewTag, child);
|
|
77
180
|
});
|
|
78
|
-
virtualChildrenToDetach.
|
|
79
|
-
|
|
181
|
+
const virtualChildrenToDetach = new Set(refs.subscribedVirtualHandlers.keys());
|
|
182
|
+
props.virtualChildren?.forEach(child => {
|
|
183
|
+
virtualChildrenToDetach.delete(child.viewTag);
|
|
80
184
|
});
|
|
185
|
+
for (const viewTag of virtualChildrenToDetach) {
|
|
186
|
+
const tags = refs.subscribedVirtualHandlers.get(viewTag);
|
|
187
|
+
if (tags != null) {
|
|
188
|
+
syncSubscriptions(refs, [], tags, ActionType.VIRTUAL_DETECTOR, viewTag);
|
|
189
|
+
}
|
|
190
|
+
refs.subscribedVirtualHandlers.delete(viewTag);
|
|
191
|
+
}
|
|
81
192
|
props.virtualChildren?.forEach(child => {
|
|
82
193
|
if (child.viewRef.current == null) {
|
|
83
194
|
// We must check whether viewRef is not null as otherwise we get an error when intercepting gesture detector
|
|
84
195
|
// switches its component based on whether animated/reanimated events should run.
|
|
85
196
|
return;
|
|
86
197
|
}
|
|
87
|
-
|
|
88
|
-
|
|
198
|
+
let subs = refs.subscribedVirtualHandlers.get(child.viewTag);
|
|
199
|
+
if (subs == null) {
|
|
200
|
+
subs = new Set();
|
|
201
|
+
refs.subscribedVirtualHandlers.set(child.viewTag, subs);
|
|
202
|
+
}
|
|
203
|
+
syncSubscriptions(refs, child.handlerTags, subs, ActionType.VIRTUAL_DETECTOR, child.viewTag);
|
|
204
|
+
// Re-apply per-child DOM props on every run. Already-attached tags need this when only
|
|
205
|
+
// the child's props change; tags attached via a sync-fired observer already had it
|
|
206
|
+
// applied in `attachReadyHandler`, so this is a no-op for them.
|
|
207
|
+
for (const tag of subs) {
|
|
208
|
+
if (refs.attachedHandlers.has(tag)) {
|
|
209
|
+
RNGestureHandlerModule.updateGestureHandlerConfig(tag, {
|
|
210
|
+
userSelect: child.userSelect,
|
|
211
|
+
touchAction: child.touchAction,
|
|
212
|
+
enableContextMenu: child.enableContextMenu
|
|
213
|
+
});
|
|
214
|
+
}
|
|
89
215
|
}
|
|
90
|
-
const currentHandlerTags = new Set(child.handlerTags);
|
|
91
|
-
detachHandlers(currentHandlerTags, attachedVirtualHandlers.current.get(child.viewTag));
|
|
92
|
-
attachHandlers(child.viewRef, propsRef, currentHandlerTags, attachedVirtualHandlers.current.get(child.viewTag), ActionType.VIRTUAL_DETECTOR);
|
|
93
|
-
currentHandlerTags.forEach(tag => {
|
|
94
|
-
RNGestureHandlerModule.updateGestureHandlerConfig(tag, {
|
|
95
|
-
userSelect: child.userSelect,
|
|
96
|
-
touchAction: child.touchAction,
|
|
97
|
-
enableContextMenu: child.enableContextMenu
|
|
98
|
-
});
|
|
99
|
-
});
|
|
100
216
|
});
|
|
101
|
-
}, [props.virtualChildren]);
|
|
217
|
+
}, [props.virtualChildren, refs]);
|
|
218
|
+
useEffect(() => {
|
|
219
|
+
return () => teardown(refs);
|
|
220
|
+
}, [refs]);
|
|
102
221
|
return /*#__PURE__*/_jsx(View, {
|
|
103
222
|
style: {
|
|
104
223
|
display: 'contents'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useMemo","useRef","View","ActionType","RNGestureHandlerModule","tagMessage","useNativeGestureRole","jsx","_jsx","
|
|
1
|
+
{"version":3,"names":["React","useEffect","useMemo","useRef","View","ActionType","RNGestureHandlerModule","tagMessage","NodeManager","useNativeGestureRole","jsx","_jsx","attachReadyHandler","refs","tag","actionType","virtualViewTag","handler","getGestureHandlerNode","NATIVE_DETECTOR","shouldAttachGestureToChildView","nativeHandlers","add","viewRef","current","childElementCount","tryAttachNativeHandlersToChildView","VIRTUAL_DETECTOR","child","virtualChildren","get","undefined","attachedHandlers","has","attachGestureHandler","propsRef","updateGestureHandlerConfig","userSelect","touchAction","enableContextMenu","size","view","Error","target","firstElementChild","hasHandler","syncSubscriptions","currentTags","subscribedSet","toUnsubscribe","Set","delete","observeHandler","owner","cancelObservation","detachGestureHandler","teardown","cancelAllObservationsForOwner","clear","subscribedHandlers","subscribedVirtualHandlers","HostGestureDetector","props","handlerTags","children","handlerTagsSet","refsRef","Map","shouldUpdateDOMProps","claimedByVirtual","Array","from","values","reduce","acc","union","handlersToUpdate","intersection","difference","forEach","set","viewTag","virtualChildrenToDetach","keys","tags","subs","style","display","ref"],"sourceRoot":"../../../../src","sources":["v3/detectors/HostGestureDetector.web.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,7 +6,8 @@ import { isComposedGesture } from '../hooks/utils/relationUtils';
|
|
|
6
6
|
import { AnimatedNativeDetector, nativeDetectorStyles } from './common';
|
|
7
7
|
import HostGestureDetector from './HostGestureDetector';
|
|
8
8
|
import { ReanimatedNativeDetector } from './ReanimatedNativeDetector';
|
|
9
|
-
import {
|
|
9
|
+
import { useGestureRelationsUpdater } from './useGestureRelationsUpdater';
|
|
10
|
+
import { ensureNativeDetectorComponent } from './utils';
|
|
10
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
12
|
export function NativeDetector({
|
|
12
13
|
gesture,
|
|
@@ -17,7 +18,7 @@ export function NativeDetector({
|
|
|
17
18
|
}) {
|
|
18
19
|
const NativeDetectorComponent = gesture.config.dispatchesAnimatedEvents ? AnimatedNativeDetector : gesture.config.shouldUseReanimatedDetector ? ReanimatedNativeDetector : HostGestureDetector;
|
|
19
20
|
ensureNativeDetectorComponent(NativeDetectorComponent);
|
|
20
|
-
|
|
21
|
+
useGestureRelationsUpdater(gesture);
|
|
21
22
|
const handlerTags = useMemo(() => {
|
|
22
23
|
return isComposedGesture(gesture) ? gesture.handlerTags : [gesture.handlerTag];
|
|
23
24
|
}, [gesture]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useMemo","Platform","isComposedGesture","AnimatedNativeDetector","nativeDetectorStyles","HostGestureDetector","ReanimatedNativeDetector","
|
|
1
|
+
{"version":3,"names":["React","useMemo","Platform","isComposedGesture","AnimatedNativeDetector","nativeDetectorStyles","HostGestureDetector","ReanimatedNativeDetector","useGestureRelationsUpdater","ensureNativeDetectorComponent","jsx","_jsx","NativeDetector","gesture","children","touchAction","userSelect","enableContextMenu","NativeDetectorComponent","config","dispatchesAnimatedEvents","shouldUseReanimatedDetector","handlerTags","handlerTag","reanimatedHandlers","OS","onGestureHandlerReanimatedEvent","detectorCallbacks","reanimatedEventHandler","onGestureHandlerReanimatedStateChange","onGestureHandlerReanimatedTouchEvent","pointerEvents","onGestureHandlerStateChange","jsEventHandler","onGestureHandlerEvent","onGestureHandlerTouchEvent","onGestureHandlerAnimatedEvent","animatedEventHandler","moduleId","globalThis","_RNGH_MODULE_ID","style","detector"],"sourceRoot":"../../../../src","sources":["v3/detectors/NativeDetector.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,QAAQ,QAAQ,cAAc;AAEvC,SAASC,iBAAiB,QAAQ,8BAA8B;AAEhE,SAASC,sBAAsB,EAAEC,oBAAoB,QAAQ,UAAU;AACvE,OAAOC,mBAAmB,MAAM,uBAAuB;AACvD,SAASC,wBAAwB,QAAQ,4BAA4B;AACrE,SAASC,0BAA0B,QAAQ,8BAA8B;AACzE,SAASC,6BAA6B,QAAQ,SAAS;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAExD,OAAO,SAASC,cAAcA,CAI5B;EACAC,OAAO;EACPC,QAAQ;EACRC,WAAW;EACXC,UAAU;EACVC;AACgE,CAAC,EAAE;EACnE,MAAMC,uBAAuB,GAAGL,OAAO,CAACM,MAAM,CAACC,wBAAwB,GACnEhB,sBAAsB,GACtBS,OAAO,CAACM,MAAM,CAACE,2BAA2B,GACxCd,wBAAwB,GACxBD,mBAAmB;EAEzBG,6BAA6B,CAACS,uBAAuB,CAAC;EACtDV,0BAA0B,CAACK,OAAO,CAAC;EAEnC,MAAMS,WAAW,GAAGrB,OAAO,CAAC,MAAM;IAChC,OAAOE,iBAAiB,CAACU,OAAO,CAAC,GAC7BA,OAAO,CAACS,WAAW,GACnB,CAACT,OAAO,CAACU,UAAU,CAAC;EAC1B,CAAC,EAAE,CAACV,OAAO,CAAC,CAAC;;EAEb;EACA;EACA;EACA;EACA;EACA;EACA,MAAMW,kBAAkB,GACtBtB,QAAQ,CAACuB,EAAE,KAAK,KAAK,GACjB;IACEC,+BAA+B,EAC7Bb,OAAO,CAACc,iBAAiB,CAACC,sBAAsB;IAClDC,qCAAqC,EACnChB,OAAO,CAACc,iBAAiB,CAACC,sBAAsB;IAClDE,oCAAoC,EAClCjB,OAAO,CAACc,iBAAiB,CAACC;EAC9B,CAAC,GACD;IACEF,+BAA+B,EAC7Bb,OAAO,CAACc,iBAAiB,CAACC;EAC9B,CAAC;EAEP,oBACEjB,IAAA,CAACO,uBAAuB;IACtBH,WAAW,EAAEA,WAAY;IACzBC,UAAU,EAAEA,UAAW;IACvBC,iBAAiB,EAAEA,iBAAkB;IACrCc,aAAa,EAAE;IACf;IAAA;IACAC,2BAA2B,EAAEnB,OAAO,CAACc,iBAAiB,CAACM;IACvD;IAAA;IACAC,qBAAqB,EAAErB,OAAO,CAACc,iBAAiB,CAACM;IACjD;IAAA;IACAE,0BAA0B,EAAEtB,OAAO,CAACc,iBAAiB,CAACM;IACtD;IAAA;IACAJ,qCAAqC,EACnCL,kBAAkB,CAACK;IAErB;IAAA;IACAH,+BAA+B,EAC7BF,kBAAkB,CAACE;IAErB;IAAA;IACAI,oCAAoC,EAClCN,kBAAkB,CAACM;IAErB;IAAA;IACAM,6BAA6B,EAC3BvB,OAAO,CAACc,iBAAiB,CAACU,oBAC3B;IACDC,QAAQ,EAAEC,UAAU,CAACC,eAAgB;IACrClB,WAAW,EAAEA,WAAY;IACzBmB,KAAK,EAAEpC,oBAAoB,CAACqC,QAAS;IAAA5B,QAAA,EACpCA;EAAQ,CACc,CAAC;AAE9B","ignoreList":[]}
|
|
@@ -9,7 +9,8 @@ import { AnimatedNativeDetector, nativeDetectorStyles } from '../common';
|
|
|
9
9
|
import HostGestureDetector from '../HostGestureDetector';
|
|
10
10
|
import { ReanimatedNativeDetector } from '../ReanimatedNativeDetector';
|
|
11
11
|
import { useEnsureGestureHandlerRootView } from '../useEnsureGestureHandlerRootView';
|
|
12
|
-
import {
|
|
12
|
+
import { useGestureRelationsUpdater } from '../useGestureRelationsUpdater';
|
|
13
|
+
import { ensureNativeDetectorComponent } from '../utils';
|
|
13
14
|
import { InterceptingDetectorContext, InterceptingDetectorMode } from './useInterceptingDetectorContext';
|
|
14
15
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
15
16
|
export function InterceptingGestureDetector({
|
|
@@ -104,9 +105,7 @@ export function InterceptingGestureDetector({
|
|
|
104
105
|
const reanimatedEvents = useMemo(() => getHandlers('reanimatedEventHandler'), [getHandlers]);
|
|
105
106
|
const reanimatedEventHandler = Reanimated?.useComposedEventHandler(reanimatedEvents);
|
|
106
107
|
ensureNativeDetectorComponent(NativeDetectorComponent);
|
|
107
|
-
|
|
108
|
-
configureRelations(gesture);
|
|
109
|
-
}
|
|
108
|
+
useGestureRelationsUpdater(gesture);
|
|
110
109
|
const handlerTags = useMemo(() => {
|
|
111
110
|
if (gesture) {
|
|
112
111
|
return isComposedGesture(gesture) ? gesture.handlerTags : [gesture.handlerTag];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","useEffect","useMemo","useState","Platform","Reanimated","tagMessage","isComposedGesture","AnimatedNativeDetector","nativeDetectorStyles","HostGestureDetector","ReanimatedNativeDetector","useEnsureGestureHandlerRootView","
|
|
1
|
+
{"version":3,"names":["React","useCallback","useEffect","useMemo","useState","Platform","Reanimated","tagMessage","isComposedGesture","AnimatedNativeDetector","nativeDetectorStyles","HostGestureDetector","ReanimatedNativeDetector","useEnsureGestureHandlerRootView","useGestureRelationsUpdater","ensureNativeDetectorComponent","InterceptingDetectorContext","InterceptingDetectorMode","jsx","_jsx","InterceptingGestureDetector","gesture","children","touchAction","userSelect","enableContextMenu","virtualChildren","setVirtualChildren","Set","strippedVirtualChildren","OS","Array","from","map","child","viewTag","handlerTags","viewRef","mode","setMode","config","shouldUseReanimatedDetector","REANIMATED","dispatchesAnimatedEvents","ANIMATED","DEFAULT","NativeDetectorComponent","register","prev","newSet","add","unregister","delete","contextValue","newMode","Error","createGestureEventHandler","key","e","detectorCallbacks","forEach","method","methods","getHandlers","handlers","push","handler","reanimatedEvents","reanimatedEventHandler","useComposedEventHandler","handlerTag","reanimatedHandlers","onGestureHandlerReanimatedEvent","onGestureHandlerReanimatedStateChange","onGestureHandlerReanimatedTouchEvent","jsEventHandler","value","pointerEvents","onGestureHandlerStateChange","onGestureHandlerEvent","onGestureHandlerTouchEvent","onGestureHandlerAnimatedEvent","animatedEventHandler","undefined","style","detector","moduleId","globalThis","_RNGH_MODULE_ID"],"sourceRoot":"../../../../../src","sources":["v3/detectors/VirtualDetector/InterceptingGestureDetector.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,8 +5,8 @@ import { findNodeHandle, Platform } from 'react-native';
|
|
|
5
5
|
import { Wrap } from '../../../handlers/gestures/GestureDetector/Wrap';
|
|
6
6
|
import { tagMessage } from '../../../utils';
|
|
7
7
|
import { isComposedGesture } from '../../hooks/utils/relationUtils';
|
|
8
|
+
import { useGestureRelationsUpdater } from '../useGestureRelationsUpdater';
|
|
8
9
|
import { useNativeGestureRole } from '../useNativeGestureRole';
|
|
9
|
-
import { configureRelations } from '../utils';
|
|
10
10
|
import { InterceptingDetectorMode, useInterceptingDetectorContext } from './useInterceptingDetectorContext';
|
|
11
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
12
|
function useRequiredInterceptingDetectorContext() {
|
|
@@ -66,7 +66,7 @@ export function VirtualDetector(props) {
|
|
|
66
66
|
unregister(virtualChild);
|
|
67
67
|
};
|
|
68
68
|
}, [viewTag, props.gesture, props.userSelect, props.touchAction, props.enableContextMenu, register, unregister, setMode]);
|
|
69
|
-
|
|
69
|
+
useGestureRelationsUpdater(props.gesture);
|
|
70
70
|
return /*#__PURE__*/_jsx(Wrap, {
|
|
71
71
|
ref: handleRef,
|
|
72
72
|
children: props.children
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useEffect","useRef","useState","findNodeHandle","Platform","Wrap","tagMessage","isComposedGesture","
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useRef","useState","findNodeHandle","Platform","Wrap","tagMessage","isComposedGesture","useGestureRelationsUpdater","useNativeGestureRole","InterceptingDetectorMode","useInterceptingDetectorContext","jsx","_jsx","useRequiredInterceptingDetectorContext","context","Error","VirtualDetector","props","register","unregister","setMode","viewRef","viewTag","setViewTag","handleRef","node","current","tag","OS","children","handlerTags","gesture","handlerTag","config","dispatchesAnimatedEvents","shouldUseReanimatedDetector","REANIMATED","virtualChild","methods","detectorCallbacks","undefined","userSelect","touchAction","enableContextMenu","ref"],"sourceRoot":"../../../../../src","sources":["v3/detectors/VirtualDetector/VirtualDetector.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useEffect, useMemo } from 'react';
|
|
4
|
+
import { NativeProxy } from '../NativeProxy';
|
|
5
|
+
import { configureRelations } from './utils';
|
|
6
|
+
export function useGestureRelationsUpdater(gesture) {
|
|
7
|
+
const relations = useMemo(() => gesture ? configureRelations(gesture) : null, [gesture]);
|
|
8
|
+
useEffect(() => {
|
|
9
|
+
if (!relations) {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// React runs effects bottom-up, we need to ensure that relations are applied after all effects
|
|
14
|
+
// in the tree have run, so we defer to the next frame.
|
|
15
|
+
const frame = requestAnimationFrame(() => {
|
|
16
|
+
relations.forEach((rel, handlerTag) => {
|
|
17
|
+
NativeProxy.configureRelations(handlerTag, rel);
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
return () => cancelAnimationFrame(frame);
|
|
21
|
+
}, [relations]);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=useGestureRelationsUpdater.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useMemo","NativeProxy","configureRelations","useGestureRelationsUpdater","gesture","relations","frame","requestAnimationFrame","forEach","rel","handlerTag","cancelAnimationFrame"],"sourceRoot":"../../../../src","sources":["v3/detectors/useGestureRelationsUpdater.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,OAAO,QAAQ,OAAO;AAE1C,SAASC,WAAW,QAAQ,gBAAgB;AAE5C,SAASC,kBAAkB,QAAQ,SAAS;AAE5C,OAAO,SAASC,0BAA0BA,CACxCC,OAAwC,EACxC;EACA,MAAMC,SAAS,GAAGL,OAAO,CACvB,MAAOI,OAAO,GAAGF,kBAAkB,CAACE,OAAO,CAAC,GAAG,IAAK,EACpD,CAACA,OAAO,CACV,CAAC;EAEDL,SAAS,CAAC,MAAM;IACd,IAAI,CAACM,SAAS,EAAE;MACd;IACF;;IAEA;IACA;IACA,MAAMC,KAAK,GAAGC,qBAAqB,CAAC,MAAM;MACxCF,SAAS,CAACG,OAAO,CAAC,CAACC,GAAG,EAAEC,UAAU,KAAK;QACrCT,WAAW,CAACC,kBAAkB,CAACQ,UAAU,EAAED,GAAG,CAAC;MACjD,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,MAAME,oBAAoB,CAACL,KAAK,CAAC;EAC1C,CAAC,EAAE,CAACD,SAAS,CAAC,CAAC;AACjB","ignoreList":[]}
|
|
@@ -8,18 +8,18 @@
|
|
|
8
8
|
|
|
9
9
|
import { tagMessage } from '../../utils';
|
|
10
10
|
import { isComposedGesture, prepareRelations } from '../hooks/utils/relationUtils';
|
|
11
|
-
import { NativeProxy } from '../NativeProxy';
|
|
12
11
|
import { ComposedGestureName } from '../types';
|
|
13
12
|
|
|
14
13
|
// The tree consists of ComposedGestures and NativeGestures. NativeGestures are always leaf nodes.
|
|
15
|
-
export const traverseAndConfigureRelations = (node, simultaneousHandlers, waitFor = []) => {
|
|
14
|
+
export const traverseAndConfigureRelations = (node, relationsByTag, simultaneousHandlers, waitFor = []) => {
|
|
16
15
|
// If we are in the leaf node, we want to fill gesture relations arrays with current
|
|
17
|
-
// waitFor and simultaneousHandlers. We also want to
|
|
16
|
+
// waitFor and simultaneousHandlers. We also want to record the resulting relations for
|
|
17
|
+
// this handler so the caller can push them to the native side.
|
|
18
18
|
if (!isComposedGesture(node)) {
|
|
19
19
|
node.gestureRelations = prepareRelations(node.config, node.handlerTag);
|
|
20
20
|
node.gestureRelations.simultaneousHandlers.push(...simultaneousHandlers);
|
|
21
21
|
node.gestureRelations.waitFor.push(...waitFor);
|
|
22
|
-
|
|
22
|
+
relationsByTag.set(node.handlerTag, {
|
|
23
23
|
waitFor: node.gestureRelations.waitFor,
|
|
24
24
|
simultaneousHandlers: node.gestureRelations.simultaneousHandlers,
|
|
25
25
|
blocksHandlers: node.gestureRelations.blocksHandlers
|
|
@@ -54,7 +54,7 @@ export const traverseAndConfigureRelations = (node, simultaneousHandlers, waitFo
|
|
|
54
54
|
const length = waitFor.length;
|
|
55
55
|
|
|
56
56
|
// We traverse the child, passing the current `waitFor` and `simultaneousHandlers`.
|
|
57
|
-
traverseAndConfigureRelations(child, simultaneousHandlers, waitFor);
|
|
57
|
+
traverseAndConfigureRelations(child, relationsByTag, simultaneousHandlers, waitFor);
|
|
58
58
|
|
|
59
59
|
// After traversing the child, we need to update `waitFor` and `simultaneousHandlers`
|
|
60
60
|
|
|
@@ -89,7 +89,7 @@ export const traverseAndConfigureRelations = (node, simultaneousHandlers, waitFo
|
|
|
89
89
|
else {
|
|
90
90
|
// We don't want to mark gesture as simultaneous with itself, so we remove its tag from the set.
|
|
91
91
|
const hasRemovedTag = simultaneousHandlers.delete(child.handlerTag);
|
|
92
|
-
traverseAndConfigureRelations(child, simultaneousHandlers, waitFor);
|
|
92
|
+
traverseAndConfigureRelations(child, relationsByTag, simultaneousHandlers, waitFor);
|
|
93
93
|
if (hasRemovedTag) {
|
|
94
94
|
simultaneousHandlers.add(child.handlerTag);
|
|
95
95
|
}
|
|
@@ -102,6 +102,7 @@ export const traverseAndConfigureRelations = (node, simultaneousHandlers, waitFo
|
|
|
102
102
|
});
|
|
103
103
|
};
|
|
104
104
|
export function configureRelations(gesture) {
|
|
105
|
+
const relationsByTag = new Map();
|
|
105
106
|
if (isComposedGesture(gesture)) {
|
|
106
107
|
const simultaneousHandlers = new Set(gesture.externalSimultaneousHandlers);
|
|
107
108
|
|
|
@@ -109,10 +110,11 @@ export function configureRelations(gesture) {
|
|
|
109
110
|
if (gesture.type === ComposedGestureName.Simultaneous) {
|
|
110
111
|
gesture.handlerTags.forEach(handlerTag => simultaneousHandlers.add(handlerTag));
|
|
111
112
|
}
|
|
112
|
-
traverseAndConfigureRelations(gesture, simultaneousHandlers);
|
|
113
|
+
traverseAndConfigureRelations(gesture, relationsByTag, simultaneousHandlers);
|
|
113
114
|
} else {
|
|
114
|
-
|
|
115
|
+
relationsByTag.set(gesture.handlerTag, gesture.gestureRelations);
|
|
115
116
|
}
|
|
117
|
+
return relationsByTag;
|
|
116
118
|
}
|
|
117
119
|
export function ensureNativeDetectorComponent(NativeDetectorComponent) {
|
|
118
120
|
if (!NativeDetectorComponent) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["tagMessage","isComposedGesture","prepareRelations","
|
|
1
|
+
{"version":3,"names":["tagMessage","isComposedGesture","prepareRelations","ComposedGestureName","traverseAndConfigureRelations","node","relationsByTag","simultaneousHandlers","waitFor","gestureRelations","config","handlerTag","push","set","blocksHandlers","gestures","forEach","child","type","Simultaneous","handlerTags","add","delete","length","Exclusive","hasRemovedTag","configureRelations","gesture","Map","Set","externalSimultaneousHandlers","ensureNativeDetectorComponent","NativeDetectorComponent","Error","EMPTY_SET"],"sourceRoot":"../../../../src","sources":["v3/detectors/utils.ts"],"mappings":"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","ignoreList":[]}
|