11type t ;
22
3- type gestureState =
4- {
3+ type gestureState = {
4+ stateID: float ,
5+ moveX: float ,
6+ moveY: float ,
7+ x0: float ,
8+ y0: float ,
9+ dx: float ,
10+ dy: float ,
11+ vx: float ,
12+ vy: float ,
13+ numberActiveTouches: int
14+ };
15+
16+ external _create : ' a => t = "create" [@@ bs . scope "PanResponder" ] [@@ bs . module "react-native" ];
17+
18+ type jsGestureState =
19+ Js . t {
20+ .
521 stateID : float ,
622 moveX : float ,
723 moveY : float ,
@@ -14,9 +30,24 @@ type gestureState =
1430 numberActiveTouches : int
1531 };
1632
17- type callback ' a = RNEvent . NativeEvent . t => gestureState => ' a ;
33+ type callback ' a = Js . t {. nativeEvent : RNEvent . NativeEvent . t } => jsGestureState => ' a ;
1834
19- external _create : ' a => t = "create" [@@ bs . scope "PanResponder" ] [@@ bs . module "react-native" ];
35+ let callback (x : RNEvent . NativeEvent . t => gestureState => ' a ) : callback ' a =>
36+ fun event state =>
37+ x
38+ event## nativeEvent
39+ {
40+ dx: state## dx,
41+ dy: state## dy,
42+ moveX: state## moveX,
43+ moveY: state## moveY,
44+ numberActiveTouches: state## numberActiveTouches,
45+ stateID: state## stateID,
46+ vx: state## vx,
47+ vy: state## vy,
48+ x0: state## x0,
49+ y0: state## y0
50+ };
2051
2152external shamelesslyWrapCallback : ' a => callback unit = "% identity " ;
2253
@@ -34,27 +65,10 @@ let animatedEvent l => {
3465 (Js . Obj . empty () )
3566 l;
3667 shamelesslyWrapCallback (
37- AnimatedRe . event ( Array . of_list [ Js . null, Js . Null . return config] ) {"useNativeDriver" : Js . false_}
68+ AnimatedRe . event [| Js . null, Js . Null . return config|] {"useNativeDriver" : Js . false_}
3869 )
3970};
4071
41- let convertCallback x =>
42- switch x {
43- | None => Js . undefined;
44- | Some x => Js . Undefined . return (fun event state => x event## nativeEvent {
45- dx: state## dx,
46- dy: state## dy,
47- moveX: state## moveX,
48- moveY: state## moveY,
49- numberActiveTouches: state## numberActiveTouches,
50- stateID: state## stateID,
51- vx: state## vx,
52- vy: state## vy,
53- x0: state## x0,
54- y0: state## y0
55- });
56- };
57-
5872let create
5973 onMoveShouldSetPanResponder:: (onMoveShouldSetPanResponder : option (callback bool ))=?
6074 onMoveShouldSetPanResponderCapture::
@@ -72,27 +86,27 @@ let create
7286 onPanResponderTerminationRequest:: (onPanResponderTerminationRequest: option (callback bool ))=?
7387 onShouldBlockNativeResponder:: (onShouldBlockNativeResponder: option (callback bool ))=?
7488 () =>
75- _create
76- {
77- "onMoveShouldSetPanResponder ": convertCallback onMoveShouldSetPanResponder ,
78- "onMoveShouldSetPanResponderCapture ": convertCallback onMoveShouldSetPanResponderCapture ,
79- "onStartShouldSetPanResponder" : convertCallback onStartShouldSetPanResponder,
80- "onStartShouldSetPanResponderCapture" : convertCallback onStartShouldSetPanResponderCapture,
81- "onPanResponderReject" : convertCallback onPanResponderReject,
82- "onPanResponderGrant" : convertCallback onPanResponderGrant,
83- "onPanResponderStart" : convertCallback onPanResponderStart,
84- "onPanResponderEnd" : convertCallback onPanResponderEnd,
85- "onPanResponderRelease" : convertCallback onPanResponderRelease,
86- "onPanResponderMove" :
87- switch onPanResponderMove {
88- | None => Js . undefined
89- | Some x =>
90- switch x {
91- | ` update l => Js . Undefined . return (animatedEvent l)
92- | ` callback (x : callback unit ) => Js . Undefined . return x
93- }
94- },
95- "onPanResponderTerminate" : convertCallback onPanResponderTerminate,
96- "onPanResponderTerminationRequest" : convertCallback onPanResponderTerminationRequest,
97- "onShouldBlockNativeResponder" : convertCallback onShouldBlockNativeResponder
98- };
89+ _create {
90+ "onMoveShouldSetPanResponder" : Js . Undefined . from_opt onMoveShouldSetPanResponder,
91+ "onMoveShouldSetPanResponderCapture ": Js . Undefined . from_opt onMoveShouldSetPanResponderCapture ,
92+ "onStartShouldSetPanResponder ": Js . Undefined . from_opt onStartShouldSetPanResponder ,
93+ "onStartShouldSetPanResponderCapture" :
94+ Js . Undefined . from_opt onStartShouldSetPanResponderCapture,
95+ "onPanResponderReject" : Js . Undefined . from_opt onPanResponderReject,
96+ "onPanResponderGrant" : Js . Undefined . from_opt onPanResponderGrant,
97+ "onPanResponderStart" : Js . Undefined . from_opt onPanResponderStart,
98+ "onPanResponderEnd" : Js . Undefined . from_opt onPanResponderEnd,
99+ "onPanResponderRelease" : Js . Undefined . from_opt onPanResponderRelease,
100+ "onPanResponderMove" :
101+ switch onPanResponderMove {
102+ | None => Js . undefined
103+ | Some x =>
104+ switch x {
105+ | ` update l => Js . Undefined . return (animatedEvent l)
106+ | ` callback (x : callback unit ) => Js . Undefined . return x
107+ }
108+ },
109+ "onPanResponderTerminate" : Js . Undefined . from_opt onPanResponderTerminate,
110+ "onPanResponderTerminationRequest" : Js . Undefined . from_opt onPanResponderTerminationRequest,
111+ "onShouldBlockNativeResponder" : Js . Undefined . from_opt onShouldBlockNativeResponder
112+ };
0 commit comments