InspectedElementSuspendedBy() — react Function Reference
Architecture documentation for the InspectedElementSuspendedBy() function in InspectedElementSuspendedBy.js from the react codebase.
Entity Profile
Dependency Diagram
graph TD 597c13cd_b92c_21d9_1d3e_bfc0d04a3363["InspectedElementSuspendedBy()"] 72d570aa_3875_3688_0200_4617e04d04ed["InspectedElementSuspendedBy.js"] 597c13cd_b92c_21d9_1d3e_bfc0d04a3363 -->|defined in| 72d570aa_3875_3688_0200_4617e04d04ed 24a5b0f3_4e3a_ff70_e4ed_c4392045f885["serializeDataForCopy()"] 597c13cd_b92c_21d9_1d3e_bfc0d04a3363 -->|calls| 24a5b0f3_4e3a_ff70_e4ed_c4392045f885 style 597c13cd_b92c_21d9_1d3e_bfc0d04a3363 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/react-devtools-shared/src/devtools/views/Components/InspectedElementSuspendedBy.js lines 456–626
export default function InspectedElementSuspendedBy({
bridge,
element,
inspectedElement,
store,
}: Props): React.Node {
const {suspendedBy, suspendedByRange} = inspectedElement;
// Skip the section if nothing suspended this component.
if (
(suspendedBy == null || suspendedBy.length === 0) &&
inspectedElement.unknownSuspenders === UNKNOWN_SUSPENDERS_NONE
) {
if (inspectedElement.isSuspended) {
// If we're still suspended, show a place holder until the data loads.
// We don't know what we're suspended by until it has loaded.
return (
<div>
<div className={styles.HeaderRow}>
<div className={styles.Header}>suspended...</div>
</div>
</div>
);
}
return null;
}
const handleCopy = withPermissionsCheck(
{permissions: ['clipboardWrite']},
() => copy(serializeDataForCopy(suspendedBy)),
);
let minTime = Infinity;
let maxTime = -Infinity;
if (suspendedByRange !== null) {
// The range of the whole suspense boundary.
minTime = suspendedByRange[0];
maxTime = suspendedByRange[1];
}
for (let i = 0; i < suspendedBy.length; i++) {
const asyncInfo: SerializedAsyncInfo = suspendedBy[i];
if (asyncInfo.awaited.start < minTime) {
minTime = asyncInfo.awaited.start;
}
if (asyncInfo.awaited.end > maxTime) {
maxTime = asyncInfo.awaited.end;
}
}
if (maxTime - minTime < 25) {
// Stretch the time span a bit to ensure that we don't show
// large bars that represent very small timespans.
minTime = maxTime - 25;
}
const sortedSuspendedBy =
suspendedBy === null ? [] : suspendedBy.map(withIndex);
sortedSuspendedBy.sort(compareTime);
// Organize into groups of consecutive entries with the same name.
const groups = [];
let currentGroup = null;
let currentGroupName = null;
let currentGroupEnv = null;
for (let i = 0; i < sortedSuspendedBy.length; i++) {
const entry = sortedSuspendedBy[i];
const name = entry.value.awaited.name;
const env = entry.value.awaited.env;
if (
currentGroupName !== name ||
currentGroupEnv !== env ||
!name ||
name === 'Promise' ||
currentGroup === null
) {
// Create a new group.
currentGroupName = name;
currentGroupEnv = env;
currentGroup = [];
groups.push(currentGroup);
}
Domain
Subdomains
Defined In
Calls
Source
Frequently Asked Questions
What does InspectedElementSuspendedBy() do?
InspectedElementSuspendedBy() is a function in the react codebase, defined in packages/react-devtools-shared/src/devtools/views/Components/InspectedElementSuspendedBy.js.
Where is InspectedElementSuspendedBy() defined?
InspectedElementSuspendedBy() is defined in packages/react-devtools-shared/src/devtools/views/Components/InspectedElementSuspendedBy.js at line 456.
What does InspectedElementSuspendedBy() call?
InspectedElementSuspendedBy() calls 1 function(s): serializeDataForCopy.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free