InspectedElementHooksTree.js — react Source File
Architecture documentation for InspectedElementHooksTree.js, a javascript file in the react codebase. 25 imports, 1 dependents.
Entity Profile
Dependency Diagram
graph LR 5a9f89d7_52b7_04f5_ab3d_8ec03c9054e3["InspectedElementHooksTree.js"] 913bb343_55ea_f1b8_08f5_b75cb0a92b76["context.js"] 5a9f89d7_52b7_04f5_ab3d_8ec03c9054e3 --> 913bb343_55ea_f1b8_08f5_b75cb0a92b76 f9049b08_60f8_abce_a6a6_153f88447124["Button.js"] 5a9f89d7_52b7_04f5_ab3d_8ec03c9054e3 --> f9049b08_60f8_abce_a6a6_153f88447124 f71ee326_17f0_7db4_4178_2763fb1c2ad1["Button"] 5a9f89d7_52b7_04f5_ab3d_8ec03c9054e3 --> f71ee326_17f0_7db4_4178_2763fb1c2ad1 9f39024f_b905_9b0f_2fc7_e24785732638["ButtonIcon.js"] 5a9f89d7_52b7_04f5_ab3d_8ec03c9054e3 --> 9f39024f_b905_9b0f_2fc7_e24785732638 4690d9c0_cb81_9593_7817_f9e61a49f9e7["ButtonIcon"] 5a9f89d7_52b7_04f5_ab3d_8ec03c9054e3 --> 4690d9c0_cb81_9593_7817_f9e61a49f9e7 61c0d244_ab84_2e1a_7b19_996aebeb6c63["Toggle.js"] 5a9f89d7_52b7_04f5_ab3d_8ec03c9054e3 --> 61c0d244_ab84_2e1a_7b19_996aebeb6c63 ad68b45d_879b_b053_fa18_da49ca05b77a["Toggle"] 5a9f89d7_52b7_04f5_ab3d_8ec03c9054e3 --> ad68b45d_879b_b053_fa18_da49ca05b77a 5a801236_0190_8913_962e_81b4d9f36895["ExpandCollapseToggle.js"] 5a9f89d7_52b7_04f5_ab3d_8ec03c9054e3 --> 5a801236_0190_8913_962e_81b4d9f36895 167535af_0ec0_c7dd_3c85_20c6b56b20e7["ExpandCollapseToggle"] 5a9f89d7_52b7_04f5_ab3d_8ec03c9054e3 --> 167535af_0ec0_c7dd_3c85_20c6b56b20e7 276bc34e_3008_101e_3cd7_cc895fcd3848["KeyValue.js"] 5a9f89d7_52b7_04f5_ab3d_8ec03c9054e3 --> 276bc34e_3008_101e_3cd7_cc895fcd3848 b5067ef5_22cb_1a20_66d3_9a573b206f48["KeyValue"] 5a9f89d7_52b7_04f5_ab3d_8ec03c9054e3 --> b5067ef5_22cb_1a20_66d3_9a573b206f48 d7b27d30_728f_ba37_ed97_d371fbd3de62["utils.js"] 5a9f89d7_52b7_04f5_ab3d_8ec03c9054e3 --> d7b27d30_728f_ba37_ed97_d371fbd3de62 3213df1c_3955_bce5_16ea_373249c47eb6["serializeHooksForCopy"] 5a9f89d7_52b7_04f5_ab3d_8ec03c9054e3 --> 3213df1c_3955_bce5_16ea_373249c47eb6 bba85af0_a356_d0c5_4d12_914508b89593["store.js"] 5a9f89d7_52b7_04f5_ab3d_8ec03c9054e3 --> bba85af0_a356_d0c5_4d12_914508b89593 style 5a9f89d7_52b7_04f5_ab3d_8ec03c9054e3 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 {copy} from 'clipboard-js';
import * as React from 'react';
import {useCallback, useContext, useState} from 'react';
import {BridgeContext, StoreContext} from '../context';
import Button from '../Button';
import ButtonIcon from '../ButtonIcon';
import Toggle from '../Toggle';
import ExpandCollapseToggle from './ExpandCollapseToggle';
import KeyValue from './KeyValue';
import {getMetaValueLabel, serializeHooksForCopy} from '../utils';
import Store from '../../store';
import styles from './InspectedElementHooksTree.css';
import {meta} from '../../../hydration';
import {getHookSourceLocationKey} from 'react-devtools-shared/src/hookSourceLocation';
import HookNamesModuleLoaderContext from 'react-devtools-shared/src/devtools/views/Components/HookNamesModuleLoaderContext';
import isArray from 'react-devtools-shared/src/isArray';
import type {InspectedElement} from 'react-devtools-shared/src/frontend/types';
import type {HooksNode, HooksTree} from 'react-debug-tools/src/ReactDebugHooks';
import type {FrontendBridge} from 'react-devtools-shared/src/bridge';
import type {HookNames} from 'react-devtools-shared/src/frontend/types';
import type {Element} from 'react-devtools-shared/src/frontend/types';
import type {ToggleParseHookNames} from './InspectedElementContext';
type HooksTreeViewProps = {
bridge: FrontendBridge,
element: Element,
hookNames: HookNames | null,
inspectedElement: InspectedElement,
parseHookNames: boolean,
store: Store,
toggleParseHookNames: ToggleParseHookNames,
};
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);
// ... (335 more lines)
Domain
Subdomains
Dependencies
- Button
- Button.js
- ButtonIcon
- ButtonIcon.js
- ExpandCollapseToggle
- ExpandCollapseToggle.js
- HookNamesModuleLoaderContext
- InspectedElementContext.js
- InspectedElementHooksTree.css
- KeyValue
- KeyValue.js
- ReactDebugHooks
- Toggle
- Toggle.js
- bridge
- clipboard-js
- context.js
- hookSourceLocation
- hydration.js
- isArray
- react
- serializeHooksForCopy
- store.js
- types
- utils.js
Source
Frequently Asked Questions
What does InspectedElementHooksTree.js do?
InspectedElementHooksTree.js is a source file in the react codebase, written in javascript. It belongs to the BabelCompiler domain, Validation subdomain.
What functions are defined in InspectedElementHooksTree.js?
InspectedElementHooksTree.js defines 3 function(s): HookView, InnerHooksTreeView, InspectedElementHooksTree.
What does InspectedElementHooksTree.js depend on?
InspectedElementHooksTree.js imports 25 module(s): Button, Button.js, ButtonIcon, ButtonIcon.js, ExpandCollapseToggle, ExpandCollapseToggle.js, HookNamesModuleLoaderContext, InspectedElementContext.js, and 17 more.
What files import InspectedElementHooksTree.js?
InspectedElementHooksTree.js is imported by 1 file(s): InspectedElementView.js.
Where is InspectedElementHooksTree.js in the architecture?
InspectedElementHooksTree.js is located at packages/react-devtools-shared/src/devtools/views/Components/InspectedElementHooksTree.js (domain: BabelCompiler, subdomain: Validation, 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