Home / File/ ReactFiberOffscreenComponent.js — react Source File

ReactFiberOffscreenComponent.js — react Source File

Architecture documentation for ReactFiberOffscreenComponent.js, a javascript file in the react codebase. 6 imports, 9 dependents.

File javascript BabelCompiler 6 imports 9 dependents

Entity Profile

Dependency Diagram

graph LR
  79172409_a09a_afa9_9185_df1c9182af84["ReactFiberOffscreenComponent.js"]
  768f6d67_77c1_be19_5596_a943eab59e05["ReactFiberLane.js"]
  79172409_a09a_afa9_9185_df1c9182af84 --> 768f6d67_77c1_be19_5596_a943eab59e05
  8d310484_4245_75c0_c183_7a31fce6815e["ReactFiberCacheComponent.js"]
  79172409_a09a_afa9_9185_df1c9182af84 --> 8d310484_4245_75c0_c183_7a31fce6815e
  05714c8c_b2f5_ddac_3f79_222b33006713["ReactFiberTracingMarkerComponent.js"]
  79172409_a09a_afa9_9185_df1c9182af84 --> 05714c8c_b2f5_ddac_3f79_222b33006713
  24334744_4c44_225b_6923_5be11133f949["ReactFiberSuspenseComponent.js"]
  79172409_a09a_afa9_9185_df1c9182af84 --> 24334744_4c44_225b_6923_5be11133f949
  d8f20c67_f5fa_0f0a_c967_c41fd9ffce07["ReactTypes"]
  79172409_a09a_afa9_9185_df1c9182af84 --> d8f20c67_f5fa_0f0a_c967_c41fd9ffce07
  3ff6a79c_0a0b_9ae4_6826_41e836ae2a7c["ReactStartTransition"]
  79172409_a09a_afa9_9185_df1c9182af84 --> 3ff6a79c_0a0b_9ae4_6826_41e836ae2a7c
  8a03468f_f6e2_d5a3_fdef_e77ebca449c2["ReactFiber.js"]
  8a03468f_f6e2_d5a3_fdef_e77ebca449c2 --> 79172409_a09a_afa9_9185_df1c9182af84
  ee850b36_fc0b_9bb2_5b69_58d705aef9a5["ReactFiberApplyGesture.js"]
  ee850b36_fc0b_9bb2_5b69_58d705aef9a5 --> 79172409_a09a_afa9_9185_df1c9182af84
  0be70812_cc0c_b210_f84f_8e61dd5f831c["ReactFiberBeginWork.js"]
  0be70812_cc0c_b210_f84f_8e61dd5f831c --> 79172409_a09a_afa9_9185_df1c9182af84
  e0fbfbd5_47b0_a489_0b36_bbfad9245544["ReactFiberCommitWork.js"]
  e0fbfbd5_47b0_a489_0b36_bbfad9245544 --> 79172409_a09a_afa9_9185_df1c9182af84
  6b05669d_2f09_63a5_e79f_0afc195f25a3["ReactFiberCompleteWork.js"]
  6b05669d_2f09_63a5_e79f_0afc195f25a3 --> 79172409_a09a_afa9_9185_df1c9182af84
  8dfed368_a2ce_03e8_73a7_410857344637["ReactFiberConcurrentUpdates.js"]
  8dfed368_a2ce_03e8_73a7_410857344637 --> 79172409_a09a_afa9_9185_df1c9182af84
  2945bdb1_d075_d792_a028_13eee518c9d4["ReactFiberThrow.js"]
  2945bdb1_d075_d792_a028_13eee518c9d4 --> 79172409_a09a_afa9_9185_df1c9182af84
  05714c8c_b2f5_ddac_3f79_222b33006713["ReactFiberTracingMarkerComponent.js"]
  05714c8c_b2f5_ddac_3f79_222b33006713 --> 79172409_a09a_afa9_9185_df1c9182af84
  d73e9290_2d2e_5d3f_97dd_84929f205c77["ReactFiberWorkLoop.js"]
  d73e9290_2d2e_5d3f_97dd_84929f205c77 --> 79172409_a09a_afa9_9185_df1c9182af84
  style 79172409_a09a_afa9_9185_df1c9182af84 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 type {ReactNodeList, Wakeable} from 'shared/ReactTypes';
import type {Lanes} from './ReactFiberLane';
import type {SpawnedCachePool} from './ReactFiberCacheComponent';
import type {Transition} from 'react/src/ReactStartTransition';
import type {TracingMarkerInstance} from './ReactFiberTracingMarkerComponent';
import type {RetryQueue} from './ReactFiberSuspenseComponent';

type OffscreenMode = 'hidden' | 'unstable-defer-without-hiding' | 'visible';

export type LegacyHiddenProps = {
  mode?: OffscreenMode | null | void,
  children?: ReactNodeList,
};

export type OffscreenProps = {
  // TODO: Pick an API before exposing the Offscreen type. I've chosen an enum
  // for now, since we might have multiple variants. For example, hiding the
  // content without changing the layout.
  //
  // Default mode is visible. Kind of a weird default for a component
  // called "Offscreen." Possible alt: <Visibility />?
  mode?: OffscreenMode | null | void,
  children?: ReactNodeList,
};

// We use the existence of the state object as an indicator that the component
// is hidden.
export type OffscreenState = {
  // TODO: This doesn't do anything, yet. It's always NoLanes. But eventually it
  // will represent the pending work that must be included in the render in
  // order to unhide the component.
  baseLanes: Lanes,
  cachePool: SpawnedCachePool | null,
};

export type OffscreenQueue = {
  transitions: Array<Transition> | null,
  markerInstances: Array<TracingMarkerInstance> | null,
  retryQueue: RetryQueue | null,
};

type OffscreenVisibility = number;

export const OffscreenVisible = /*                     */ 0b001;
export const OffscreenPassiveEffectsConnected = /*     */ 0b010;

export type OffscreenInstance = {
  _visibility: OffscreenVisibility,
  _pendingMarkers: Set<TracingMarkerInstance> | null,
  _transitions: Set<Transition> | null,
  _retryCache: WeakSet<Wakeable> | Set<Wakeable> | null,
};

Domain

Frequently Asked Questions

What does ReactFiberOffscreenComponent.js do?
ReactFiberOffscreenComponent.js is a source file in the react codebase, written in javascript. It belongs to the BabelCompiler domain.
What does ReactFiberOffscreenComponent.js depend on?
ReactFiberOffscreenComponent.js imports 6 module(s): ReactFiberCacheComponent.js, ReactFiberLane.js, ReactFiberSuspenseComponent.js, ReactFiberTracingMarkerComponent.js, ReactStartTransition, ReactTypes.
What files import ReactFiberOffscreenComponent.js?
ReactFiberOffscreenComponent.js is imported by 9 file(s): ReactFiber.js, ReactFiberApplyGesture.js, ReactFiberBeginWork.js, ReactFiberCommitWork.js, ReactFiberCompleteWork.js, ReactFiberConcurrentUpdates.js, ReactFiberThrow.js, ReactFiberTracingMarkerComponent.js, and 1 more.
Where is ReactFiberOffscreenComponent.js in the architecture?
ReactFiberOffscreenComponent.js is located at packages/react-reconciler/src/ReactFiberOffscreenComponent.js (domain: BabelCompiler, directory: packages/react-reconciler/src).

Analyze Your Own Codebase

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

Try Supermodel Free