SuspenseTimeline.js — react Source File
Architecture documentation for SuspenseTimeline.js, a javascript file in the react codebase. 11 imports, 1 dependents.
Entity Profile
Dependency Diagram
graph LR 09a08def_3d86_aab5_1719_24f5fdd9d175["SuspenseTimeline.js"] 913bb343_55ea_f1b8_08f5_b75cb0a92b76["context.js"] 09a08def_3d86_aab5_1719_24f5fdd9d175 --> 913bb343_55ea_f1b8_08f5_b75cb0a92b76 2d59b0f9_9ad6_da4d_0264_d98f193ab3fd["TreeContext.js"] 09a08def_3d86_aab5_1719_24f5fdd9d175 --> 2d59b0f9_9ad6_da4d_0264_d98f193ab3fd 315baf50_1028_51ca_a9c1_679c6a17ed98["hooks.js"] 09a08def_3d86_aab5_1719_24f5fdd9d175 --> 315baf50_1028_51ca_a9c1_679c6a17ed98 9526441b_1b8b_0410_c862_2232f8e4ba65["SuspenseTreeContext.js"] 09a08def_3d86_aab5_1719_24f5fdd9d175 --> 9526441b_1b8b_0410_c862_2232f8e4ba65 9c16d6e1_2095_8169_1c22_25111316b4ab["SuspenseTimeline.css"] 09a08def_3d86_aab5_1719_24f5fdd9d175 --> 9c16d6e1_2095_8169_1c22_25111316b4ab a780c065_6e09_9761_ec53_ece3335378f1["SuspenseScrubber.js"] 09a08def_3d86_aab5_1719_24f5fdd9d175 --> a780c065_6e09_9761_ec53_ece3335378f1 f9049b08_60f8_abce_a6a6_153f88447124["Button.js"] 09a08def_3d86_aab5_1719_24f5fdd9d175 --> f9049b08_60f8_abce_a6a6_153f88447124 f71ee326_17f0_7db4_4178_2763fb1c2ad1["Button"] 09a08def_3d86_aab5_1719_24f5fdd9d175 --> f71ee326_17f0_7db4_4178_2763fb1c2ad1 9f39024f_b905_9b0f_2fc7_e24785732638["ButtonIcon.js"] 09a08def_3d86_aab5_1719_24f5fdd9d175 --> 9f39024f_b905_9b0f_2fc7_e24785732638 4690d9c0_cb81_9593_7817_f9e61a49f9e7["ButtonIcon"] 09a08def_3d86_aab5_1719_24f5fdd9d175 --> 4690d9c0_cb81_9593_7817_f9e61a49f9e7 ac587885_e294_a1e9_b13f_5e7b920fdb42["react"] 09a08def_3d86_aab5_1719_24f5fdd9d175 --> ac587885_e294_a1e9_b13f_5e7b920fdb42 3249b7c1_ae10_2672_10ce_a66fd0ee6f60["SuspenseTab.js"] 3249b7c1_ae10_2672_10ce_a66fd0ee6f60 --> 09a08def_3d86_aab5_1719_24f5fdd9d175 style 09a08def_3d86_aab5_1719_24f5fdd9d175 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 {useContext, useEffect} from 'react';
import {BridgeContext} from '../context';
import {TreeDispatcherContext} from '../Components/TreeContext';
import {useScrollToHostInstance} from '../hooks';
import {
SuspenseTreeDispatcherContext,
SuspenseTreeStateContext,
} from './SuspenseTreeContext';
import styles from './SuspenseTimeline.css';
import SuspenseScrubber from './SuspenseScrubber';
import Button from '../Button';
import ButtonIcon from '../ButtonIcon';
function SuspenseTimelineInput() {
const bridge = useContext(BridgeContext);
const treeDispatch = useContext(TreeDispatcherContext);
const suspenseTreeDispatch = useContext(SuspenseTreeDispatcherContext);
const scrollToHostInstance = useScrollToHostInstance();
const {timeline, timelineIndex, hoveredTimelineIndex, playing, autoScroll} =
useContext(SuspenseTreeStateContext);
const min = 0;
const max = timeline.length > 0 ? timeline.length - 1 : 0;
function switchSuspenseNode(nextTimelineIndex: number) {
const nextSelectedSuspenseID = timeline[nextTimelineIndex].id;
treeDispatch({
type: 'SELECT_ELEMENT_BY_ID',
payload: nextSelectedSuspenseID,
});
suspenseTreeDispatch({
type: 'SUSPENSE_SET_TIMELINE_INDEX',
payload: nextTimelineIndex,
});
}
function handleChange(pendingTimelineIndex: number) {
switchSuspenseNode(pendingTimelineIndex);
}
function handleFocus() {
switchSuspenseNode(timelineIndex);
}
function handleHoverSegment(hoveredIndex: number) {
const nextSelectedSuspenseID = timeline[hoveredIndex].id;
suspenseTreeDispatch({
type: 'HOVER_TIMELINE_FOR_ID',
payload: nextSelectedSuspenseID,
// ... (136 more lines)
Domain
Subdomains
Dependencies
Source
Frequently Asked Questions
What does SuspenseTimeline.js do?
SuspenseTimeline.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 SuspenseTimeline.js?
SuspenseTimeline.js defines 2 function(s): SuspenseTimeline, SuspenseTimelineInput.
What does SuspenseTimeline.js depend on?
SuspenseTimeline.js imports 11 module(s): Button, Button.js, ButtonIcon, ButtonIcon.js, SuspenseScrubber.js, SuspenseTimeline.css, SuspenseTreeContext.js, TreeContext.js, and 3 more.
What files import SuspenseTimeline.js?
SuspenseTimeline.js is imported by 1 file(s): SuspenseTab.js.
Where is SuspenseTimeline.js in the architecture?
SuspenseTimeline.js is located at packages/react-devtools-shared/src/devtools/views/SuspenseTab/SuspenseTimeline.js (domain: BabelCompiler, subdomain: Validation, directory: packages/react-devtools-shared/src/devtools/views/SuspenseTab).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free