Skip to content

Commit c033d98

Browse files
committed
Fix event registration for RN@master
1 parent 2d1a280 commit c033d98

File tree

1 file changed

+28
-11
lines changed

1 file changed

+28
-11
lines changed

createHandler.js

+28-11
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,27 @@ import State from './State';
77

88
const { UIManager } = NativeModules;
99

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+
1026
// Wrap JS responder calls and notify gesture handler manager
1127
const {
1228
setJSResponder: oldSetJSResponder,
1329
clearJSResponder: oldClearJSResponder,
30+
getConstants: oldGetConstants,
1431
} = UIManager;
1532
UIManager.setJSResponder = (tag, blockNativeResponder) => {
1633
RNGestureHandlerModule.handleSetJSResponder(tag, blockNativeResponder);
@@ -20,17 +37,17 @@ UIManager.clearJSResponder = () => {
2037
RNGestureHandlerModule.handleClearJSResponder();
2138
oldClearJSResponder();
2239
};
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+
};
3451
};
3552

3653
let handlerTag = 1;

0 commit comments

Comments
 (0)