ReactCurrentFiber.js — react Source File
Architecture documentation for ReactCurrentFiber.js, a javascript file in the react codebase. 4 imports, 12 dependents.
Entity Profile
Dependency Diagram
graph LR c115f947_44f7_8d77_0323_1e260644c151["ReactCurrentFiber.js"] 6b9f5caa_fb13_3d3c_2f60_ad3c4f58371f["ReactInternalTypes.js"] c115f947_44f7_8d77_0323_1e260644c151 --> 6b9f5caa_fb13_3d3c_2f60_ad3c4f58371f 7ae9fa3a_48d9_66c9_fa52_cf05d4024c2b["ReactFiberComponentStack.js"] c115f947_44f7_8d77_0323_1e260644c151 --> 7ae9fa3a_48d9_66c9_fa52_cf05d4024c2b 1c5695a6_6806_ba54_2074_efc779e66da4["ReactSharedInternals"] c115f947_44f7_8d77_0323_1e260644c151 --> 1c5695a6_6806_ba54_2074_efc779e66da4 6f207e69_195c_8592_d157_684fe7967d1f["getComponentNameFromFiber"] c115f947_44f7_8d77_0323_1e260644c151 --> 6f207e69_195c_8592_d157_684fe7967d1f 8a694f3e_c887_fb18_4515_e3e4488bb43e["ReactChildFiber.js"] 8a694f3e_c887_fb18_4515_e3e4488bb43e --> c115f947_44f7_8d77_0323_1e260644c151 d204555d_8af7_71f6_c18b_ea6503e178bf["ReactFiberAsyncDispatcher.js"] d204555d_8af7_71f6_c18b_ea6503e178bf --> c115f947_44f7_8d77_0323_1e260644c151 0be70812_cc0c_b210_f84f_8e61dd5f831c["ReactFiberBeginWork.js"] 0be70812_cc0c_b210_f84f_8e61dd5f831c --> c115f947_44f7_8d77_0323_1e260644c151 270d2932_6cca_c1c4_3f30_496c0c886bb5["ReactFiberCallUserSpace.js"] 270d2932_6cca_c1c4_3f30_496c0c886bb5 --> c115f947_44f7_8d77_0323_1e260644c151 8f5342bb_933e_6410_b584_cc120047394a["ReactFiberCommitEffects.js"] 8f5342bb_933e_6410_b584_cc120047394a --> c115f947_44f7_8d77_0323_1e260644c151 d39520cc_fe89_c0bc_424d_91bccdb79a69["ReactFiberCommitHostEffects.js"] d39520cc_fe89_c0bc_424d_91bccdb79a69 --> c115f947_44f7_8d77_0323_1e260644c151 5239264d_5f7a_afd8_70d1_f52aaabff11f["ReactFiberDuplicateViewTransitions.js"] 5239264d_5f7a_afd8_70d1_f52aaabff11f --> c115f947_44f7_8d77_0323_1e260644c151 4bc7109f_638d_d9f7_bf47_6ec55b2fa128["ReactFiberHydrationContext.js"] 4bc7109f_638d_d9f7_bf47_6ec55b2fa128 --> c115f947_44f7_8d77_0323_1e260644c151 3ff8c5da_88d9_c61b_6bdc_da766a43fd30["ReactFiberReconciler.js"] 3ff8c5da_88d9_c61b_6bdc_da766a43fd30 --> c115f947_44f7_8d77_0323_1e260644c151 2945bdb1_d075_d792_a028_13eee518c9d4["ReactFiberThrow.js"] 2945bdb1_d075_d792_a028_13eee518c9d4 --> c115f947_44f7_8d77_0323_1e260644c151 style c115f947_44f7_8d77_0323_1e260644c151 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 {Fiber} from './ReactInternalTypes';
import ReactSharedInternals from 'shared/ReactSharedInternals';
import {getOwnerStackByFiberInDev} from './ReactFiberComponentStack';
import {getComponentNameFromOwner} from 'react-reconciler/src/getComponentNameFromFiber';
export let current: Fiber | null = null;
export let isRendering: boolean = false;
export function getCurrentFiberOwnerNameInDevOrNull(): string | null {
if (__DEV__) {
if (current === null) {
return null;
}
const owner = current._debugOwner;
if (owner != null) {
return getComponentNameFromOwner(owner);
}
}
return null;
}
function getCurrentFiberStackInDev(): string {
if (__DEV__) {
if (current === null) {
return '';
}
// Safe because if current fiber exists, we are reconciling,
// and it is guaranteed to be the work-in-progress version.
// TODO: The above comment is not actually true. We might be
// in a commit phase or preemptive set state callback.
return getOwnerStackByFiberInDev(current);
}
return '';
}
export function runWithFiberInDEV<A0, A1, A2, A3, A4, T>(
fiber: null | Fiber,
callback: (A0, A1, A2, A3, A4) => T,
arg0: A0,
arg1: A1,
arg2: A2,
arg3: A3,
arg4: A4,
): T {
if (__DEV__) {
const previousFiber = current;
setCurrentFiber(fiber);
try {
if (fiber !== null && fiber._debugTask) {
return fiber._debugTask.run(
callback.bind(null, arg0, arg1, arg2, arg3, arg4),
);
}
return callback(arg0, arg1, arg2, arg3, arg4);
} finally {
setCurrentFiber(previousFiber);
}
}
// These errors should never make it into a build so we don't need to encode them in codes.json
// eslint-disable-next-line react-internal/prod-error-codes
throw new Error(
'runWithFiberInDEV should never be called in production. This is a bug in React.',
);
}
export function resetCurrentFiber() {
if (__DEV__) {
ReactSharedInternals.getCurrentStack = null;
isRendering = false;
}
current = null;
}
export function setCurrentFiber(fiber: Fiber | null) {
if (__DEV__) {
ReactSharedInternals.getCurrentStack =
fiber === null ? null : getCurrentFiberStackInDev;
isRendering = false;
}
current = fiber;
}
export function setIsRendering(rendering: boolean) {
if (__DEV__) {
isRendering = rendering;
}
}
export function getIsRendering(): void | boolean {
if (__DEV__) {
return isRendering;
}
}
Domain
Subdomains
Functions
Dependencies
- ReactFiberComponentStack.js
- ReactInternalTypes.js
- ReactSharedInternals
- getComponentNameFromFiber
Imported By
- packages/react-reconciler/src/ReactChildFiber.js
- packages/react-reconciler/src/ReactFiberAsyncDispatcher.js
- packages/react-reconciler/src/ReactFiberBeginWork.js
- packages/react-reconciler/src/ReactFiberCallUserSpace.js
- packages/react-reconciler/src/ReactFiberCommitEffects.js
- packages/react-reconciler/src/ReactFiberCommitHostEffects.js
- packages/react-reconciler/src/ReactFiberDuplicateViewTransitions.js
- packages/react-reconciler/src/ReactFiberHydrationContext.js
- packages/react-reconciler/src/ReactFiberReconciler.js
- packages/react-reconciler/src/ReactFiberThrow.js
- packages/react-reconciler/src/ReactFiberWorkLoop.js
- packages/react-reconciler/src/ReactStrictModeWarnings.js
Source
Frequently Asked Questions
What does ReactCurrentFiber.js do?
ReactCurrentFiber.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 ReactCurrentFiber.js?
ReactCurrentFiber.js defines 5 function(s): getCurrentFiberStackInDev, getIsRendering, resetCurrentFiber, setCurrentFiber, setIsRendering.
What does ReactCurrentFiber.js depend on?
ReactCurrentFiber.js imports 4 module(s): ReactFiberComponentStack.js, ReactInternalTypes.js, ReactSharedInternals, getComponentNameFromFiber.
What files import ReactCurrentFiber.js?
ReactCurrentFiber.js is imported by 12 file(s): ReactChildFiber.js, ReactFiberAsyncDispatcher.js, ReactFiberBeginWork.js, ReactFiberCallUserSpace.js, ReactFiberCommitEffects.js, ReactFiberCommitHostEffects.js, ReactFiberDuplicateViewTransitions.js, ReactFiberHydrationContext.js, and 4 more.
Where is ReactCurrentFiber.js in the architecture?
ReactCurrentFiber.js is located at packages/react-reconciler/src/ReactCurrentFiber.js (domain: BabelCompiler, subdomain: Validation, 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