mirror of
https://github.com/facebook/react.git
synced 2025-11-01 09:12:30 +00:00
Add useModernStrictMode as dynamic flag on www (#28346)
## Summary
Preparing modern strict mode rollout with dynamic feature flag
## How did you test this change?

DiffTrain build for [ef72271c2d](https://github.com/facebook/react/commit/ef72271c2d1234c9d1e1358f8083021089a50faa)
This commit is contained in:
@@ -109,7 +109,8 @@ if (__DEV__) {
|
||||
|
||||
var enableDebugTracing = dynamicFeatureFlags.enableDebugTracing,
|
||||
enableTransitionTracing = dynamicFeatureFlags.enableTransitionTracing,
|
||||
enableRenderableContext = dynamicFeatureFlags.enableRenderableContext; // On WWW, false is used for a new modern build.
|
||||
enableRenderableContext = dynamicFeatureFlags.enableRenderableContext;
|
||||
// On WWW, false is used for a new modern build.
|
||||
|
||||
var REACT_CLIENT_REFERENCE$2 = Symbol.for("react.client.reference");
|
||||
function isValidElementType(type) {
|
||||
|
||||
@@ -109,7 +109,8 @@ if (__DEV__) {
|
||||
|
||||
var enableDebugTracing = dynamicFeatureFlags.enableDebugTracing,
|
||||
enableTransitionTracing = dynamicFeatureFlags.enableTransitionTracing,
|
||||
enableRenderableContext = dynamicFeatureFlags.enableRenderableContext; // On WWW, true is used for a new modern build.
|
||||
enableRenderableContext = dynamicFeatureFlags.enableRenderableContext;
|
||||
// On WWW, true is used for a new modern build.
|
||||
|
||||
var REACT_CLIENT_REFERENCE$2 = Symbol.for("react.client.reference");
|
||||
function isValidElementType(type) {
|
||||
|
||||
@@ -1 +1 @@
|
||||
a9cc32511a12c261ee719e5383818182800d6af4
|
||||
ef72271c2d1234c9d1e1358f8083021089a50faa
|
||||
|
||||
@@ -24,7 +24,7 @@ if (__DEV__) {
|
||||
) {
|
||||
__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());
|
||||
}
|
||||
var ReactVersion = "18.3.0-www-classic-77843590";
|
||||
var ReactVersion = "18.3.0-www-classic-435f93e8";
|
||||
|
||||
// ATTENTION
|
||||
// When adding new symbols to this file,
|
||||
@@ -475,7 +475,8 @@ if (__DEV__) {
|
||||
|
||||
var enableDebugTracing = dynamicFeatureFlags.enableDebugTracing,
|
||||
enableTransitionTracing = dynamicFeatureFlags.enableTransitionTracing,
|
||||
enableRenderableContext = dynamicFeatureFlags.enableRenderableContext; // On WWW, false is used for a new modern build.
|
||||
enableRenderableContext = dynamicFeatureFlags.enableRenderableContext;
|
||||
// On WWW, false is used for a new modern build.
|
||||
|
||||
function getWrappedName(outerType, innerType, wrapperName) {
|
||||
var displayName = outerType.displayName;
|
||||
|
||||
@@ -24,7 +24,7 @@ if (__DEV__) {
|
||||
) {
|
||||
__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());
|
||||
}
|
||||
var ReactVersion = "18.3.0-www-modern-0bb55f38";
|
||||
var ReactVersion = "18.3.0-www-modern-d64ea480";
|
||||
|
||||
// ATTENTION
|
||||
// When adding new symbols to this file,
|
||||
@@ -475,7 +475,8 @@ if (__DEV__) {
|
||||
|
||||
var enableDebugTracing = dynamicFeatureFlags.enableDebugTracing,
|
||||
enableTransitionTracing = dynamicFeatureFlags.enableTransitionTracing,
|
||||
enableRenderableContext = dynamicFeatureFlags.enableRenderableContext; // On WWW, true is used for a new modern build.
|
||||
enableRenderableContext = dynamicFeatureFlags.enableRenderableContext;
|
||||
// On WWW, true is used for a new modern build.
|
||||
|
||||
function getWrappedName(outerType, innerType, wrapperName) {
|
||||
var displayName = outerType.displayName;
|
||||
|
||||
@@ -618,4 +618,4 @@ exports.useSyncExternalStore = function (
|
||||
exports.useTransition = function () {
|
||||
return ReactCurrentDispatcher.current.useTransition();
|
||||
};
|
||||
exports.version = "18.3.0-www-classic-707cd731";
|
||||
exports.version = "18.3.0-www-classic-863536b2";
|
||||
|
||||
@@ -610,4 +610,4 @@ exports.useSyncExternalStore = function (
|
||||
exports.useTransition = function () {
|
||||
return ReactCurrentDispatcher.current.useTransition();
|
||||
};
|
||||
exports.version = "18.3.0-www-modern-f4321f8c";
|
||||
exports.version = "18.3.0-www-modern-19268851";
|
||||
|
||||
@@ -66,7 +66,7 @@ if (__DEV__) {
|
||||
return self;
|
||||
}
|
||||
|
||||
var ReactVersion = "18.3.0-www-classic-fc548c7d";
|
||||
var ReactVersion = "18.3.0-www-classic-162b9b5d";
|
||||
|
||||
var LegacyRoot = 0;
|
||||
var ConcurrentRoot = 1;
|
||||
@@ -187,7 +187,8 @@ if (__DEV__) {
|
||||
dynamicFeatureFlags.transitionLaneExpirationMs,
|
||||
enableInfiniteRenderLoopDetection =
|
||||
dynamicFeatureFlags.enableInfiniteRenderLoopDetection,
|
||||
enableRenderableContext = dynamicFeatureFlags.enableRenderableContext; // On WWW, false is used for a new modern build.
|
||||
enableRenderableContext = dynamicFeatureFlags.enableRenderableContext,
|
||||
useModernStrictMode = dynamicFeatureFlags.useModernStrictMode; // On WWW, false is used for a new modern build.
|
||||
var enableProfilerTimer = true;
|
||||
var enableProfilerCommitHooks = true;
|
||||
var enableProfilerNestedUpdatePhase = true;
|
||||
@@ -28106,9 +28107,121 @@ if (__DEV__) {
|
||||
}
|
||||
}
|
||||
|
||||
function recursivelyTraverseAndDoubleInvokeEffectsInDEV(
|
||||
root,
|
||||
parentFiber,
|
||||
isInStrictMode
|
||||
) {
|
||||
if (
|
||||
(parentFiber.subtreeFlags & (PlacementDEV | Visibility)) ===
|
||||
NoFlags$1
|
||||
) {
|
||||
// Parent's descendants have already had effects double invoked.
|
||||
// Early exit to avoid unnecessary tree traversal.
|
||||
return;
|
||||
}
|
||||
|
||||
var child = parentFiber.child;
|
||||
|
||||
while (child !== null) {
|
||||
doubleInvokeEffectsInDEVIfNecessary(root, child, isInStrictMode);
|
||||
child = child.sibling;
|
||||
}
|
||||
} // Unconditionally disconnects and connects passive and layout effects.
|
||||
|
||||
function doubleInvokeEffectsOnFiber(root, fiber) {
|
||||
var shouldDoubleInvokePassiveEffects =
|
||||
arguments.length > 2 && arguments[2] !== undefined
|
||||
? arguments[2]
|
||||
: true;
|
||||
disappearLayoutEffects(fiber);
|
||||
|
||||
if (shouldDoubleInvokePassiveEffects) {
|
||||
disconnectPassiveEffect(fiber);
|
||||
}
|
||||
|
||||
reappearLayoutEffects(root, fiber.alternate, fiber, false);
|
||||
|
||||
if (shouldDoubleInvokePassiveEffects) {
|
||||
reconnectPassiveEffects(root, fiber, NoLanes, null, false);
|
||||
}
|
||||
}
|
||||
|
||||
function doubleInvokeEffectsInDEVIfNecessary(
|
||||
root,
|
||||
fiber,
|
||||
parentIsInStrictMode
|
||||
) {
|
||||
var isStrictModeFiber = fiber.type === REACT_STRICT_MODE_TYPE;
|
||||
var isInStrictMode = parentIsInStrictMode || isStrictModeFiber; // First case: the fiber **is not** of type OffscreenComponent. No
|
||||
// special rules apply to double invoking effects.
|
||||
|
||||
if (fiber.tag !== OffscreenComponent) {
|
||||
if (fiber.flags & PlacementDEV) {
|
||||
setCurrentFiber(fiber);
|
||||
|
||||
if (isInStrictMode) {
|
||||
doubleInvokeEffectsOnFiber(
|
||||
root,
|
||||
fiber,
|
||||
(fiber.mode & NoStrictPassiveEffectsMode) === NoMode
|
||||
);
|
||||
}
|
||||
|
||||
resetCurrentFiber();
|
||||
} else {
|
||||
recursivelyTraverseAndDoubleInvokeEffectsInDEV(
|
||||
root,
|
||||
fiber,
|
||||
isInStrictMode
|
||||
);
|
||||
}
|
||||
|
||||
return;
|
||||
} // Second case: the fiber **is** of type OffscreenComponent.
|
||||
// This branch contains cases specific to Offscreen.
|
||||
|
||||
if (fiber.memoizedState === null) {
|
||||
// Only consider Offscreen that is visible.
|
||||
// TODO (Offscreen) Handle manual mode.
|
||||
setCurrentFiber(fiber);
|
||||
|
||||
if (isInStrictMode && fiber.flags & Visibility) {
|
||||
// Double invoke effects on Offscreen's subtree only
|
||||
// if it is visible and its visibility has changed.
|
||||
doubleInvokeEffectsOnFiber(root, fiber);
|
||||
} else if (fiber.subtreeFlags & PlacementDEV) {
|
||||
// Something in the subtree could have been suspended.
|
||||
// We need to continue traversal and find newly inserted fibers.
|
||||
recursivelyTraverseAndDoubleInvokeEffectsInDEV(
|
||||
root,
|
||||
fiber,
|
||||
isInStrictMode
|
||||
);
|
||||
}
|
||||
|
||||
resetCurrentFiber();
|
||||
}
|
||||
}
|
||||
|
||||
function commitDoubleInvokeEffectsInDEV(root, hasPassiveEffects) {
|
||||
{
|
||||
{
|
||||
if (useModernStrictMode && root.tag !== LegacyRoot) {
|
||||
var doubleInvokeEffects = true;
|
||||
|
||||
if (
|
||||
root.tag === ConcurrentRoot &&
|
||||
!(root.current.mode & (StrictLegacyMode | StrictEffectsMode))
|
||||
) {
|
||||
doubleInvokeEffects = false;
|
||||
}
|
||||
|
||||
recursivelyTraverseAndDoubleInvokeEffectsInDEV(
|
||||
root,
|
||||
root.current,
|
||||
doubleInvokeEffects
|
||||
);
|
||||
} else {
|
||||
legacyCommitDoubleInvokeEffectsInDEV(root.current, hasPassiveEffects);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,7 +66,7 @@ if (__DEV__) {
|
||||
return self;
|
||||
}
|
||||
|
||||
var ReactVersion = "18.3.0-www-modern-cdfb5e55";
|
||||
var ReactVersion = "18.3.0-www-modern-4bc0b3fd";
|
||||
|
||||
var LegacyRoot = 0;
|
||||
var ConcurrentRoot = 1;
|
||||
@@ -187,7 +187,8 @@ if (__DEV__) {
|
||||
dynamicFeatureFlags.transitionLaneExpirationMs,
|
||||
enableInfiniteRenderLoopDetection =
|
||||
dynamicFeatureFlags.enableInfiniteRenderLoopDetection,
|
||||
enableRenderableContext = dynamicFeatureFlags.enableRenderableContext; // On WWW, true is used for a new modern build.
|
||||
enableRenderableContext = dynamicFeatureFlags.enableRenderableContext,
|
||||
useModernStrictMode = dynamicFeatureFlags.useModernStrictMode; // On WWW, true is used for a new modern build.
|
||||
var enableProfilerTimer = true;
|
||||
var enableProfilerCommitHooks = true;
|
||||
var enableProfilerNestedUpdatePhase = true;
|
||||
@@ -27756,9 +27757,121 @@ if (__DEV__) {
|
||||
}
|
||||
}
|
||||
|
||||
function recursivelyTraverseAndDoubleInvokeEffectsInDEV(
|
||||
root,
|
||||
parentFiber,
|
||||
isInStrictMode
|
||||
) {
|
||||
if (
|
||||
(parentFiber.subtreeFlags & (PlacementDEV | Visibility)) ===
|
||||
NoFlags$1
|
||||
) {
|
||||
// Parent's descendants have already had effects double invoked.
|
||||
// Early exit to avoid unnecessary tree traversal.
|
||||
return;
|
||||
}
|
||||
|
||||
var child = parentFiber.child;
|
||||
|
||||
while (child !== null) {
|
||||
doubleInvokeEffectsInDEVIfNecessary(root, child, isInStrictMode);
|
||||
child = child.sibling;
|
||||
}
|
||||
} // Unconditionally disconnects and connects passive and layout effects.
|
||||
|
||||
function doubleInvokeEffectsOnFiber(root, fiber) {
|
||||
var shouldDoubleInvokePassiveEffects =
|
||||
arguments.length > 2 && arguments[2] !== undefined
|
||||
? arguments[2]
|
||||
: true;
|
||||
disappearLayoutEffects(fiber);
|
||||
|
||||
if (shouldDoubleInvokePassiveEffects) {
|
||||
disconnectPassiveEffect(fiber);
|
||||
}
|
||||
|
||||
reappearLayoutEffects(root, fiber.alternate, fiber, false);
|
||||
|
||||
if (shouldDoubleInvokePassiveEffects) {
|
||||
reconnectPassiveEffects(root, fiber, NoLanes, null, false);
|
||||
}
|
||||
}
|
||||
|
||||
function doubleInvokeEffectsInDEVIfNecessary(
|
||||
root,
|
||||
fiber,
|
||||
parentIsInStrictMode
|
||||
) {
|
||||
var isStrictModeFiber = fiber.type === REACT_STRICT_MODE_TYPE;
|
||||
var isInStrictMode = parentIsInStrictMode || isStrictModeFiber; // First case: the fiber **is not** of type OffscreenComponent. No
|
||||
// special rules apply to double invoking effects.
|
||||
|
||||
if (fiber.tag !== OffscreenComponent) {
|
||||
if (fiber.flags & PlacementDEV) {
|
||||
setCurrentFiber(fiber);
|
||||
|
||||
if (isInStrictMode) {
|
||||
doubleInvokeEffectsOnFiber(
|
||||
root,
|
||||
fiber,
|
||||
(fiber.mode & NoStrictPassiveEffectsMode) === NoMode
|
||||
);
|
||||
}
|
||||
|
||||
resetCurrentFiber();
|
||||
} else {
|
||||
recursivelyTraverseAndDoubleInvokeEffectsInDEV(
|
||||
root,
|
||||
fiber,
|
||||
isInStrictMode
|
||||
);
|
||||
}
|
||||
|
||||
return;
|
||||
} // Second case: the fiber **is** of type OffscreenComponent.
|
||||
// This branch contains cases specific to Offscreen.
|
||||
|
||||
if (fiber.memoizedState === null) {
|
||||
// Only consider Offscreen that is visible.
|
||||
// TODO (Offscreen) Handle manual mode.
|
||||
setCurrentFiber(fiber);
|
||||
|
||||
if (isInStrictMode && fiber.flags & Visibility) {
|
||||
// Double invoke effects on Offscreen's subtree only
|
||||
// if it is visible and its visibility has changed.
|
||||
doubleInvokeEffectsOnFiber(root, fiber);
|
||||
} else if (fiber.subtreeFlags & PlacementDEV) {
|
||||
// Something in the subtree could have been suspended.
|
||||
// We need to continue traversal and find newly inserted fibers.
|
||||
recursivelyTraverseAndDoubleInvokeEffectsInDEV(
|
||||
root,
|
||||
fiber,
|
||||
isInStrictMode
|
||||
);
|
||||
}
|
||||
|
||||
resetCurrentFiber();
|
||||
}
|
||||
}
|
||||
|
||||
function commitDoubleInvokeEffectsInDEV(root, hasPassiveEffects) {
|
||||
{
|
||||
{
|
||||
if (useModernStrictMode && root.tag !== LegacyRoot) {
|
||||
var doubleInvokeEffects = true;
|
||||
|
||||
if (
|
||||
root.tag === ConcurrentRoot &&
|
||||
!(root.current.mode & (StrictLegacyMode | StrictEffectsMode))
|
||||
) {
|
||||
doubleInvokeEffects = false;
|
||||
}
|
||||
|
||||
recursivelyTraverseAndDoubleInvokeEffectsInDEV(
|
||||
root,
|
||||
root.current,
|
||||
doubleInvokeEffects
|
||||
);
|
||||
} else {
|
||||
legacyCommitDoubleInvokeEffectsInDEV(root.current, hasPassiveEffects);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -152,7 +152,8 @@ if (__DEV__) {
|
||||
dynamicFeatureFlags.transitionLaneExpirationMs,
|
||||
enableInfiniteRenderLoopDetection =
|
||||
dynamicFeatureFlags.enableInfiniteRenderLoopDetection,
|
||||
enableRenderableContext = dynamicFeatureFlags.enableRenderableContext; // On WWW, false is used for a new modern build.
|
||||
enableRenderableContext = dynamicFeatureFlags.enableRenderableContext,
|
||||
useModernStrictMode = dynamicFeatureFlags.useModernStrictMode; // On WWW, false is used for a new modern build.
|
||||
var enableProfilerTimer = true;
|
||||
var enableProfilerCommitHooks = true;
|
||||
var enableProfilerNestedUpdatePhase = true;
|
||||
@@ -33982,9 +33983,121 @@ if (__DEV__) {
|
||||
}
|
||||
}
|
||||
|
||||
function recursivelyTraverseAndDoubleInvokeEffectsInDEV(
|
||||
root,
|
||||
parentFiber,
|
||||
isInStrictMode
|
||||
) {
|
||||
if (
|
||||
(parentFiber.subtreeFlags & (PlacementDEV | Visibility)) ===
|
||||
NoFlags$1
|
||||
) {
|
||||
// Parent's descendants have already had effects double invoked.
|
||||
// Early exit to avoid unnecessary tree traversal.
|
||||
return;
|
||||
}
|
||||
|
||||
var child = parentFiber.child;
|
||||
|
||||
while (child !== null) {
|
||||
doubleInvokeEffectsInDEVIfNecessary(root, child, isInStrictMode);
|
||||
child = child.sibling;
|
||||
}
|
||||
} // Unconditionally disconnects and connects passive and layout effects.
|
||||
|
||||
function doubleInvokeEffectsOnFiber(root, fiber) {
|
||||
var shouldDoubleInvokePassiveEffects =
|
||||
arguments.length > 2 && arguments[2] !== undefined
|
||||
? arguments[2]
|
||||
: true;
|
||||
disappearLayoutEffects(fiber);
|
||||
|
||||
if (shouldDoubleInvokePassiveEffects) {
|
||||
disconnectPassiveEffect(fiber);
|
||||
}
|
||||
|
||||
reappearLayoutEffects(root, fiber.alternate, fiber, false);
|
||||
|
||||
if (shouldDoubleInvokePassiveEffects) {
|
||||
reconnectPassiveEffects(root, fiber, NoLanes, null, false);
|
||||
}
|
||||
}
|
||||
|
||||
function doubleInvokeEffectsInDEVIfNecessary(
|
||||
root,
|
||||
fiber,
|
||||
parentIsInStrictMode
|
||||
) {
|
||||
var isStrictModeFiber = fiber.type === REACT_STRICT_MODE_TYPE;
|
||||
var isInStrictMode = parentIsInStrictMode || isStrictModeFiber; // First case: the fiber **is not** of type OffscreenComponent. No
|
||||
// special rules apply to double invoking effects.
|
||||
|
||||
if (fiber.tag !== OffscreenComponent) {
|
||||
if (fiber.flags & PlacementDEV) {
|
||||
setCurrentFiber(fiber);
|
||||
|
||||
if (isInStrictMode) {
|
||||
doubleInvokeEffectsOnFiber(
|
||||
root,
|
||||
fiber,
|
||||
(fiber.mode & NoStrictPassiveEffectsMode) === NoMode
|
||||
);
|
||||
}
|
||||
|
||||
resetCurrentFiber();
|
||||
} else {
|
||||
recursivelyTraverseAndDoubleInvokeEffectsInDEV(
|
||||
root,
|
||||
fiber,
|
||||
isInStrictMode
|
||||
);
|
||||
}
|
||||
|
||||
return;
|
||||
} // Second case: the fiber **is** of type OffscreenComponent.
|
||||
// This branch contains cases specific to Offscreen.
|
||||
|
||||
if (fiber.memoizedState === null) {
|
||||
// Only consider Offscreen that is visible.
|
||||
// TODO (Offscreen) Handle manual mode.
|
||||
setCurrentFiber(fiber);
|
||||
|
||||
if (isInStrictMode && fiber.flags & Visibility) {
|
||||
// Double invoke effects on Offscreen's subtree only
|
||||
// if it is visible and its visibility has changed.
|
||||
doubleInvokeEffectsOnFiber(root, fiber);
|
||||
} else if (fiber.subtreeFlags & PlacementDEV) {
|
||||
// Something in the subtree could have been suspended.
|
||||
// We need to continue traversal and find newly inserted fibers.
|
||||
recursivelyTraverseAndDoubleInvokeEffectsInDEV(
|
||||
root,
|
||||
fiber,
|
||||
isInStrictMode
|
||||
);
|
||||
}
|
||||
|
||||
resetCurrentFiber();
|
||||
}
|
||||
}
|
||||
|
||||
function commitDoubleInvokeEffectsInDEV(root, hasPassiveEffects) {
|
||||
{
|
||||
{
|
||||
if (useModernStrictMode && root.tag !== LegacyRoot) {
|
||||
var doubleInvokeEffects = true;
|
||||
|
||||
if (
|
||||
root.tag === ConcurrentRoot &&
|
||||
!(root.current.mode & (StrictLegacyMode | StrictEffectsMode))
|
||||
) {
|
||||
doubleInvokeEffects = false;
|
||||
}
|
||||
|
||||
recursivelyTraverseAndDoubleInvokeEffectsInDEV(
|
||||
root,
|
||||
root.current,
|
||||
doubleInvokeEffects
|
||||
);
|
||||
} else {
|
||||
legacyCommitDoubleInvokeEffectsInDEV(root.current, hasPassiveEffects);
|
||||
}
|
||||
}
|
||||
@@ -35723,7 +35836,7 @@ if (__DEV__) {
|
||||
return root;
|
||||
}
|
||||
|
||||
var ReactVersion = "18.3.0-www-classic-356e851e";
|
||||
var ReactVersion = "18.3.0-www-classic-4bb1faa4";
|
||||
|
||||
function createPortal$1(
|
||||
children,
|
||||
|
||||
@@ -138,7 +138,8 @@ if (__DEV__) {
|
||||
dynamicFeatureFlags.transitionLaneExpirationMs,
|
||||
enableInfiniteRenderLoopDetection =
|
||||
dynamicFeatureFlags.enableInfiniteRenderLoopDetection,
|
||||
enableRenderableContext = dynamicFeatureFlags.enableRenderableContext; // On WWW, true is used for a new modern build.
|
||||
enableRenderableContext = dynamicFeatureFlags.enableRenderableContext,
|
||||
useModernStrictMode = dynamicFeatureFlags.useModernStrictMode; // On WWW, true is used for a new modern build.
|
||||
var enableProfilerTimer = true;
|
||||
var enableProfilerCommitHooks = true;
|
||||
var enableProfilerNestedUpdatePhase = true;
|
||||
@@ -33818,9 +33819,121 @@ if (__DEV__) {
|
||||
}
|
||||
}
|
||||
|
||||
function recursivelyTraverseAndDoubleInvokeEffectsInDEV(
|
||||
root,
|
||||
parentFiber,
|
||||
isInStrictMode
|
||||
) {
|
||||
if (
|
||||
(parentFiber.subtreeFlags & (PlacementDEV | Visibility)) ===
|
||||
NoFlags$1
|
||||
) {
|
||||
// Parent's descendants have already had effects double invoked.
|
||||
// Early exit to avoid unnecessary tree traversal.
|
||||
return;
|
||||
}
|
||||
|
||||
var child = parentFiber.child;
|
||||
|
||||
while (child !== null) {
|
||||
doubleInvokeEffectsInDEVIfNecessary(root, child, isInStrictMode);
|
||||
child = child.sibling;
|
||||
}
|
||||
} // Unconditionally disconnects and connects passive and layout effects.
|
||||
|
||||
function doubleInvokeEffectsOnFiber(root, fiber) {
|
||||
var shouldDoubleInvokePassiveEffects =
|
||||
arguments.length > 2 && arguments[2] !== undefined
|
||||
? arguments[2]
|
||||
: true;
|
||||
disappearLayoutEffects(fiber);
|
||||
|
||||
if (shouldDoubleInvokePassiveEffects) {
|
||||
disconnectPassiveEffect(fiber);
|
||||
}
|
||||
|
||||
reappearLayoutEffects(root, fiber.alternate, fiber, false);
|
||||
|
||||
if (shouldDoubleInvokePassiveEffects) {
|
||||
reconnectPassiveEffects(root, fiber, NoLanes, null, false);
|
||||
}
|
||||
}
|
||||
|
||||
function doubleInvokeEffectsInDEVIfNecessary(
|
||||
root,
|
||||
fiber,
|
||||
parentIsInStrictMode
|
||||
) {
|
||||
var isStrictModeFiber = fiber.type === REACT_STRICT_MODE_TYPE;
|
||||
var isInStrictMode = parentIsInStrictMode || isStrictModeFiber; // First case: the fiber **is not** of type OffscreenComponent. No
|
||||
// special rules apply to double invoking effects.
|
||||
|
||||
if (fiber.tag !== OffscreenComponent) {
|
||||
if (fiber.flags & PlacementDEV) {
|
||||
setCurrentFiber(fiber);
|
||||
|
||||
if (isInStrictMode) {
|
||||
doubleInvokeEffectsOnFiber(
|
||||
root,
|
||||
fiber,
|
||||
(fiber.mode & NoStrictPassiveEffectsMode) === NoMode
|
||||
);
|
||||
}
|
||||
|
||||
resetCurrentFiber();
|
||||
} else {
|
||||
recursivelyTraverseAndDoubleInvokeEffectsInDEV(
|
||||
root,
|
||||
fiber,
|
||||
isInStrictMode
|
||||
);
|
||||
}
|
||||
|
||||
return;
|
||||
} // Second case: the fiber **is** of type OffscreenComponent.
|
||||
// This branch contains cases specific to Offscreen.
|
||||
|
||||
if (fiber.memoizedState === null) {
|
||||
// Only consider Offscreen that is visible.
|
||||
// TODO (Offscreen) Handle manual mode.
|
||||
setCurrentFiber(fiber);
|
||||
|
||||
if (isInStrictMode && fiber.flags & Visibility) {
|
||||
// Double invoke effects on Offscreen's subtree only
|
||||
// if it is visible and its visibility has changed.
|
||||
doubleInvokeEffectsOnFiber(root, fiber);
|
||||
} else if (fiber.subtreeFlags & PlacementDEV) {
|
||||
// Something in the subtree could have been suspended.
|
||||
// We need to continue traversal and find newly inserted fibers.
|
||||
recursivelyTraverseAndDoubleInvokeEffectsInDEV(
|
||||
root,
|
||||
fiber,
|
||||
isInStrictMode
|
||||
);
|
||||
}
|
||||
|
||||
resetCurrentFiber();
|
||||
}
|
||||
}
|
||||
|
||||
function commitDoubleInvokeEffectsInDEV(root, hasPassiveEffects) {
|
||||
{
|
||||
{
|
||||
if (useModernStrictMode && root.tag !== LegacyRoot) {
|
||||
var doubleInvokeEffects = true;
|
||||
|
||||
if (
|
||||
root.tag === ConcurrentRoot &&
|
||||
!(root.current.mode & (StrictLegacyMode | StrictEffectsMode))
|
||||
) {
|
||||
doubleInvokeEffects = false;
|
||||
}
|
||||
|
||||
recursivelyTraverseAndDoubleInvokeEffectsInDEV(
|
||||
root,
|
||||
root.current,
|
||||
doubleInvokeEffects
|
||||
);
|
||||
} else {
|
||||
legacyCommitDoubleInvokeEffectsInDEV(root.current, hasPassiveEffects);
|
||||
}
|
||||
}
|
||||
@@ -35559,7 +35672,7 @@ if (__DEV__) {
|
||||
return root;
|
||||
}
|
||||
|
||||
var ReactVersion = "18.3.0-www-modern-89b71e92";
|
||||
var ReactVersion = "18.3.0-www-modern-5bb6a208";
|
||||
|
||||
function createPortal$1(
|
||||
children,
|
||||
|
||||
@@ -17458,7 +17458,7 @@ Internals.Events = [
|
||||
var devToolsConfig$jscomp$inline_1863 = {
|
||||
findFiberByHostInstance: getClosestInstanceFromNode,
|
||||
bundleType: 0,
|
||||
version: "18.3.0-www-modern-cdfb5e55",
|
||||
version: "18.3.0-www-modern-4bc0b3fd",
|
||||
rendererPackageName: "react-dom"
|
||||
};
|
||||
(function (internals) {
|
||||
@@ -17503,7 +17503,7 @@ var devToolsConfig$jscomp$inline_1863 = {
|
||||
scheduleRoot: null,
|
||||
setRefreshHandler: null,
|
||||
getCurrentFiber: null,
|
||||
reconcilerVersion: "18.3.0-www-modern-cdfb5e55"
|
||||
reconcilerVersion: "18.3.0-www-modern-4bc0b3fd"
|
||||
});
|
||||
exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = Internals;
|
||||
exports.createPortal = function (children, container) {
|
||||
@@ -17761,7 +17761,7 @@ exports.useFormState = function (action, initialState, permalink) {
|
||||
exports.useFormStatus = function () {
|
||||
return ReactCurrentDispatcher$2.current.useHostTransitionStatus();
|
||||
};
|
||||
exports.version = "18.3.0-www-modern-cdfb5e55";
|
||||
exports.version = "18.3.0-www-modern-4bc0b3fd";
|
||||
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
|
||||
"function" ===
|
||||
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
|
||||
|
||||
@@ -19,7 +19,7 @@ if (__DEV__) {
|
||||
var React = require("react");
|
||||
var ReactDOM = require("react-dom");
|
||||
|
||||
var ReactVersion = "18.3.0-www-classic-1211dccf";
|
||||
var ReactVersion = "18.3.0-www-classic-593936b0";
|
||||
|
||||
// This refers to a WWW module.
|
||||
var warningWWW = require("warning");
|
||||
@@ -88,7 +88,8 @@ if (__DEV__) {
|
||||
var enableTransitionTracing = dynamicFeatureFlags.enableTransitionTracing,
|
||||
enableUseDeferredValueInitialArg =
|
||||
dynamicFeatureFlags.enableUseDeferredValueInitialArg,
|
||||
enableRenderableContext = dynamicFeatureFlags.enableRenderableContext; // On WWW, false is used for a new modern build.
|
||||
enableRenderableContext = dynamicFeatureFlags.enableRenderableContext;
|
||||
// On WWW, false is used for a new modern build.
|
||||
var enableFloat = true;
|
||||
|
||||
// ATTENTION
|
||||
|
||||
@@ -19,7 +19,7 @@ if (__DEV__) {
|
||||
var React = require("react");
|
||||
var ReactDOM = require("react-dom");
|
||||
|
||||
var ReactVersion = "18.3.0-www-modern-ba9c385a";
|
||||
var ReactVersion = "18.3.0-www-modern-320b188c";
|
||||
|
||||
// This refers to a WWW module.
|
||||
var warningWWW = require("warning");
|
||||
@@ -88,7 +88,8 @@ if (__DEV__) {
|
||||
var enableTransitionTracing = dynamicFeatureFlags.enableTransitionTracing,
|
||||
enableUseDeferredValueInitialArg =
|
||||
dynamicFeatureFlags.enableUseDeferredValueInitialArg,
|
||||
enableRenderableContext = dynamicFeatureFlags.enableRenderableContext; // On WWW, true is used for a new modern build.
|
||||
enableRenderableContext = dynamicFeatureFlags.enableRenderableContext;
|
||||
// On WWW, true is used for a new modern build.
|
||||
var enableFloat = true;
|
||||
|
||||
// ATTENTION
|
||||
|
||||
@@ -86,7 +86,8 @@ if (__DEV__) {
|
||||
var enableTransitionTracing = dynamicFeatureFlags.enableTransitionTracing,
|
||||
enableUseDeferredValueInitialArg =
|
||||
dynamicFeatureFlags.enableUseDeferredValueInitialArg,
|
||||
enableRenderableContext = dynamicFeatureFlags.enableRenderableContext; // On WWW, true is used for a new modern build.
|
||||
enableRenderableContext = dynamicFeatureFlags.enableRenderableContext;
|
||||
// On WWW, true is used for a new modern build.
|
||||
var enableFloat = true;
|
||||
|
||||
// ATTENTION
|
||||
|
||||
@@ -144,7 +144,8 @@ if (__DEV__) {
|
||||
dynamicFeatureFlags.transitionLaneExpirationMs,
|
||||
enableInfiniteRenderLoopDetection =
|
||||
dynamicFeatureFlags.enableInfiniteRenderLoopDetection,
|
||||
enableRenderableContext = dynamicFeatureFlags.enableRenderableContext; // On WWW, false is used for a new modern build.
|
||||
enableRenderableContext = dynamicFeatureFlags.enableRenderableContext,
|
||||
useModernStrictMode = dynamicFeatureFlags.useModernStrictMode; // On WWW, false is used for a new modern build.
|
||||
var enableProfilerTimer = true;
|
||||
var enableProfilerCommitHooks = true;
|
||||
var enableProfilerNestedUpdatePhase = true;
|
||||
@@ -34606,9 +34607,121 @@ if (__DEV__) {
|
||||
}
|
||||
}
|
||||
|
||||
function recursivelyTraverseAndDoubleInvokeEffectsInDEV(
|
||||
root,
|
||||
parentFiber,
|
||||
isInStrictMode
|
||||
) {
|
||||
if (
|
||||
(parentFiber.subtreeFlags & (PlacementDEV | Visibility)) ===
|
||||
NoFlags$1
|
||||
) {
|
||||
// Parent's descendants have already had effects double invoked.
|
||||
// Early exit to avoid unnecessary tree traversal.
|
||||
return;
|
||||
}
|
||||
|
||||
var child = parentFiber.child;
|
||||
|
||||
while (child !== null) {
|
||||
doubleInvokeEffectsInDEVIfNecessary(root, child, isInStrictMode);
|
||||
child = child.sibling;
|
||||
}
|
||||
} // Unconditionally disconnects and connects passive and layout effects.
|
||||
|
||||
function doubleInvokeEffectsOnFiber(root, fiber) {
|
||||
var shouldDoubleInvokePassiveEffects =
|
||||
arguments.length > 2 && arguments[2] !== undefined
|
||||
? arguments[2]
|
||||
: true;
|
||||
disappearLayoutEffects(fiber);
|
||||
|
||||
if (shouldDoubleInvokePassiveEffects) {
|
||||
disconnectPassiveEffect(fiber);
|
||||
}
|
||||
|
||||
reappearLayoutEffects(root, fiber.alternate, fiber, false);
|
||||
|
||||
if (shouldDoubleInvokePassiveEffects) {
|
||||
reconnectPassiveEffects(root, fiber, NoLanes, null, false);
|
||||
}
|
||||
}
|
||||
|
||||
function doubleInvokeEffectsInDEVIfNecessary(
|
||||
root,
|
||||
fiber,
|
||||
parentIsInStrictMode
|
||||
) {
|
||||
var isStrictModeFiber = fiber.type === REACT_STRICT_MODE_TYPE;
|
||||
var isInStrictMode = parentIsInStrictMode || isStrictModeFiber; // First case: the fiber **is not** of type OffscreenComponent. No
|
||||
// special rules apply to double invoking effects.
|
||||
|
||||
if (fiber.tag !== OffscreenComponent) {
|
||||
if (fiber.flags & PlacementDEV) {
|
||||
setCurrentFiber(fiber);
|
||||
|
||||
if (isInStrictMode) {
|
||||
doubleInvokeEffectsOnFiber(
|
||||
root,
|
||||
fiber,
|
||||
(fiber.mode & NoStrictPassiveEffectsMode) === NoMode
|
||||
);
|
||||
}
|
||||
|
||||
resetCurrentFiber();
|
||||
} else {
|
||||
recursivelyTraverseAndDoubleInvokeEffectsInDEV(
|
||||
root,
|
||||
fiber,
|
||||
isInStrictMode
|
||||
);
|
||||
}
|
||||
|
||||
return;
|
||||
} // Second case: the fiber **is** of type OffscreenComponent.
|
||||
// This branch contains cases specific to Offscreen.
|
||||
|
||||
if (fiber.memoizedState === null) {
|
||||
// Only consider Offscreen that is visible.
|
||||
// TODO (Offscreen) Handle manual mode.
|
||||
setCurrentFiber(fiber);
|
||||
|
||||
if (isInStrictMode && fiber.flags & Visibility) {
|
||||
// Double invoke effects on Offscreen's subtree only
|
||||
// if it is visible and its visibility has changed.
|
||||
doubleInvokeEffectsOnFiber(root, fiber);
|
||||
} else if (fiber.subtreeFlags & PlacementDEV) {
|
||||
// Something in the subtree could have been suspended.
|
||||
// We need to continue traversal and find newly inserted fibers.
|
||||
recursivelyTraverseAndDoubleInvokeEffectsInDEV(
|
||||
root,
|
||||
fiber,
|
||||
isInStrictMode
|
||||
);
|
||||
}
|
||||
|
||||
resetCurrentFiber();
|
||||
}
|
||||
}
|
||||
|
||||
function commitDoubleInvokeEffectsInDEV(root, hasPassiveEffects) {
|
||||
{
|
||||
{
|
||||
if (useModernStrictMode && root.tag !== LegacyRoot) {
|
||||
var doubleInvokeEffects = true;
|
||||
|
||||
if (
|
||||
root.tag === ConcurrentRoot &&
|
||||
!(root.current.mode & (StrictLegacyMode | StrictEffectsMode))
|
||||
) {
|
||||
doubleInvokeEffects = false;
|
||||
}
|
||||
|
||||
recursivelyTraverseAndDoubleInvokeEffectsInDEV(
|
||||
root,
|
||||
root.current,
|
||||
doubleInvokeEffects
|
||||
);
|
||||
} else {
|
||||
legacyCommitDoubleInvokeEffectsInDEV(root.current, hasPassiveEffects);
|
||||
}
|
||||
}
|
||||
@@ -36347,7 +36460,7 @@ if (__DEV__) {
|
||||
return root;
|
||||
}
|
||||
|
||||
var ReactVersion = "18.3.0-www-classic-707cd731";
|
||||
var ReactVersion = "18.3.0-www-classic-863536b2";
|
||||
|
||||
function createPortal$1(
|
||||
children,
|
||||
|
||||
@@ -130,7 +130,8 @@ if (__DEV__) {
|
||||
dynamicFeatureFlags.transitionLaneExpirationMs,
|
||||
enableInfiniteRenderLoopDetection =
|
||||
dynamicFeatureFlags.enableInfiniteRenderLoopDetection,
|
||||
enableRenderableContext = dynamicFeatureFlags.enableRenderableContext; // On WWW, true is used for a new modern build.
|
||||
enableRenderableContext = dynamicFeatureFlags.enableRenderableContext,
|
||||
useModernStrictMode = dynamicFeatureFlags.useModernStrictMode; // On WWW, true is used for a new modern build.
|
||||
var enableProfilerTimer = true;
|
||||
var enableProfilerCommitHooks = true;
|
||||
var enableProfilerNestedUpdatePhase = true;
|
||||
@@ -34442,9 +34443,121 @@ if (__DEV__) {
|
||||
}
|
||||
}
|
||||
|
||||
function recursivelyTraverseAndDoubleInvokeEffectsInDEV(
|
||||
root,
|
||||
parentFiber,
|
||||
isInStrictMode
|
||||
) {
|
||||
if (
|
||||
(parentFiber.subtreeFlags & (PlacementDEV | Visibility)) ===
|
||||
NoFlags$1
|
||||
) {
|
||||
// Parent's descendants have already had effects double invoked.
|
||||
// Early exit to avoid unnecessary tree traversal.
|
||||
return;
|
||||
}
|
||||
|
||||
var child = parentFiber.child;
|
||||
|
||||
while (child !== null) {
|
||||
doubleInvokeEffectsInDEVIfNecessary(root, child, isInStrictMode);
|
||||
child = child.sibling;
|
||||
}
|
||||
} // Unconditionally disconnects and connects passive and layout effects.
|
||||
|
||||
function doubleInvokeEffectsOnFiber(root, fiber) {
|
||||
var shouldDoubleInvokePassiveEffects =
|
||||
arguments.length > 2 && arguments[2] !== undefined
|
||||
? arguments[2]
|
||||
: true;
|
||||
disappearLayoutEffects(fiber);
|
||||
|
||||
if (shouldDoubleInvokePassiveEffects) {
|
||||
disconnectPassiveEffect(fiber);
|
||||
}
|
||||
|
||||
reappearLayoutEffects(root, fiber.alternate, fiber, false);
|
||||
|
||||
if (shouldDoubleInvokePassiveEffects) {
|
||||
reconnectPassiveEffects(root, fiber, NoLanes, null, false);
|
||||
}
|
||||
}
|
||||
|
||||
function doubleInvokeEffectsInDEVIfNecessary(
|
||||
root,
|
||||
fiber,
|
||||
parentIsInStrictMode
|
||||
) {
|
||||
var isStrictModeFiber = fiber.type === REACT_STRICT_MODE_TYPE;
|
||||
var isInStrictMode = parentIsInStrictMode || isStrictModeFiber; // First case: the fiber **is not** of type OffscreenComponent. No
|
||||
// special rules apply to double invoking effects.
|
||||
|
||||
if (fiber.tag !== OffscreenComponent) {
|
||||
if (fiber.flags & PlacementDEV) {
|
||||
setCurrentFiber(fiber);
|
||||
|
||||
if (isInStrictMode) {
|
||||
doubleInvokeEffectsOnFiber(
|
||||
root,
|
||||
fiber,
|
||||
(fiber.mode & NoStrictPassiveEffectsMode) === NoMode
|
||||
);
|
||||
}
|
||||
|
||||
resetCurrentFiber();
|
||||
} else {
|
||||
recursivelyTraverseAndDoubleInvokeEffectsInDEV(
|
||||
root,
|
||||
fiber,
|
||||
isInStrictMode
|
||||
);
|
||||
}
|
||||
|
||||
return;
|
||||
} // Second case: the fiber **is** of type OffscreenComponent.
|
||||
// This branch contains cases specific to Offscreen.
|
||||
|
||||
if (fiber.memoizedState === null) {
|
||||
// Only consider Offscreen that is visible.
|
||||
// TODO (Offscreen) Handle manual mode.
|
||||
setCurrentFiber(fiber);
|
||||
|
||||
if (isInStrictMode && fiber.flags & Visibility) {
|
||||
// Double invoke effects on Offscreen's subtree only
|
||||
// if it is visible and its visibility has changed.
|
||||
doubleInvokeEffectsOnFiber(root, fiber);
|
||||
} else if (fiber.subtreeFlags & PlacementDEV) {
|
||||
// Something in the subtree could have been suspended.
|
||||
// We need to continue traversal and find newly inserted fibers.
|
||||
recursivelyTraverseAndDoubleInvokeEffectsInDEV(
|
||||
root,
|
||||
fiber,
|
||||
isInStrictMode
|
||||
);
|
||||
}
|
||||
|
||||
resetCurrentFiber();
|
||||
}
|
||||
}
|
||||
|
||||
function commitDoubleInvokeEffectsInDEV(root, hasPassiveEffects) {
|
||||
{
|
||||
{
|
||||
if (useModernStrictMode && root.tag !== LegacyRoot) {
|
||||
var doubleInvokeEffects = true;
|
||||
|
||||
if (
|
||||
root.tag === ConcurrentRoot &&
|
||||
!(root.current.mode & (StrictLegacyMode | StrictEffectsMode))
|
||||
) {
|
||||
doubleInvokeEffects = false;
|
||||
}
|
||||
|
||||
recursivelyTraverseAndDoubleInvokeEffectsInDEV(
|
||||
root,
|
||||
root.current,
|
||||
doubleInvokeEffects
|
||||
);
|
||||
} else {
|
||||
legacyCommitDoubleInvokeEffectsInDEV(root.current, hasPassiveEffects);
|
||||
}
|
||||
}
|
||||
@@ -36183,7 +36296,7 @@ if (__DEV__) {
|
||||
return root;
|
||||
}
|
||||
|
||||
var ReactVersion = "18.3.0-www-modern-b7104184";
|
||||
var ReactVersion = "18.3.0-www-modern-617357dc";
|
||||
|
||||
function createPortal$1(
|
||||
children,
|
||||
|
||||
@@ -46,7 +46,8 @@ if (__DEV__) {
|
||||
|
||||
var enableDebugTracing = dynamicFeatureFlags.enableDebugTracing,
|
||||
enableTransitionTracing = dynamicFeatureFlags.enableTransitionTracing,
|
||||
enableRenderableContext = dynamicFeatureFlags.enableRenderableContext; // On WWW, false is used for a new modern build.
|
||||
enableRenderableContext = dynamicFeatureFlags.enableRenderableContext;
|
||||
// On WWW, false is used for a new modern build.
|
||||
|
||||
var REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference");
|
||||
function isValidElementType(type) {
|
||||
|
||||
@@ -46,7 +46,8 @@ if (__DEV__) {
|
||||
|
||||
var enableDebugTracing = dynamicFeatureFlags.enableDebugTracing,
|
||||
enableTransitionTracing = dynamicFeatureFlags.enableTransitionTracing,
|
||||
enableRenderableContext = dynamicFeatureFlags.enableRenderableContext; // On WWW, true is used for a new modern build.
|
||||
enableRenderableContext = dynamicFeatureFlags.enableRenderableContext;
|
||||
// On WWW, true is used for a new modern build.
|
||||
|
||||
var REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference");
|
||||
function isValidElementType(type) {
|
||||
|
||||
@@ -84,7 +84,8 @@ if (__DEV__) {
|
||||
|
||||
var enableDebugTracing = dynamicFeatureFlags.enableDebugTracing,
|
||||
enableTransitionTracing = dynamicFeatureFlags.enableTransitionTracing,
|
||||
enableRenderableContext = dynamicFeatureFlags.enableRenderableContext; // On WWW, true is used for a new modern build.
|
||||
enableRenderableContext = dynamicFeatureFlags.enableRenderableContext;
|
||||
// On WWW, true is used for a new modern build.
|
||||
|
||||
/**
|
||||
* Keeps track of the current Cache dispatcher.
|
||||
@@ -2662,7 +2663,7 @@ if (__DEV__) {
|
||||
console["error"](error);
|
||||
};
|
||||
|
||||
var ReactVersion = "18.3.0-www-modern-508518a5";
|
||||
var ReactVersion = "18.3.0-www-modern-a192cdd2";
|
||||
|
||||
// Patch fetch
|
||||
var Children = {
|
||||
|
||||
Reference in New Issue
Block a user