diff --git a/packages/react-devtools-shared/src/devtools/views/SuspenseTab/SuspenseRects.css b/packages/react-devtools-shared/src/devtools/views/SuspenseTab/SuspenseRects.css index 0af7baf51a6..aadb6a0fba0 100644 --- a/packages/react-devtools-shared/src/devtools/views/SuspenseTab/SuspenseRects.css +++ b/packages/react-devtools-shared/src/devtools/views/SuspenseTab/SuspenseRects.css @@ -6,12 +6,6 @@ border-radius: 0.25rem; } -.SuspenseRectsContainer[data-highlighted='true'] { - outline-color: var(--color-transition); - outline-style: solid; - outline-width: 4px; -} - .SuspenseRectsRoot { cursor: pointer; outline-color: var(--color-transition); @@ -106,6 +100,10 @@ pointer-events: none; } +.SuspenseRectOutlineRoot { + outline-color: var(--color-transition); +} + .SuspenseRectsBoundary[data-selected='true'] > .SuspenseRectsRect { box-shadow: none; } diff --git a/packages/react-devtools-shared/src/devtools/views/SuspenseTab/SuspenseRects.js b/packages/react-devtools-shared/src/devtools/views/SuspenseTab/SuspenseRects.js index 556238f1ea9..e08cdc41736 100644 --- a/packages/react-devtools-shared/src/devtools/views/SuspenseTab/SuspenseRects.js +++ b/packages/react-devtools-shared/src/devtools/views/SuspenseTab/SuspenseRects.js @@ -236,13 +236,6 @@ function SuspenseRects({ {suspense.name} ) : null} - {selected && visible ? ( - - ) : null} ); @@ -514,6 +507,28 @@ function SuspenseRectsContainer({ scaleRef.current = boundingBoxWidth; }, [boundingBoxWidth]); + let selectedBoundingBox = null; + let selectedEnvironment = null; + if (isRootSelected) { + selectedBoundingBox = boundingBox; + selectedEnvironment = rootEnvironment; + } else if (inspectedElementID !== null) { + const selectedSuspenseNode = store.getSuspenseByID(inspectedElementID); + if ( + selectedSuspenseNode !== null && + (selectedSuspenseNode.hasUniqueSuspenders || !uniqueSuspendersOnly) + ) { + selectedBoundingBox = getBoundingBox(selectedSuspenseNode.rects); + for (let i = 0; i < timeline.length; i++) { + const timelineStep = timeline[i]; + if (timelineStep.id === inspectedElementID) { + selectedEnvironment = timelineStep.environment; + break; + } + } + } + } + return (
{ return ; })} + {selectedBoundingBox !== null ? ( + + ) : null}