Home / File/ InspectHostNodesToggle.js — react Source File

InspectHostNodesToggle.js — react Source File

Architecture documentation for InspectHostNodesToggle.js, a javascript file in the react codebase. 7 imports, 2 dependents.

File javascript BabelCompiler 7 imports 2 dependents

Entity Profile

Dependency Diagram

graph LR
  c4e436c2_f97f_ce14_4047_a3741d53d2b6["InspectHostNodesToggle.js"]
  913bb343_55ea_f1b8_08f5_b75cb0a92b76["context.js"]
  c4e436c2_f97f_ce14_4047_a3741d53d2b6 --> 913bb343_55ea_f1b8_08f5_b75cb0a92b76
  61c0d244_ab84_2e1a_7b19_996aebeb6c63["Toggle.js"]
  c4e436c2_f97f_ce14_4047_a3741d53d2b6 --> 61c0d244_ab84_2e1a_7b19_996aebeb6c63
  ad68b45d_879b_b053_fa18_da49ca05b77a["Toggle"]
  c4e436c2_f97f_ce14_4047_a3741d53d2b6 --> ad68b45d_879b_b053_fa18_da49ca05b77a
  9f39024f_b905_9b0f_2fc7_e24785732638["ButtonIcon.js"]
  c4e436c2_f97f_ce14_4047_a3741d53d2b6 --> 9f39024f_b905_9b0f_2fc7_e24785732638
  4690d9c0_cb81_9593_7817_f9e61a49f9e7["ButtonIcon"]
  c4e436c2_f97f_ce14_4047_a3741d53d2b6 --> 4690d9c0_cb81_9593_7817_f9e61a49f9e7
  ac587885_e294_a1e9_b13f_5e7b920fdb42["react"]
  c4e436c2_f97f_ce14_4047_a3741d53d2b6 --> ac587885_e294_a1e9_b13f_5e7b920fdb42
  2b832bf7_5b5b_7f08_2faa_1e7c8d8acc6d["Logger"]
  c4e436c2_f97f_ce14_4047_a3741d53d2b6 --> 2b832bf7_5b5b_7f08_2faa_1e7c8d8acc6d
  80ad5569_a221_98e5_daec_ede1bea33ee0["Tree.js"]
  80ad5569_a221_98e5_daec_ede1bea33ee0 --> c4e436c2_f97f_ce14_4047_a3741d53d2b6
  3249b7c1_ae10_2672_10ce_a66fd0ee6f60["SuspenseTab.js"]
  3249b7c1_ae10_2672_10ce_a66fd0ee6f60 --> c4e436c2_f97f_ce14_4047_a3741d53d2b6
  style c4e436c2_f97f_ce14_4047_a3741d53d2b6 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

/**
 * Copyright (c) Meta Platforms, Inc. and affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 *
 * @flow
 */

import * as React from 'react';
import {useCallback, useContext, useEffect, useState} from 'react';
import {BridgeContext} from '../context';
import Toggle from '../Toggle';
import ButtonIcon from '../ButtonIcon';
import {logEvent} from 'react-devtools-shared/src/Logger';

export default function InspectHostNodesToggle({
  onlySuspenseNodes,
}: {
  onlySuspenseNodes?: boolean,
}): React.Node {
  const [isInspecting, setIsInspecting] = useState(false);
  const bridge = useContext(BridgeContext);

  const handleChange = useCallback(
    (isChecked: boolean) => {
      setIsInspecting(isChecked);

      if (isChecked) {
        logEvent({event_name: 'inspect-element-button-clicked'});
        bridge.send('startInspectingHost', !!onlySuspenseNodes);
      } else {
        bridge.send('stopInspectingHost');
      }
    },
    [bridge],
  );

  useEffect(() => {
    const onStopInspectingHost = () => setIsInspecting(false);
    bridge.addListener('stopInspectingHost', onStopInspectingHost);
    return () =>
      bridge.removeListener('stopInspectingHost', onStopInspectingHost);
  }, [bridge]);

  return (
    <Toggle
      onChange={handleChange}
      isChecked={isInspecting}
      title="Select an element in the page to inspect it">
      <ButtonIcon type="search" />
    </Toggle>
  );
}

Domain

Frequently Asked Questions

What does InspectHostNodesToggle.js do?
InspectHostNodesToggle.js is a source file in the react codebase, written in javascript. It belongs to the BabelCompiler domain.
What does InspectHostNodesToggle.js depend on?
InspectHostNodesToggle.js imports 7 module(s): ButtonIcon, ButtonIcon.js, Logger, Toggle, Toggle.js, context.js, react.
What files import InspectHostNodesToggle.js?
InspectHostNodesToggle.js is imported by 2 file(s): SuspenseTab.js, Tree.js.
Where is InspectHostNodesToggle.js in the architecture?
InspectHostNodesToggle.js is located at packages/react-devtools-shared/src/devtools/views/Components/InspectHostNodesToggle.js (domain: BabelCompiler, directory: packages/react-devtools-shared/src/devtools/views/Components).

Analyze Your Own Codebase

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

Try Supermodel Free