Home / Function/ InspectedElementSuspendedBy() — react Function Reference

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

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