@@ -7,10 +7,27 @@ import State from './State';
7
7
8
8
const { UIManager } = NativeModules ;
9
9
10
+ const customGHEventsConfig = {
11
+ onGestureHandlerEvent : { registrationName : 'onGestureHandlerEvent' } ,
12
+ onGestureHandlerStateChange : {
13
+ registrationName : 'onGestureHandlerStateChange' ,
14
+ } ,
15
+ } ;
16
+
17
+ // Add gesture specific events to genericDirectEventTypes object exported from UIManager
18
+ // native module.
19
+ // Once new event types are registered with react it is possible to dispatch these
20
+ // events to all kind of native views.
21
+ UIManager . genericDirectEventTypes = {
22
+ ...UIManager . genericDirectEventTypes ,
23
+ ...customGHEventsConfig ,
24
+ } ;
25
+
10
26
// Wrap JS responder calls and notify gesture handler manager
11
27
const {
12
28
setJSResponder : oldSetJSResponder ,
13
29
clearJSResponder : oldClearJSResponder ,
30
+ getConstants : oldGetConstants ,
14
31
} = UIManager ;
15
32
UIManager . setJSResponder = ( tag , blockNativeResponder ) => {
16
33
RNGestureHandlerModule . handleSetJSResponder ( tag , blockNativeResponder ) ;
@@ -20,17 +37,17 @@ UIManager.clearJSResponder = () => {
20
37
RNGestureHandlerModule . handleClearJSResponder ( ) ;
21
38
oldClearJSResponder ( ) ;
22
39
} ;
23
-
24
- // Add gesture specific events to genericDirectEventTypes object exported from UIManager
25
- // native module.
26
- // Once new event types are registered with react it is possible to dispatch these
27
- // events to all kind of native views.
28
- UIManager . genericDirectEventTypes = {
29
- ... UIManager . genericDirectEventTypes ,
30
- onGestureHandlerEvent : { registrationName : 'onGestureHandlerEvent' } ,
31
- onGestureHandlerStateChange : {
32
- registrationName : 'onGestureHandlerStateChange' ,
33
- } ,
40
+ // We also add GH specific events to the constants object returned by
41
+ // UIManager.getConstants to make it work with the newest version of RN
42
+ UIManager . getConstants = ( ) => {
43
+ const constants = oldGetConstants ( ) ;
44
+ return {
45
+ ... constants ,
46
+ genericDirectEventTypes : {
47
+ ... constants . genericDirectEventTypes ,
48
+ ... customGHEventsConfig ,
49
+ } ,
50
+ } ;
34
51
} ;
35
52
36
53
let handlerTag = 1 ;
0 commit comments