Home / Function/ InspectedElementHooksTree() — react Function Reference

InspectedElementHooksTree() — react Function Reference

Architecture documentation for the InspectedElementHooksTree() function in InspectedElementHooksTree.js from the react codebase.

Entity Profile

Dependency Diagram

graph TD
  0fa73964_8efc_3a75_e0b4_c7c54024c46a["InspectedElementHooksTree()"]
  5a9f89d7_52b7_04f5_ab3d_8ec03c9054e3["InspectedElementHooksTree.js"]
  0fa73964_8efc_3a75_e0b4_c7c54024c46a -->|defined in| 5a9f89d7_52b7_04f5_ab3d_8ec03c9054e3
  3213df1c_3955_bce5_16ea_373249c47eb6["serializeHooksForCopy()"]
  0fa73964_8efc_3a75_e0b4_c7c54024c46a -->|calls| 3213df1c_3955_bce5_16ea_373249c47eb6
  style 0fa73964_8efc_3a75_e0b4_c7c54024c46a fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/react-devtools-shared/src/devtools/views/Components/InspectedElementHooksTree.js lines 44–113

export function InspectedElementHooksTree({
  bridge,
  element,
  hookNames,
  inspectedElement,
  parseHookNames,
  store,
  toggleParseHookNames,
}: HooksTreeViewProps): React.Node {
  const {hooks, id} = inspectedElement;

  // Changing parseHookNames is done in a transition, because it suspends.
  // This value is done outside of the transition, so the UI toggle feels responsive.
  const [parseHookNamesOptimistic, setParseHookNamesOptimistic] =
    useState(parseHookNames);
  const handleChange = () => {
    setParseHookNamesOptimistic(!parseHookNames);
    toggleParseHookNames();
  };

  const hookNamesModuleLoader = useContext(HookNamesModuleLoaderContext);

  const hookParsingFailed = parseHookNames && hookNames === null;

  let toggleTitle;
  if (hookParsingFailed) {
    toggleTitle = 'Hook parsing failed';
  } else if (parseHookNames) {
    toggleTitle = 'Parsing hook names ...';
  } else {
    toggleTitle = 'Parse hook names (may be slow)';
  }

  const handleCopy = () => copy(serializeHooksForCopy(hooks));

  if (hooks === null) {
    return null;
  } else {
    return (
      <div data-testname="InspectedElementHooksTree">
        <div className={styles.HeaderRow}>
          <div className={styles.Header}>hooks</div>
          {typeof hookNamesModuleLoader === 'function' &&
            (!parseHookNames || hookParsingFailed) && (
              <Toggle
                className={hookParsingFailed ? styles.ToggleError : null}
                isChecked={parseHookNamesOptimistic}
                isDisabled={parseHookNamesOptimistic || hookParsingFailed}
                onChange={handleChange}
                testName="LoadHookNamesButton"
                title={toggleTitle}>
                <ButtonIcon type="parse-hook-names" />
              </Toggle>
            )}
          <Button onClick={handleCopy} title="Copy to clipboard">
            <ButtonIcon type="copy" />
          </Button>
        </div>
        <InnerHooksTreeView
          hookNames={hookNames}
          hooks={hooks}
          id={id}
          element={element}
          inspectedElement={inspectedElement}
          path={[]}
        />
      </div>
    );
  }
}

Domain

Subdomains

Frequently Asked Questions

What does InspectedElementHooksTree() do?
InspectedElementHooksTree() is a function in the react codebase, defined in packages/react-devtools-shared/src/devtools/views/Components/InspectedElementHooksTree.js.
Where is InspectedElementHooksTree() defined?
InspectedElementHooksTree() is defined in packages/react-devtools-shared/src/devtools/views/Components/InspectedElementHooksTree.js at line 44.
What does InspectedElementHooksTree() call?
InspectedElementHooksTree() calls 1 function(s): serializeHooksForCopy.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free