react-native-gesture-handler 3.1.0-nightly-20260714-af04cd4f3 → 3.1.0
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/lib/module/v3/hooks/useJSResponderHandler.js +7 -3
- package/lib/module/v3/hooks/useJSResponderHandler.js.map +1 -1
- package/lib/typescript/handlers/gestures/reanimatedWrapper.d.ts +1 -1
- package/lib/typescript/handlers/gestures/reanimatedWrapper.d.ts.map +1 -1
- package/lib/typescript/v3/hooks/useJSResponderHandler.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/handlers/gestures/reanimatedWrapper.ts +2 -2
- package/src/v3/hooks/useJSResponderHandler.ts +7 -3
|
@@ -41,12 +41,16 @@ export function useJSResponderHandler(gesture) {
|
|
|
41
41
|
if (listenerId === null) {
|
|
42
42
|
return;
|
|
43
43
|
}
|
|
44
|
-
const
|
|
44
|
+
const {
|
|
45
|
+
runOnJS
|
|
46
|
+
} = reanimated;
|
|
47
|
+
const notifyEnabledChanged = () => {
|
|
45
48
|
setEnabledSharedValueRevision(revision => revision + 1);
|
|
46
|
-
}
|
|
47
|
-
const attachListeners = (sharedValues, id,
|
|
49
|
+
};
|
|
50
|
+
const attachListeners = (sharedValues, id, notify) => {
|
|
48
51
|
'worklet';
|
|
49
52
|
|
|
53
|
+
const listener = runOnJS(notify);
|
|
50
54
|
for (const sharedValue of sharedValues) {
|
|
51
55
|
sharedValue.addListener(id, listener);
|
|
52
56
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["use","useCallback","useEffect","useRef","useState","Reanimated","JSResponderContext","updateResponderEventValue","SingleGestureName","isComposedGesture","isGestureEnabled","getEnabledSharedValues","SHARED_VALUE_OFFSET","nextJSResponderContextListenerId","isSupportedGesture","gesture","gestures","some","type","Tap","LongPress","Fling","Native","Hover","useJSResponderHandler","jsResponderContext","enabledSharedValueRevision","setEnabledSharedValueRevision","listenerIdRef","current","reanimated","enabledSharedValues","undefined","length","listenerId","
|
|
1
|
+
{"version":3,"names":["use","useCallback","useEffect","useRef","useState","Reanimated","JSResponderContext","updateResponderEventValue","SingleGestureName","isComposedGesture","isGestureEnabled","getEnabledSharedValues","SHARED_VALUE_OFFSET","nextJSResponderContextListenerId","isSupportedGesture","gesture","gestures","some","type","Tap","LongPress","Fling","Native","Hover","useJSResponderHandler","jsResponderContext","enabledSharedValueRevision","setEnabledSharedValueRevision","listenerIdRef","current","reanimated","enabledSharedValues","undefined","length","listenerId","runOnJS","notifyEnabledChanged","revision","attachListeners","sharedValues","id","notify","listener","sharedValue","addListener","detachListeners","removeListener","runOnUI","shouldHandleJSResponderEvent","handleStartShouldSetResponder"],"sourceRoot":"../../../../src","sources":["v3/hooks/useJSResponderHandler.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -38,7 +38,7 @@ declare let Reanimated: {
|
|
|
38
38
|
isSharedValue: <T = unknown>(value: unknown) => value is SharedValue<T>;
|
|
39
39
|
isWorkletFunction<Args extends unknown[] = unknown[], ReturnValue = unknown>(value: unknown): value is WorkletFunction<Args, ReturnValue>;
|
|
40
40
|
useComposedEventHandler<T>(handlers: (((event: T) => void) | null)[]): (event: T) => void;
|
|
41
|
-
runOnJS<A extends unknown[], R>(fn: (...args: A) => R)
|
|
41
|
+
runOnJS: <A extends unknown[], R>(fn: (...args: A) => R) => (...args: Parameters<typeof fn>) => void;
|
|
42
42
|
runOnUI<A extends any[], R>(fn: (...args: A) => R): (...args: Parameters<typeof fn>) => void;
|
|
43
43
|
makeMutable<T>(value: T): {
|
|
44
44
|
value: T;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reanimatedWrapper.d.ts","sourceRoot":"","sources":["../../../../src/handlers/gestures/reanimatedWrapper.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"reanimatedWrapper.d.ts","sourceRoot":"","sources":["../../../../src/handlers/gestures/reanimatedWrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useJSResponderHandler.d.ts","sourceRoot":"","sources":["../../../../src/v3/hooks/useJSResponderHandler.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,OAAO,EAAuC,MAAM,UAAU,CAAC;AA+B7E,wBAAgB,qBAAqB,CACnC,OAAO,EACP,YAAY,EACZ,oBAAoB,SAAS,YAAY,EACzC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,YAAY,EAAE,oBAAoB,CAAC;;
|
|
1
|
+
{"version":3,"file":"useJSResponderHandler.d.ts","sourceRoot":"","sources":["../../../../src/v3/hooks/useJSResponderHandler.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,OAAO,EAAuC,MAAM,UAAU,CAAC;AA+B7E,wBAAgB,qBAAqB,CACnC,OAAO,EACP,YAAY,EACZ,oBAAoB,SAAS,YAAY,EACzC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,YAAY,EAAE,oBAAoB,CAAC;;EAgF9D"}
|
package/package.json
CHANGED
|
@@ -76,9 +76,9 @@ let Reanimated:
|
|
|
76
76
|
handlers: (((event: T) => void) | null)[]
|
|
77
77
|
): (event: T) => void;
|
|
78
78
|
// TODO: runOnJS and runOnUI are deprecated. These should be removed in near future.
|
|
79
|
-
runOnJS<A extends unknown[], R>(
|
|
79
|
+
runOnJS: <A extends unknown[], R>(
|
|
80
80
|
fn: (...args: A) => R
|
|
81
|
-
)
|
|
81
|
+
) => (...args: Parameters<typeof fn>) => void;
|
|
82
82
|
runOnUI<A extends any[], R>(
|
|
83
83
|
fn: (...args: A) => R
|
|
84
84
|
): (...args: Parameters<typeof fn>) => void;
|
|
@@ -63,16 +63,20 @@ export function useJSResponderHandler<
|
|
|
63
63
|
return;
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
-
const
|
|
66
|
+
const { runOnJS } = reanimated;
|
|
67
|
+
|
|
68
|
+
const notifyEnabledChanged = () => {
|
|
67
69
|
setEnabledSharedValueRevision((revision) => revision + 1);
|
|
68
|
-
}
|
|
70
|
+
};
|
|
69
71
|
|
|
70
72
|
const attachListeners = (
|
|
71
73
|
sharedValues: SharedValue<boolean>[],
|
|
72
74
|
id: number,
|
|
73
|
-
|
|
75
|
+
notify: () => void
|
|
74
76
|
) => {
|
|
75
77
|
'worklet';
|
|
78
|
+
const listener = runOnJS(notify);
|
|
79
|
+
|
|
76
80
|
for (const sharedValue of sharedValues) {
|
|
77
81
|
sharedValue.addListener(id, listener);
|
|
78
82
|
}
|