Tree.js — react Source File
Architecture documentation for Tree.js, a javascript file in the react codebase. 30 imports, 2 dependents.
Entity Profile
Dependency Diagram
graph LR 80ad5569_a221_98e5_daec_ede1bea33ee0["Tree.js"] 2d59b0f9_9ad6_da4d_0264_d98f193ab3fd["TreeContext.js"] 80ad5569_a221_98e5_daec_ede1bea33ee0 --> 2d59b0f9_9ad6_da4d_0264_d98f193ab3fd 21af3248_c15c_a61c_1f5b_7409a91b945c["Icon.js"] 80ad5569_a221_98e5_daec_ede1bea33ee0 --> 21af3248_c15c_a61c_1f5b_7409a91b945c f23861b1_8332_6fa9_2862_ddd6110f3776["Icon"] 80ad5569_a221_98e5_daec_ede1bea33ee0 --> f23861b1_8332_6fa9_2862_ddd6110f3776 5996f1e4_af81_a51b_84bc_175bfba4f818["SettingsContext.js"] 80ad5569_a221_98e5_daec_ede1bea33ee0 --> 5996f1e4_af81_a51b_84bc_175bfba4f818 913bb343_55ea_f1b8_08f5_b75cb0a92b76["context.js"] 80ad5569_a221_98e5_daec_ede1bea33ee0 --> 913bb343_55ea_f1b8_08f5_b75cb0a92b76 9930e8cf_03b4_86c0_be04_47b410246b71["Element.js"] 80ad5569_a221_98e5_daec_ede1bea33ee0 --> 9930e8cf_03b4_86c0_be04_47b410246b71 c4e436c2_f97f_ce14_4047_a3741d53d2b6["InspectHostNodesToggle.js"] 80ad5569_a221_98e5_daec_ede1bea33ee0 --> c4e436c2_f97f_ce14_4047_a3741d53d2b6 4e5b4a1f_694c_f426_36e2_a03da99b38d5["OwnersStack.js"] 80ad5569_a221_98e5_daec_ede1bea33ee0 --> 4e5b4a1f_694c_f426_36e2_a03da99b38d5 ad6b058b_c5bb_8fa4_9174_b36bde9c7ec6["ComponentSearchInput.js"] 80ad5569_a221_98e5_daec_ede1bea33ee0 --> ad6b058b_c5bb_8fa4_9174_b36bde9c7ec6 1051a6ca_3da8_e140_bc43_b94256bcee15["ComponentSearchInput"] 80ad5569_a221_98e5_daec_ede1bea33ee0 --> 1051a6ca_3da8_e140_bc43_b94256bcee15 23558b87_1323_45a8_745a_dde65426f744["TreeFocusedContext.js"] 80ad5569_a221_98e5_daec_ede1bea33ee0 --> 23558b87_1323_45a8_745a_dde65426f744 315baf50_1028_51ca_a9c1_679c6a17ed98["hooks.js"] 80ad5569_a221_98e5_daec_ede1bea33ee0 --> 315baf50_1028_51ca_a9c1_679c6a17ed98 e3b1801c_6a67_e9e9_9596_b0f8a5fdc4d4["Tree.css"] 80ad5569_a221_98e5_daec_ede1bea33ee0 --> e3b1801c_6a67_e9e9_9596_b0f8a5fdc4d4 9f39024f_b905_9b0f_2fc7_e24785732638["ButtonIcon.js"] 80ad5569_a221_98e5_daec_ede1bea33ee0 --> 9f39024f_b905_9b0f_2fc7_e24785732638 style 80ad5569_a221_98e5_daec_ede1bea33ee0 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 {
Fragment,
Suspense,
startTransition,
useCallback,
useContext,
useEffect,
useMemo,
useRef,
useState,
} from 'react';
import AutoSizer from 'react-virtualized-auto-sizer';
import {FixedSizeList} from 'react-window';
import {TreeDispatcherContext, TreeStateContext} from './TreeContext';
import Icon from '../Icon';
import {SettingsContext} from '../Settings/SettingsContext';
import {BridgeContext, StoreContext, OptionsContext} from '../context';
import ComponentsTreeElement from './Element';
import InspectHostNodesToggle from './InspectHostNodesToggle';
import OwnersStack from './OwnersStack';
import ComponentSearchInput from './ComponentSearchInput';
import SettingsModalContextToggle from 'react-devtools-shared/src/devtools/views/Settings/SettingsModalContextToggle';
import TreeFocusedContext from './TreeFocusedContext';
import {useHighlightHostInstance, useSubscription} from '../hooks';
import {clearErrorsAndWarnings as clearErrorsAndWarningsAPI} from 'react-devtools-shared/src/backendAPI';
import styles from './Tree.css';
import ButtonIcon from '../ButtonIcon';
import Button from '../Button';
import {logEvent} from 'react-devtools-shared/src/Logger';
import {useExtensionComponentsPanelVisibility} from 'react-devtools-shared/src/frontend/hooks/useExtensionComponentsPanelVisibility';
import {ElementTypeActivity} from 'react-devtools-shared/src/frontend/types';
import {useChangeOwnerAction} from './OwnersListContext';
import {useChangeActivitySliceAction} from '../SuspenseTab/ActivityList';
import ActivitySlice from './ActivitySlice';
// Indent for each node at level N, compared to node at level N - 1.
const INDENTATION_SIZE = 10;
function calculateElementOffset(elementDepth: number): number {
return elementDepth * INDENTATION_SIZE;
}
export type ItemData = {
isNavigatingWithKeyboard: boolean,
onElementMouseEnter: (id: number) => void,
treeFocused: boolean,
calculateElementOffset: (depth: number) => number,
};
function calculateInitialScrollOffset(
// ... (547 more lines)
Domain
Subdomains
Functions
Dependencies
- ActivityList.js
- ActivitySlice
- ActivitySlice.js
- Button
- Button.js
- ButtonIcon
- ButtonIcon.js
- ComponentSearchInput
- ComponentSearchInput.js
- Element.js
- Icon
- Icon.js
- InspectHostNodesToggle.js
- Logger
- OwnersListContext.js
- OwnersStack.js
- SettingsContext.js
- SettingsModalContextToggle
- Tree.css
- TreeContext.js
- TreeFocusedContext.js
- backendAPI
- context.js
- hooks.js
- react
- react-virtualized-auto-sizer
- react-window
- types
- useChangeActivitySliceAction
- useExtensionComponentsPanelVisibility
Imported By
Source
Frequently Asked Questions
What does Tree.js do?
Tree.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 Tree.js?
Tree.js defines 8 function(s): InnerElementType, ItemData.calculateElementOffset, ItemData.onElementMouseEnter, Loading, Tree, VerticalDelimiter, calculateElementOffset, calculateInitialScrollOffset.
What does Tree.js depend on?
Tree.js imports 30 module(s): ActivityList.js, ActivitySlice, ActivitySlice.js, Button, Button.js, ButtonIcon, ButtonIcon.js, ComponentSearchInput, and 22 more.
What files import Tree.js?
Tree.js is imported by 2 file(s): Components.js, Element.js.
Where is Tree.js in the architecture?
Tree.js is located at packages/react-devtools-shared/src/devtools/views/Components/Tree.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