@samitouri / QOS-React / commits / a463fef31b

Revert "[React Native] Add getInspectorDataForViewAtPoint (#18233)"

This reverts commit bf351089a0ee27405b3d5c0f474941a4946f2f37.

Sebastian Markbage committed Mar 11, 2020 at 10:05 UTC a463fef31b2849b5fac652f4fb7d311dec9a4d4b
9 files changed +12 -235
packages/react-native-renderer/src/ReactFabric.js
+1 -8
@@ -34,10 +34,7 @@ import ReactVersion from 'shared/ReactVersion';
34 import {UIManager} from 'react-native/Libraries/ReactPrivate/ReactNativePrivateInterface';
35
36 import {getClosestInstanceFromNode} from './ReactFabricComponentTree';
37 -import {
38 - getInspectorDataForViewAtPoint,
39 - getInspectorDataForViewTag,
40 -} from './ReactNativeFiberInspector';
37 +import {getInspectorDataForViewTag} from './ReactNativeFiberInspector';
38
39 import {LegacyRoot} from 'shared/ReactRootTags';
40 import ReactSharedInternals from 'shared/ReactSharedInternals';
@@ -236,10 +233,6 @@ export {
233 injectIntoDevTools({
234 findFiberByHostInstance: getClosestInstanceFromNode,
235 getInspectorDataForViewTag: getInspectorDataForViewTag,
239 - getInspectorDataForViewAtPoint: getInspectorDataForViewAtPoint.bind(
240 - null,
241 - findNodeHandle,
242 - ),
236 bundleType: __DEV__ ? 1 : 0,
237 version: ReactVersion,
238 rendererPackageName: 'react-native-renderer',
packages/react-native-renderer/src/ReactNativeFiberHostComponent.js
+1 -7
@@ -34,17 +34,11 @@ class ReactNativeFiberHostComponent {
34 _children: Array<Instance | number>;
35 _nativeTag: number;
36 viewConfig: ReactNativeBaseComponentViewConfig<>;
37 - _internalFiberInstanceHandle: Object;
37
39 - constructor(
40 - tag: number,
41 - viewConfig: ReactNativeBaseComponentViewConfig<>,
42 - internalInstanceHandle: Object,
43 - ) {
38 + constructor(tag: number, viewConfig: ReactNativeBaseComponentViewConfig<>) {
39 this._nativeTag = tag;
40 this._children = [];
41 this.viewConfig = viewConfig;
47 - this._internalFiberInstanceHandle = internalInstanceHandle;
42 }
43
44 blur() {
packages/react-native-renderer/src/ReactNativeFiberInspector.js
+7 -139
@@ -8,7 +8,6 @@
8 */
9
10 import type {Fiber} from 'react-reconciler/src/ReactFiber';
11 -import type {TouchedViewDataAtPoint, InspectorData} from './ReactNativeTypes';
11
12 import {
13 findCurrentHostFiber,
@@ -28,7 +27,6 @@ if (__DEV__) {
27 }
28
29 let getInspectorDataForViewTag;
31 -let getInspectorDataForViewAtPoint;
30
31 if (__DEV__) {
32 const traverseOwnerTreeUp = function(hierarchy, instance: any) {
@@ -82,68 +80,15 @@ if (__DEV__) {
80 const createHierarchy = function(fiberHierarchy) {
81 return fiberHierarchy.map(fiber => ({
82 name: getComponentName(fiber.type),
85 - getInspectorData: findNodeHandle => {
86 - return {
87 - props: getHostProps(fiber),
88 - source: fiber._debugSource,
89 - measure: callback => {
90 - // If this is Fabric, we'll find a ShadowNode and use that to measure.
91 - const hostFiber = findCurrentHostFiber(fiber);
92 - const shadowNode =
93 - hostFiber != null &&
94 - hostFiber.stateNode !== null &&
95 - hostFiber.stateNode.node;
96 -
97 - if (shadowNode) {
98 - nativeFabricUIManager.measure(shadowNode, function(
99 - x,
100 - y,
101 - width,
102 - height,
103 - pageX,
104 - pageY,
105 - ) {
106 - callback(x, y, width, height, pageX, pageY);
107 - });
108 - } else {
109 - return UIManager.measure(
110 - getHostNode(fiber, findNodeHandle),
111 - callback,
112 - );
113 - }
114 - },
115 - };
116 - },
83 + getInspectorData: findNodeHandle => ({
84 + measure: callback =>
85 + UIManager.measure(getHostNode(fiber, findNodeHandle), callback),
86 + props: getHostProps(fiber),
87 + source: fiber._debugSource,
88 + }),
89 }));
90 };
91
120 - const getInspectorDataForInstance = function(closestInstance): InspectorData {
121 - // Handle case where user clicks outside of ReactNative
122 - if (!closestInstance) {
123 - return {
124 - hierarchy: [],
125 - props: emptyObject,
126 - selection: null,
127 - source: null,
128 - };
129 - }
130 -
131 - const fiber = findCurrentFiberUsingSlowPath(closestInstance);
132 - const fiberHierarchy = getOwnerHierarchy(fiber);
133 - const instance = lastNonHostInstance(fiberHierarchy);
134 - const hierarchy = createHierarchy(fiberHierarchy);
135 - const props = getHostProps(instance);
136 - const source = instance._debugSource;
137 - const selection = fiberHierarchy.indexOf(instance);
138 -
139 - return {
140 - hierarchy,
141 - props,
142 - selection,
143 - source,
144 - };
145 - };
146 -
92 getInspectorDataForViewTag = function(viewTag: number): Object {
93 const closestInstance = getClosestInstanceFromNode(viewTag);
94
@@ -172,70 +117,6 @@ if (__DEV__) {
117 source,
118 };
119 };
175 -
176 - getInspectorDataForViewAtPoint = function(
177 - findNodeHandle: (componentOrHandle: any) => ?number,
178 - inspectedView: Object,
179 - locationX: number,
180 - locationY: number,
181 - callback: (viewData: TouchedViewDataAtPoint) => mixed,
182 - ): void {
183 - let closestInstance = null;
184 -
185 - if (inspectedView._internalInstanceHandle != null) {
186 - // For Fabric we can look up the instance handle directly and measure it.
187 - nativeFabricUIManager.findNodeAtPoint(
188 - inspectedView._internalInstanceHandle.stateNode.node,
189 - locationX,
190 - locationY,
191 - internalInstanceHandle => {
192 - if (internalInstanceHandle == null) {
193 - callback({
194 - pointerY: locationY,
195 - frame: {left: 0, top: 0, width: 0, height: 0},
196 - ...getInspectorDataForInstance(closestInstance),
197 - });
198 - }
199 -
200 - closestInstance =
201 - internalInstanceHandle.stateNode.canonical._internalInstanceHandle;
202 - nativeFabricUIManager.measure(
203 - internalInstanceHandle.stateNode.node,
204 - (x, y, width, height, pageX, pageY) => {
205 - callback({
206 - pointerY: locationY,
207 - frame: {left: pageX, top: pageY, width, height},
208 - ...getInspectorDataForInstance(closestInstance),
209 - });
210 - },
211 - );
212 - },
213 - );
214 - } else if (inspectedView._internalFiberInstanceHandle != null) {
215 - // For Paper we fall back to the old strategy using the React tag.
216 - UIManager.findSubviewIn(
217 - findNodeHandle(inspectedView),
218 - [locationX, locationY],
219 - (nativeViewTag, left, top, width, height) => {
220 - const inspectorData = getInspectorDataForInstance(
221 - getClosestInstanceFromNode(nativeViewTag),
222 - );
223 - callback({
224 - ...inspectorData,
225 - pointerY: locationY,
226 - frame: {left, top, width, height},
227 - touchedViewTag: nativeViewTag,
228 - });
229 - },
230 - );
231 - } else if (__DEV__) {
232 - console.error(
233 - 'getInspectorDataForViewAtPoint expects to receieve a host component',
234 - );
235 -
236 - return;
237 - }
238 - };
120 } else {
121 getInspectorDataForViewTag = () => {
122 invariant(
@@ -243,19 +124,6 @@ if (__DEV__) {
124 'getInspectorDataForViewTag() is not available in production',
125 );
126 };
246 -
247 - getInspectorDataForViewAtPoint = (
248 - findNodeHandle: (componentOrHandle: any) => ?number,
249 - inspectedView: Object,
250 - locationX: number,
251 - locationY: number,
252 - callback: (viewData: TouchedViewDataAtPoint) => mixed,
253 - ): void => {
254 - invariant(
255 - false,
256 - 'getInspectorDataForViewAtPoint() is not available in production.',
257 - );
258 - };
127 }
128
261 -export {getInspectorDataForViewAtPoint, getInspectorDataForViewTag};
129 +export {getInspectorDataForViewTag};
packages/react-native-renderer/src/ReactNativeHostConfig.js
+1 -5
@@ -112,11 +112,7 @@ export function createInstance(
112 updatePayload, // props
113 );
114
115 - const component = new ReactNativeFiberHostComponent(
116 - tag,
117 - viewConfig,
118 - internalInstanceHandle,
119 - );
115 + const component = new ReactNativeFiberHostComponent(tag, viewConfig);
116
117 precacheFiberNode(internalInstanceHandle, tag);
118 updateFiberProps(tag, props);
packages/react-native-renderer/src/ReactNativeRenderer.js
+1 -8
@@ -36,10 +36,7 @@ import ReactVersion from 'shared/ReactVersion';
36 import {UIManager} from 'react-native/Libraries/ReactPrivate/ReactNativePrivateInterface';
37
38 import {getClosestInstanceFromNode} from './ReactNativeComponentTree';
39 -import {
40 - getInspectorDataForViewTag,
41 - getInspectorDataForViewAtPoint,
42 -} from './ReactNativeFiberInspector';
39 +import {getInspectorDataForViewTag} from './ReactNativeFiberInspector';
40
41 import {LegacyRoot} from 'shared/ReactRootTags';
42 import ReactSharedInternals from 'shared/ReactSharedInternals';
@@ -250,10 +247,6 @@ export {
247 injectIntoDevTools({
248 findFiberByHostInstance: getClosestInstanceFromNode,
249 getInspectorDataForViewTag: getInspectorDataForViewTag,
253 - getInspectorDataForViewAtPoint: getInspectorDataForViewAtPoint.bind(
254 - null,
255 - findNodeHandle,
256 - ),
250 bundleType: __DEV__ ? 1 : 0,
251 version: ReactVersion,
252 rendererPackageName: 'react-native-renderer',
packages/react-native-renderer/src/ReactNativeTypes.js
-40
@@ -100,46 +100,6 @@ type SecretInternalsType = {
100 ...
101 };
102
103 -type InspectorDataProps = $ReadOnly<{
104 - [propName: string]: string,
105 - ...,
106 -}>;
107 -
108 -type InspectorDataSource = $ReadOnly<{|
109 - fileName?: string,
110 - lineNumber?: number,
111 -|}>;
112 -
113 -type InspectorDataGetter = (
114 - (componentOrHandle: any) => ?number,
115 -) => $ReadOnly<{|
116 - measure: Function,
117 - props: InspectorDataProps,
118 - source: InspectorDataSource,
119 -|}>;
120 -
121 -export type InspectorData = $ReadOnly<{|
122 - hierarchy: Array<{|
123 - name: ?string,
124 - getInspectorData: InspectorDataGetter,
125 - |}>,
126 - selection: ?number,
127 - props: InspectorDataProps,
128 - source: ?InspectorDataSource,
129 -|}>;
130 -
131 -export type TouchedViewDataAtPoint = $ReadOnly<{|
132 - pointerY: number,
133 - touchedViewTag?: number,
134 - frame: $ReadOnly<{|
135 - top: number,
136 - left: number,
137 - width: number,
138 - height: number,
139 - |}>,
140 - ...InspectorData,
141 -|}>;
142 -
103 /**
104 * Flat ReactNative renderer bundles are too big for Flow to parse efficiently.
105 * Provide minimal Flow typing for the high-level RN API and call it a day.
packages/react-reconciler/src/ReactFiberReconciler.js
-8
@@ -10,7 +10,6 @@
10 import type {Fiber} from './ReactFiber';
11 import type {FiberRoot} from './ReactFiberRoot';
12 import type {RootTag} from 'shared/ReactRootTags';
13 -import type {TouchedViewDataAtPoint} from 'react-native-renderer/src/ReactNativeTypes';
13 import type {
14 Instance,
15 TextInstance,
@@ -110,13 +109,6 @@ type DevToolsConfig = {|
109 // This API is unfortunately RN-specific.
110 // TODO: Change it to accept Fiber instead and type it properly.
111 getInspectorDataForViewTag?: (tag: number) => Object,
113 - // Used by RN in-app inspector.
114 - getInspectorDataForViewAtPoint?: (
115 - inspectedView: Object,
116 - locationX: number,
117 - locationY: number,
118 - callback: (viewData: TouchedViewDataAtPoint) => mixed,
119 - ) => void,
112 |};
113
114 let didWarnAboutNestedUpdates;
scripts/error-codes/codes.json
+1 -2
@@ -346,6 +346,5 @@
346 "345": "Root did not complete. This is a bug in React.",
347 "346": "An event responder context was used outside of an event cycle.",
348 "347": "Maps are not valid as a React child (found: %s). Consider converting children to an array of keyed ReactElements instead.",
349 - "348": "ensureListeningTo(): received a container that was not an element node. This is likely a bug in React.",
350 - "349": "getInspectorDataForViewAtPoint() is not available in production."
349 + "348": "ensureListeningTo(): received a container that was not an element node. This is likely a bug in React."
350 }
scripts/flow/react-native-host-hooks.js
-18
@@ -18,7 +18,6 @@ import type {
18 } from 'react-native-renderer/src/ReactNativeTypes';
19 import type {RNTopLevelEventType} from 'legacy-events/TopLevelEventTypes';
20 import type {CapturedError} from 'react-reconciler/src/ReactCapturedValue';
21 -import type {Fiber} from 'react-reconciler/src/ReactFiber';
21
22 type DeepDifferOptions = {|+unsafelyIgnoreFunctions?: boolean|};
23
@@ -97,17 +96,6 @@ declare module 'react-native/Libraries/ReactPrivate/ReactNativePrivateInterface'
96 ) => Promise<any>,
97 setJSResponder: (reactTag: number, blockNativeResponder: boolean) => void,
98 clearJSResponder: () => void,
100 - findSubviewIn: (
101 - reactTag: ?number,
102 - point: Array<number>,
103 - callback: (
104 - nativeViewTag: number,
105 - left: number,
106 - top: number,
107 - width: number,
108 - height: number,
109 - ) => void,
110 - ) => void,
99 ...
100 };
101 declare export var BatchedBridge: {
@@ -168,12 +156,6 @@ declare var nativeFabricUIManager: {
156 onFail: () => void,
157 onSuccess: MeasureLayoutOnSuccessCallback,
158 ) => void,
171 - findNodeAtPoint: (
172 - node: Node,
173 - locationX: number,
174 - locationY: number,
175 - callback: (Fiber) => void,
176 - ) => void,
159 ...
160 };
161