Home / File/ Tree.js — react Source File

Tree.js — react Source File

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

File javascript BabelCompiler Validation 30 imports 2 dependents 8 functions

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

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