@samitouri / QOS-React / commits / 9b1423cc09

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');