diff --git a/backend/attachRendererFiber.js b/backend/attachRendererFiber.js index 007bc9b48d..f086c9e401 100644 --- a/backend/attachRendererFiber.js +++ b/backend/attachRendererFiber.js @@ -201,6 +201,8 @@ function attachRendererFiber(hook: Hook, rid: string, renderer: ReactRenderer): var nodeType = null; var name = null; var text = null; + var needHideBySymbol = null; + var needHideByParensInName = null; // Profiler data var actualDuration = null; @@ -225,6 +227,8 @@ function attachRendererFiber(hook: Hook, rid: string, renderer: ReactRenderer): publicInstance = fiber.stateNode; props = fiber.memoizedProps; state = fiber.memoizedState; + needHideBySymbol = typeof Symbol === 'function' && fiber.type[Symbol.for('react.devtools.hide')]; + needHideByParensInName = /\(.*\)/.test(name); if (publicInstance != null) { context = publicInstance.context; if (context && Object.keys(context).length === 0) { @@ -414,6 +418,8 @@ function attachRendererFiber(hook: Hook, rid: string, renderer: ReactRenderer): updater, publicInstance, memoizedInteractions, + needHideBySymbol, + needHideByParensInName, // Profiler data actualDuration, diff --git a/backend/getData.js b/backend/getData.js index cccb4fa1e4..596a010e83 100644 --- a/backend/getData.js +++ b/backend/getData.js @@ -165,6 +165,14 @@ function getData(internalInstance: Object): DataType { }; } + const needHideBySymbol = nodeType === 'Composite' && + typeof Symbol === 'function' && + typeof type === 'function' && + type[Symbol.for('react.devtools.hide')]; + const needHideByParensInName = nodeType === 'Composite' && + typeof type === 'function' && + name && /\(.*\)/.test(name); + // $FlowFixMe return { nodeType, @@ -180,6 +188,8 @@ function getData(internalInstance: Object): DataType { text, updater, publicInstance, + needHideBySymbol, + needHideByParensInName, }; } diff --git a/backend/types.js b/backend/types.js index 569bd4c1c8..d5a478d055 100644 --- a/backend/types.js +++ b/backend/types.js @@ -35,6 +35,8 @@ export type DataType = { text: ?string, updater: ?(CompositeUpdater | NativeUpdater), publicInstance: ?Object, + needHideBySymbol: boolean, + needHideByParensInName: boolean }; // This type is entirely opaque to the backend. diff --git a/frontend/Breadcrumb.js b/frontend/Breadcrumb.js index 5d92698f0f..278349ed3d 100644 --- a/frontend/Breadcrumb.js +++ b/frontend/Breadcrumb.js @@ -19,7 +19,7 @@ const PropTypes = require('prop-types'); const React = require('react'); const decorate = require('./decorate'); -type BreadcrumbPath = Array<{id: ElementID, node: Object}>; +type BreadcrumbPath = Array<{id: ElementID, node: Object, isDimmedNode: boolean}>; type Props = { hover: (string, boolean) => void; @@ -70,13 +70,9 @@ class Breadcrumb extends React.Component { return (