Revert "Hold host functions in var" (#26079)
Revert https://github.com/facebook/react/commit/353c30252. The commit breaks old React Native where `nativeFabricUIManager` is undefined. I need to add unit test for this to make sure it doesn't happen in the future and create a mechanism to deal with undefined `nativeFabricUIManager`. This is to unblock React sync to React Native.
Samuel Susla committed
Jan 30, 2023 at 17:23 UTC
9b1423cc09c11f0a4e05b0ccb66d185093a16413
8 files changed
+9
-31
packages/react-native-renderer/src/ReactFabric.js
+2
-7
@@ -44,11 +44,6 @@ import {LegacyRoot, ConcurrentRoot} from 'react-reconciler/src/ReactRootTags';
44
import ReactSharedInternals from 'shared/ReactSharedInternals';
45
import getComponentNameFromType from 'shared/getComponentNameFromType';
46
47
-const {
48
- dispatchCommand: fabricDispatchCommand,
49
- sendAccessibilityEvent: fabricSendAccessibilityEvent,
50
-} = nativeFabricUIManager;
51
-
47
const ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;
48
49
function findHostInstance_DEPRECATED<TElementType: ElementType>(
@@ -173,7 +168,7 @@ function dispatchCommand(handle: any, command: string, args: Array<any>) {
168
if (handle._internalInstanceHandle != null) {
169
const {stateNode} = handle._internalInstanceHandle;
170
if (stateNode != null) {
176
- fabricDispatchCommand(stateNode.node, command, args);
171
+ nativeFabricUIManager.dispatchCommand(stateNode.node, command, args);
172
}
173
} else {
174
UIManager.dispatchViewManagerCommand(handle._nativeTag, command, args);
@@ -194,7 +189,7 @@ function sendAccessibilityEvent(handle: any, eventType: string) {
189
if (handle._internalInstanceHandle != null) {
190
const {stateNode} = handle._internalInstanceHandle;
191
if (stateNode != null) {
197
- fabricSendAccessibilityEvent(stateNode.node, eventType);
192
+ nativeFabricUIManager.sendAccessibilityEvent(stateNode.node, eventType);
193
}
194
} else {
195
legacySendAccessibilityEvent(handle._nativeTag, eventType);
packages/react-native-renderer/src/ReactFabricGlobalResponderHandler.js
+2
-4
@@ -10,8 +10,6 @@
10
// Module provided by RN:
11
import {UIManager} from 'react-native/Libraries/ReactPrivate/ReactNativePrivateInterface';
12
13
-const {setIsJSResponder} = nativeFabricUIManager;
14
-
13
const ReactFabricGlobalResponderHandler = {
14
onChange: function(from: any, to: any, blockNativeResponder: boolean) {
15
const fromOrTo = from || to;
@@ -23,7 +21,7 @@ const ReactFabricGlobalResponderHandler = {
21
if (isFabric) {
22
if (from) {
23
// equivalent to clearJSResponder
26
- setIsJSResponder(
24
+ nativeFabricUIManager.setIsJSResponder(
25
from.stateNode.node,
26
false,
27
blockNativeResponder || false,
@@ -32,7 +30,7 @@ const ReactFabricGlobalResponderHandler = {
30
31
if (to) {
32
// equivalent to setJSResponder
35
- setIsJSResponder(
33
+ nativeFabricUIManager.setIsJSResponder(
34
to.stateNode.node,
35
true,
36
blockNativeResponder || false,
packages/react-native-renderer/src/ReactNativeFiberInspector.js
+3
-5
@@ -26,8 +26,6 @@ if (__DEV__) {
26
Object.freeze(emptyObject);
27
}
28
29
-const {measure, findNodeAtPoint} = nativeFabricUIManager;
30
-
29
let createHierarchy;
30
let getHostNode;
31
let getHostProps;
@@ -56,7 +54,7 @@ if (__DEV__ || enableGetInspectorDataForInstanceInProduction) {
54
hostFiber.stateNode.node;
55
56
if (shadowNode) {
59
- measure(shadowNode, callback);
57
+ nativeFabricUIManager.measure(shadowNode, callback);
58
} else {
59
return UIManager.measure(
60
getHostNode(fiber, findNodeHandle),
@@ -202,7 +200,7 @@ if (__DEV__) {
200
201
if (inspectedView._internalInstanceHandle != null) {
202
// For Fabric we can look up the instance handle directly and measure it.
205
- findNodeAtPoint(
203
+ nativeFabricUIManager.findNodeAtPoint(
204
inspectedView._internalInstanceHandle.stateNode.node,
205
locationX,
206
locationY,
@@ -222,7 +220,7 @@ if (__DEV__) {
220
const nativeViewTag =
221
internalInstanceHandle.stateNode.canonical._nativeTag;
222
225
- measure(
223
+ nativeFabricUIManager.measure(
224
internalInstanceHandle.stateNode.node,
225
(x, y, width, height, pageX, pageY) => {
226
const inspectorData = getInspectorDataForInstance(
packages/react-native-renderer/src/ReactNativeRenderer.js
+2
-7
@@ -49,11 +49,6 @@ import getComponentNameFromType from 'shared/getComponentNameFromType';
49
50
const ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;
51
52
-const {
53
- sendAccessibilityEvent: fabricSendAccessibilityEvent,
54
- dispatchCommand: fabricDispatchCommand,
55
-} = nativeFabricUIManager;
56
-
52
function findHostInstance_DEPRECATED(
53
componentOrHandle: any,
54
): ?React$ElementRef<HostComponent<mixed>> {
@@ -170,7 +165,7 @@ function dispatchCommand(handle: any, command: string, args: Array<any>) {
165
if (handle._internalInstanceHandle != null) {
166
const {stateNode} = handle._internalInstanceHandle;
167
if (stateNode != null) {
173
- fabricDispatchCommand(stateNode.node, command, args);
168
+ nativeFabricUIManager.dispatchCommand(stateNode.node, command, args);
169
}
170
} else {
171
UIManager.dispatchViewManagerCommand(handle._nativeTag, command, args);
@@ -191,7 +186,7 @@ function sendAccessibilityEvent(handle: any, eventType: string) {
186
if (handle._internalInstanceHandle != null) {
187
const {stateNode} = handle._internalInstanceHandle;
188
if (stateNode != null) {
194
- fabricSendAccessibilityEvent(stateNode.node, eventType);
189
+ nativeFabricUIManager.sendAccessibilityEvent(stateNode.node, eventType);
190
}
191
} else {
192
legacySendAccessibilityEvent(handle._nativeTag, eventType);
packages/react-native-renderer/src/__tests__/ReactNativeError-test.internal.js
-2
@@ -28,8 +28,6 @@ describe('ReactNativeError', () => {
28
beforeEach(() => {
29
jest.resetModules();
30
31
- require('react-native/Libraries/ReactPrivate/InitializeNativeFabricUIManager');
32
-
31
React = require('react');
32
ReactNative = require('react-native-renderer');
33
createReactNativeComponentClass = require('react-native/Libraries/ReactPrivate/ReactNativePrivateInterface')
packages/react-native-renderer/src/__tests__/ReactNativeEvents-test.internal.js
-2
@@ -63,8 +63,6 @@ const fakeRequireNativeComponent = (uiViewClassName, validAttributes) => {
63
beforeEach(() => {
64
jest.resetModules();
65
66
- require('react-native/Libraries/ReactPrivate/InitializeNativeFabricUIManager');
67
-
66
PropTypes = require('prop-types');
67
RCTEventEmitter = require('react-native/Libraries/ReactPrivate/ReactNativePrivateInterface')
68
.RCTEventEmitter;
packages/react-native-renderer/src/__tests__/ReactNativeMount-test.internal.js
-2
@@ -30,8 +30,6 @@ describe('ReactNative', () => {
30
beforeEach(() => {
31
jest.resetModules();
32
33
- require('react-native/Libraries/ReactPrivate/InitializeNativeFabricUIManager');
34
-
33
React = require('react');
34
StrictMode = React.StrictMode;
35
ReactNative = require('react-native-renderer');
packages/react-native-renderer/src/__tests__/createReactNativeComponentClass-test.internal.js
-2
@@ -18,8 +18,6 @@ describe('createReactNativeComponentClass', () => {
18
beforeEach(() => {
19
jest.resetModules();
20
21
- require('react-native/Libraries/ReactPrivate/InitializeNativeFabricUIManager');
22
-
21
createReactNativeComponentClass = require('react-native/Libraries/ReactPrivate/ReactNativePrivateInterface')
22
.ReactNativeViewConfigRegistry.register;
23
React = require('react');