[compiler] Allow setStates in use{Layout,Insertion}Effect where the set value is derived from a ref (#34462)

@stipsan found this issue where the compiler would bailout on the
`useLayoutEffect` examples in the React docs. While setState in an
effect is typically an anti-pattern due to the fact that it hurts
performance through cascading renders, the one scenario where it _is_
allowed is if the value being set flows from a ref.

DiffTrain build for [835b00908b](https://github.com/facebook/react/commit/835b00908b1b1c522323162b735a85c5f620ac81)
This commit is contained in:
poteto
2025-09-10 12:07:13 -07:00
parent 9e350ca304
commit 23223adcc0
35 changed files with 119 additions and 90 deletions
+33 -4
View File
@@ -32144,6 +32144,7 @@ const EnvironmentConfigSchema = zod.z.object({
lowerContextAccess: ExternalFunctionSchema.nullable().default(null),
validateNoVoidUseMemo: zod.z.boolean().default(false),
validateNoDynamicallyCreatedComponentsOrHooks: zod.z.boolean().default(false),
enableAllowSetStateFromRefsInEffects: zod.z.boolean().default(true),
});
class Environment {
constructor(scope, fnType, compilerMode, config, contextIdentifiers, parentFunction, logger, filename, code, programContext) {
@@ -50579,7 +50580,7 @@ function emitArrayInstr(elements, env) {
return arrayInstr;
}
function validateNoSetStateInEffects(fn) {
function validateNoSetStateInEffects(fn, env) {
const setStateFunctions = new Map();
const errors = new CompilerError();
for (const [, block] of fn.body.blocks) {
@@ -50601,7 +50602,7 @@ function validateNoSetStateInEffects(fn) {
case 'FunctionExpression': {
if ([...eachInstructionValueOperand(instr.value)].some(operand => isSetStateType(operand.identifier) ||
setStateFunctions.has(operand.identifier.id))) {
const callee = getSetStateCall(instr.value.loweredFunc.func, setStateFunctions);
const callee = getSetStateCall(instr.value.loweredFunc.func, setStateFunctions, env);
if (callee !== null) {
setStateFunctions.set(instr.lvalue.identifier.id, callee);
}
@@ -50645,9 +50646,29 @@ function validateNoSetStateInEffects(fn) {
}
return errors.asResult();
}
function getSetStateCall(fn, setStateFunctions) {
function getSetStateCall(fn, setStateFunctions, env) {
const refDerivedValues = new Set();
const isDerivedFromRef = (place) => {
return (refDerivedValues.has(place.identifier.id) ||
isUseRefType(place.identifier) ||
isRefValueType(place.identifier));
};
for (const [, block] of fn.body.blocks) {
for (const instr of block.instructions) {
if (env.config.enableAllowSetStateFromRefsInEffects) {
const hasRefOperand = Iterable_some(eachInstructionValueOperand(instr.value), isDerivedFromRef);
if (hasRefOperand) {
for (const lvalue of eachInstructionLValue(instr)) {
refDerivedValues.add(lvalue.identifier.id);
}
}
if (instr.value.kind === 'PropertyLoad' &&
instr.value.property === 'current' &&
(isUseRefType(instr.value.object.identifier) ||
isRefValueType(instr.value.object.identifier))) {
refDerivedValues.add(instr.lvalue.identifier.id);
}
}
switch (instr.value.kind) {
case 'LoadLocal': {
if (setStateFunctions.has(instr.value.place.identifier.id)) {
@@ -50666,6 +50687,14 @@ function getSetStateCall(fn, setStateFunctions) {
const callee = instr.value.callee;
if (isSetStateType(callee.identifier) ||
setStateFunctions.has(callee.identifier.id)) {
if (env.config.enableAllowSetStateFromRefsInEffects) {
const arg = instr.value.args.at(0);
if (arg !== undefined &&
arg.kind === 'Identifier' &&
refDerivedValues.has(arg.identifier.id)) {
return null;
}
}
return callee;
}
}
@@ -52129,7 +52158,7 @@ function runWithEnvironment(func, env) {
validateNoDerivedComputationsInEffects(hir);
}
if (env.config.validateNoSetStateInEffects) {
env.logErrors(validateNoSetStateInEffects(hir));
env.logErrors(validateNoSetStateInEffects(hir, env));
}
if (env.config.validateNoJSXInTryStatements) {
env.logErrors(validateNoJSXInTryStatement(hir));
+1 -1
View File
@@ -1 +1 @@
a34c5dff159a5b546a5b24a93e11102713a7d0ec
835b00908b1b1c522323162b735a85c5f620ac81
+1 -1
View File
@@ -1 +1 @@
a34c5dff159a5b546a5b24a93e11102713a7d0ec
835b00908b1b1c522323162b735a85c5f620ac81
+1 -1
View File
@@ -1418,7 +1418,7 @@ __DEV__ &&
exports.useTransition = function () {
return resolveDispatcher().useTransition();
};
exports.version = "19.2.0-www-classic-a34c5dff-20250910";
exports.version = "19.2.0-www-classic-835b0090-20250910";
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
"function" ===
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
+1 -1
View File
@@ -1418,7 +1418,7 @@ __DEV__ &&
exports.useTransition = function () {
return resolveDispatcher().useTransition();
};
exports.version = "19.2.0-www-modern-a34c5dff-20250910";
exports.version = "19.2.0-www-modern-835b0090-20250910";
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
"function" ===
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
+1 -1
View File
@@ -600,4 +600,4 @@ exports.useSyncExternalStore = function (
exports.useTransition = function () {
return ReactSharedInternals.H.useTransition();
};
exports.version = "19.2.0-www-classic-a34c5dff-20250910";
exports.version = "19.2.0-www-classic-835b0090-20250910";
+1 -1
View File
@@ -600,4 +600,4 @@ exports.useSyncExternalStore = function (
exports.useTransition = function () {
return ReactSharedInternals.H.useTransition();
};
exports.version = "19.2.0-www-modern-a34c5dff-20250910";
exports.version = "19.2.0-www-modern-835b0090-20250910";
@@ -604,7 +604,7 @@ exports.useSyncExternalStore = function (
exports.useTransition = function () {
return ReactSharedInternals.H.useTransition();
};
exports.version = "19.2.0-www-classic-a34c5dff-20250910";
exports.version = "19.2.0-www-classic-835b0090-20250910";
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
"function" ===
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
@@ -604,7 +604,7 @@ exports.useSyncExternalStore = function (
exports.useTransition = function () {
return ReactSharedInternals.H.useTransition();
};
exports.version = "19.2.0-www-modern-a34c5dff-20250910";
exports.version = "19.2.0-www-modern-835b0090-20250910";
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
"function" ===
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
@@ -19708,10 +19708,10 @@ __DEV__ &&
(function () {
var internals = {
bundleType: 1,
version: "19.2.0-www-classic-a34c5dff-20250910",
version: "19.2.0-www-classic-835b0090-20250910",
rendererPackageName: "react-art",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-www-classic-a34c5dff-20250910"
reconcilerVersion: "19.2.0-www-classic-835b0090-20250910"
};
internals.overrideHookState = overrideHookState;
internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
@@ -19745,7 +19745,7 @@ __DEV__ &&
exports.Shape = Shape;
exports.Surface = Surface;
exports.Text = Text;
exports.version = "19.2.0-www-classic-a34c5dff-20250910";
exports.version = "19.2.0-www-classic-835b0090-20250910";
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
"function" ===
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
+3 -3
View File
@@ -19479,10 +19479,10 @@ __DEV__ &&
(function () {
var internals = {
bundleType: 1,
version: "19.2.0-www-modern-a34c5dff-20250910",
version: "19.2.0-www-modern-835b0090-20250910",
rendererPackageName: "react-art",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-www-modern-a34c5dff-20250910"
reconcilerVersion: "19.2.0-www-modern-835b0090-20250910"
};
internals.overrideHookState = overrideHookState;
internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
@@ -19516,7 +19516,7 @@ __DEV__ &&
exports.Shape = Shape;
exports.Surface = Surface;
exports.Text = Text;
exports.version = "19.2.0-www-modern-a34c5dff-20250910";
exports.version = "19.2.0-www-modern-835b0090-20250910";
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
"function" ===
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
@@ -11419,10 +11419,10 @@ var slice = Array.prototype.slice,
})(React.Component);
var internals$jscomp$inline_1631 = {
bundleType: 0,
version: "19.2.0-www-classic-a34c5dff-20250910",
version: "19.2.0-www-classic-835b0090-20250910",
rendererPackageName: "react-art",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-www-classic-a34c5dff-20250910"
reconcilerVersion: "19.2.0-www-classic-835b0090-20250910"
};
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
var hook$jscomp$inline_1632 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -11448,4 +11448,4 @@ exports.RadialGradient = RadialGradient;
exports.Shape = TYPES.SHAPE;
exports.Surface = Surface;
exports.Text = Text;
exports.version = "19.2.0-www-classic-a34c5dff-20250910";
exports.version = "19.2.0-www-classic-835b0090-20250910";
@@ -11131,10 +11131,10 @@ var slice = Array.prototype.slice,
})(React.Component);
var internals$jscomp$inline_1604 = {
bundleType: 0,
version: "19.2.0-www-modern-a34c5dff-20250910",
version: "19.2.0-www-modern-835b0090-20250910",
rendererPackageName: "react-art",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-www-modern-a34c5dff-20250910"
reconcilerVersion: "19.2.0-www-modern-835b0090-20250910"
};
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
var hook$jscomp$inline_1605 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -11160,4 +11160,4 @@ exports.RadialGradient = RadialGradient;
exports.Shape = TYPES.SHAPE;
exports.Surface = Surface;
exports.Text = Text;
exports.version = "19.2.0-www-modern-a34c5dff-20250910";
exports.version = "19.2.0-www-modern-835b0090-20250910";
@@ -32306,11 +32306,11 @@ __DEV__ &&
return_targetInst = null;
(function () {
var isomorphicReactPackageVersion = React.version;
if ("19.2.0-www-classic-a34c5dff-20250910" !== isomorphicReactPackageVersion)
if ("19.2.0-www-classic-835b0090-20250910" !== isomorphicReactPackageVersion)
throw Error(
'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' +
(isomorphicReactPackageVersion +
"\n - react-dom: 19.2.0-www-classic-a34c5dff-20250910\nLearn more: https://react.dev/warnings/version-mismatch")
"\n - react-dom: 19.2.0-www-classic-835b0090-20250910\nLearn more: https://react.dev/warnings/version-mismatch")
);
})();
("function" === typeof Map &&
@@ -32353,10 +32353,10 @@ __DEV__ &&
!(function () {
var internals = {
bundleType: 1,
version: "19.2.0-www-classic-a34c5dff-20250910",
version: "19.2.0-www-classic-835b0090-20250910",
rendererPackageName: "react-dom",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-www-classic-a34c5dff-20250910"
reconcilerVersion: "19.2.0-www-classic-835b0090-20250910"
};
internals.overrideHookState = overrideHookState;
internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
@@ -32968,7 +32968,7 @@ __DEV__ &&
exports.useFormStatus = function () {
return resolveDispatcher().useHostTransitionStatus();
};
exports.version = "19.2.0-www-classic-a34c5dff-20250910";
exports.version = "19.2.0-www-classic-835b0090-20250910";
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
"function" ===
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
+5 -5
View File
@@ -32091,11 +32091,11 @@ __DEV__ &&
return_targetInst = null;
(function () {
var isomorphicReactPackageVersion = React.version;
if ("19.2.0-www-modern-a34c5dff-20250910" !== isomorphicReactPackageVersion)
if ("19.2.0-www-modern-835b0090-20250910" !== isomorphicReactPackageVersion)
throw Error(
'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' +
(isomorphicReactPackageVersion +
"\n - react-dom: 19.2.0-www-modern-a34c5dff-20250910\nLearn more: https://react.dev/warnings/version-mismatch")
"\n - react-dom: 19.2.0-www-modern-835b0090-20250910\nLearn more: https://react.dev/warnings/version-mismatch")
);
})();
("function" === typeof Map &&
@@ -32138,10 +32138,10 @@ __DEV__ &&
!(function () {
var internals = {
bundleType: 1,
version: "19.2.0-www-modern-a34c5dff-20250910",
version: "19.2.0-www-modern-835b0090-20250910",
rendererPackageName: "react-dom",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-www-modern-a34c5dff-20250910"
reconcilerVersion: "19.2.0-www-modern-835b0090-20250910"
};
internals.overrideHookState = overrideHookState;
internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
@@ -32753,7 +32753,7 @@ __DEV__ &&
exports.useFormStatus = function () {
return resolveDispatcher().useHostTransitionStatus();
};
exports.version = "19.2.0-www-modern-a34c5dff-20250910";
exports.version = "19.2.0-www-modern-835b0090-20250910";
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
"function" ===
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
@@ -19782,14 +19782,14 @@ function getCrossOriginStringAs(as, input) {
}
var isomorphicReactPackageVersion$jscomp$inline_2114 = React.version;
if (
"19.2.0-www-classic-a34c5dff-20250910" !==
"19.2.0-www-classic-835b0090-20250910" !==
isomorphicReactPackageVersion$jscomp$inline_2114
)
throw Error(
formatProdErrorMessage(
527,
isomorphicReactPackageVersion$jscomp$inline_2114,
"19.2.0-www-classic-a34c5dff-20250910"
"19.2.0-www-classic-835b0090-20250910"
)
);
Internals.findDOMNode = function (componentOrElement) {
@@ -19807,10 +19807,10 @@ Internals.Events = [
];
var internals$jscomp$inline_2746 = {
bundleType: 0,
version: "19.2.0-www-classic-a34c5dff-20250910",
version: "19.2.0-www-classic-835b0090-20250910",
rendererPackageName: "react-dom",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-www-classic-a34c5dff-20250910"
reconcilerVersion: "19.2.0-www-classic-835b0090-20250910"
};
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
var hook$jscomp$inline_2747 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -20239,4 +20239,4 @@ exports.useFormState = function (action, initialState, permalink) {
exports.useFormStatus = function () {
return ReactSharedInternals.H.useHostTransitionStatus();
};
exports.version = "19.2.0-www-classic-a34c5dff-20250910";
exports.version = "19.2.0-www-classic-835b0090-20250910";
@@ -19511,14 +19511,14 @@ function getCrossOriginStringAs(as, input) {
}
var isomorphicReactPackageVersion$jscomp$inline_2104 = React.version;
if (
"19.2.0-www-modern-a34c5dff-20250910" !==
"19.2.0-www-modern-835b0090-20250910" !==
isomorphicReactPackageVersion$jscomp$inline_2104
)
throw Error(
formatProdErrorMessage(
527,
isomorphicReactPackageVersion$jscomp$inline_2104,
"19.2.0-www-modern-a34c5dff-20250910"
"19.2.0-www-modern-835b0090-20250910"
)
);
Internals.findDOMNode = function (componentOrElement) {
@@ -19536,10 +19536,10 @@ Internals.Events = [
];
var internals$jscomp$inline_2728 = {
bundleType: 0,
version: "19.2.0-www-modern-a34c5dff-20250910",
version: "19.2.0-www-modern-835b0090-20250910",
rendererPackageName: "react-dom",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-www-modern-a34c5dff-20250910"
reconcilerVersion: "19.2.0-www-modern-835b0090-20250910"
};
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
var hook$jscomp$inline_2729 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -19968,4 +19968,4 @@ exports.useFormState = function (action, initialState, permalink) {
exports.useFormStatus = function () {
return ReactSharedInternals.H.useHostTransitionStatus();
};
exports.version = "19.2.0-www-modern-a34c5dff-20250910";
exports.version = "19.2.0-www-modern-835b0090-20250910";
@@ -21836,14 +21836,14 @@ function getCrossOriginStringAs(as, input) {
}
var isomorphicReactPackageVersion$jscomp$inline_2361 = React.version;
if (
"19.2.0-www-classic-a34c5dff-20250910" !==
"19.2.0-www-classic-835b0090-20250910" !==
isomorphicReactPackageVersion$jscomp$inline_2361
)
throw Error(
formatProdErrorMessage(
527,
isomorphicReactPackageVersion$jscomp$inline_2361,
"19.2.0-www-classic-a34c5dff-20250910"
"19.2.0-www-classic-835b0090-20250910"
)
);
Internals.findDOMNode = function (componentOrElement) {
@@ -21861,10 +21861,10 @@ Internals.Events = [
];
var internals$jscomp$inline_2363 = {
bundleType: 0,
version: "19.2.0-www-classic-a34c5dff-20250910",
version: "19.2.0-www-classic-835b0090-20250910",
rendererPackageName: "react-dom",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-www-classic-a34c5dff-20250910"
reconcilerVersion: "19.2.0-www-classic-835b0090-20250910"
};
enableSchedulingProfiler &&
((internals$jscomp$inline_2363.getLaneLabelMap = getLaneLabelMap),
@@ -22297,7 +22297,7 @@ exports.useFormState = function (action, initialState, permalink) {
exports.useFormStatus = function () {
return ReactSharedInternals.H.useHostTransitionStatus();
};
exports.version = "19.2.0-www-classic-a34c5dff-20250910";
exports.version = "19.2.0-www-classic-835b0090-20250910";
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
"function" ===
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
@@ -21630,14 +21630,14 @@ function getCrossOriginStringAs(as, input) {
}
var isomorphicReactPackageVersion$jscomp$inline_2351 = React.version;
if (
"19.2.0-www-modern-a34c5dff-20250910" !==
"19.2.0-www-modern-835b0090-20250910" !==
isomorphicReactPackageVersion$jscomp$inline_2351
)
throw Error(
formatProdErrorMessage(
527,
isomorphicReactPackageVersion$jscomp$inline_2351,
"19.2.0-www-modern-a34c5dff-20250910"
"19.2.0-www-modern-835b0090-20250910"
)
);
Internals.findDOMNode = function (componentOrElement) {
@@ -21655,10 +21655,10 @@ Internals.Events = [
];
var internals$jscomp$inline_2353 = {
bundleType: 0,
version: "19.2.0-www-modern-a34c5dff-20250910",
version: "19.2.0-www-modern-835b0090-20250910",
rendererPackageName: "react-dom",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-www-modern-a34c5dff-20250910"
reconcilerVersion: "19.2.0-www-modern-835b0090-20250910"
};
enableSchedulingProfiler &&
((internals$jscomp$inline_2353.getLaneLabelMap = getLaneLabelMap),
@@ -22091,7 +22091,7 @@ exports.useFormState = function (action, initialState, permalink) {
exports.useFormStatus = function () {
return ReactSharedInternals.H.useHostTransitionStatus();
};
exports.version = "19.2.0-www-modern-a34c5dff-20250910";
exports.version = "19.2.0-www-modern-835b0090-20250910";
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
"function" ===
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
@@ -10163,5 +10163,5 @@ __DEV__ &&
'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToReadableStream" which supports Suspense on the server'
);
};
exports.version = "19.2.0-www-classic-a34c5dff-20250910";
exports.version = "19.2.0-www-classic-835b0090-20250910";
})();
@@ -10092,5 +10092,5 @@ __DEV__ &&
'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToReadableStream" which supports Suspense on the server'
);
};
exports.version = "19.2.0-www-modern-a34c5dff-20250910";
exports.version = "19.2.0-www-modern-835b0090-20250910";
})();
@@ -6892,4 +6892,4 @@ exports.renderToString = function (children, options) {
'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToReadableStream" which supports Suspense on the server'
);
};
exports.version = "19.2.0-www-classic-a34c5dff-20250910";
exports.version = "19.2.0-www-classic-835b0090-20250910";
@@ -6825,4 +6825,4 @@ exports.renderToString = function (children, options) {
'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToReadableStream" which supports Suspense on the server'
);
};
exports.version = "19.2.0-www-modern-a34c5dff-20250910";
exports.version = "19.2.0-www-modern-835b0090-20250910";
@@ -32627,11 +32627,11 @@ __DEV__ &&
return_targetInst = null;
(function () {
var isomorphicReactPackageVersion = React.version;
if ("19.2.0-www-classic-a34c5dff-20250910" !== isomorphicReactPackageVersion)
if ("19.2.0-www-classic-835b0090-20250910" !== isomorphicReactPackageVersion)
throw Error(
'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' +
(isomorphicReactPackageVersion +
"\n - react-dom: 19.2.0-www-classic-a34c5dff-20250910\nLearn more: https://react.dev/warnings/version-mismatch")
"\n - react-dom: 19.2.0-www-classic-835b0090-20250910\nLearn more: https://react.dev/warnings/version-mismatch")
);
})();
("function" === typeof Map &&
@@ -32674,10 +32674,10 @@ __DEV__ &&
!(function () {
var internals = {
bundleType: 1,
version: "19.2.0-www-classic-a34c5dff-20250910",
version: "19.2.0-www-classic-835b0090-20250910",
rendererPackageName: "react-dom",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-www-classic-a34c5dff-20250910"
reconcilerVersion: "19.2.0-www-classic-835b0090-20250910"
};
internals.overrideHookState = overrideHookState;
internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
@@ -33455,5 +33455,5 @@ __DEV__ &&
exports.useFormStatus = function () {
return resolveDispatcher().useHostTransitionStatus();
};
exports.version = "19.2.0-www-classic-a34c5dff-20250910";
exports.version = "19.2.0-www-classic-835b0090-20250910";
})();
@@ -32412,11 +32412,11 @@ __DEV__ &&
return_targetInst = null;
(function () {
var isomorphicReactPackageVersion = React.version;
if ("19.2.0-www-modern-a34c5dff-20250910" !== isomorphicReactPackageVersion)
if ("19.2.0-www-modern-835b0090-20250910" !== isomorphicReactPackageVersion)
throw Error(
'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' +
(isomorphicReactPackageVersion +
"\n - react-dom: 19.2.0-www-modern-a34c5dff-20250910\nLearn more: https://react.dev/warnings/version-mismatch")
"\n - react-dom: 19.2.0-www-modern-835b0090-20250910\nLearn more: https://react.dev/warnings/version-mismatch")
);
})();
("function" === typeof Map &&
@@ -32459,10 +32459,10 @@ __DEV__ &&
!(function () {
var internals = {
bundleType: 1,
version: "19.2.0-www-modern-a34c5dff-20250910",
version: "19.2.0-www-modern-835b0090-20250910",
rendererPackageName: "react-dom",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-www-modern-a34c5dff-20250910"
reconcilerVersion: "19.2.0-www-modern-835b0090-20250910"
};
internals.overrideHookState = overrideHookState;
internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
@@ -33240,5 +33240,5 @@ __DEV__ &&
exports.useFormStatus = function () {
return resolveDispatcher().useHostTransitionStatus();
};
exports.version = "19.2.0-www-modern-a34c5dff-20250910";
exports.version = "19.2.0-www-modern-835b0090-20250910";
})();
@@ -20098,14 +20098,14 @@ function getCrossOriginStringAs(as, input) {
}
var isomorphicReactPackageVersion$jscomp$inline_2143 = React.version;
if (
"19.2.0-www-classic-a34c5dff-20250910" !==
"19.2.0-www-classic-835b0090-20250910" !==
isomorphicReactPackageVersion$jscomp$inline_2143
)
throw Error(
formatProdErrorMessage(
527,
isomorphicReactPackageVersion$jscomp$inline_2143,
"19.2.0-www-classic-a34c5dff-20250910"
"19.2.0-www-classic-835b0090-20250910"
)
);
Internals.findDOMNode = function (componentOrElement) {
@@ -20123,10 +20123,10 @@ Internals.Events = [
];
var internals$jscomp$inline_2780 = {
bundleType: 0,
version: "19.2.0-www-classic-a34c5dff-20250910",
version: "19.2.0-www-classic-835b0090-20250910",
rendererPackageName: "react-dom",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-www-classic-a34c5dff-20250910"
reconcilerVersion: "19.2.0-www-classic-835b0090-20250910"
};
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
var hook$jscomp$inline_2781 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -20706,4 +20706,4 @@ exports.useFormState = function (action, initialState, permalink) {
exports.useFormStatus = function () {
return ReactSharedInternals.H.useHostTransitionStatus();
};
exports.version = "19.2.0-www-classic-a34c5dff-20250910";
exports.version = "19.2.0-www-classic-835b0090-20250910";
@@ -19827,14 +19827,14 @@ function getCrossOriginStringAs(as, input) {
}
var isomorphicReactPackageVersion$jscomp$inline_2133 = React.version;
if (
"19.2.0-www-modern-a34c5dff-20250910" !==
"19.2.0-www-modern-835b0090-20250910" !==
isomorphicReactPackageVersion$jscomp$inline_2133
)
throw Error(
formatProdErrorMessage(
527,
isomorphicReactPackageVersion$jscomp$inline_2133,
"19.2.0-www-modern-a34c5dff-20250910"
"19.2.0-www-modern-835b0090-20250910"
)
);
Internals.findDOMNode = function (componentOrElement) {
@@ -19852,10 +19852,10 @@ Internals.Events = [
];
var internals$jscomp$inline_2762 = {
bundleType: 0,
version: "19.2.0-www-modern-a34c5dff-20250910",
version: "19.2.0-www-modern-835b0090-20250910",
rendererPackageName: "react-dom",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-www-modern-a34c5dff-20250910"
reconcilerVersion: "19.2.0-www-modern-835b0090-20250910"
};
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
var hook$jscomp$inline_2763 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -20435,4 +20435,4 @@ exports.useFormState = function (action, initialState, permalink) {
exports.useFormStatus = function () {
return ReactSharedInternals.H.useHostTransitionStatus();
};
exports.version = "19.2.0-www-modern-a34c5dff-20250910";
exports.version = "19.2.0-www-modern-835b0090-20250910";
@@ -22572,7 +22572,7 @@ __DEV__ &&
version: rendererVersion,
rendererPackageName: rendererPackageName,
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-www-classic-a34c5dff-20250910"
reconcilerVersion: "19.2.0-www-classic-835b0090-20250910"
};
null !== extraDevToolsConfig &&
(internals.rendererConfig = extraDevToolsConfig);
@@ -22352,7 +22352,7 @@ __DEV__ &&
version: rendererVersion,
rendererPackageName: rendererPackageName,
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-www-modern-a34c5dff-20250910"
reconcilerVersion: "19.2.0-www-modern-835b0090-20250910"
};
null !== extraDevToolsConfig &&
(internals.rendererConfig = extraDevToolsConfig);
@@ -14163,7 +14163,7 @@ module.exports = function ($$$config) {
version: rendererVersion,
rendererPackageName: rendererPackageName,
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-www-classic-a34c5dff-20250910"
reconcilerVersion: "19.2.0-www-classic-835b0090-20250910"
};
null !== extraDevToolsConfig &&
(internals.rendererConfig = extraDevToolsConfig);
@@ -13880,7 +13880,7 @@ module.exports = function ($$$config) {
version: rendererVersion,
rendererPackageName: rendererPackageName,
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-www-modern-a34c5dff-20250910"
reconcilerVersion: "19.2.0-www-modern-835b0090-20250910"
};
null !== extraDevToolsConfig &&
(internals.rendererConfig = extraDevToolsConfig);
@@ -15571,10 +15571,10 @@ __DEV__ &&
(function () {
var internals = {
bundleType: 1,
version: "19.2.0-www-classic-a34c5dff-20250910",
version: "19.2.0-www-classic-835b0090-20250910",
rendererPackageName: "react-test-renderer",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-www-classic-a34c5dff-20250910"
reconcilerVersion: "19.2.0-www-classic-835b0090-20250910"
};
internals.overrideHookState = overrideHookState;
internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
@@ -15709,5 +15709,5 @@ __DEV__ &&
exports.unstable_batchedUpdates = function (fn, a) {
return fn(a);
};
exports.version = "19.2.0-www-classic-a34c5dff-20250910";
exports.version = "19.2.0-www-classic-835b0090-20250910";
})();
@@ -15571,10 +15571,10 @@ __DEV__ &&
(function () {
var internals = {
bundleType: 1,
version: "19.2.0-www-modern-a34c5dff-20250910",
version: "19.2.0-www-modern-835b0090-20250910",
rendererPackageName: "react-test-renderer",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-www-modern-a34c5dff-20250910"
reconcilerVersion: "19.2.0-www-modern-835b0090-20250910"
};
internals.overrideHookState = overrideHookState;
internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
@@ -15709,5 +15709,5 @@ __DEV__ &&
exports.unstable_batchedUpdates = function (fn, a) {
return fn(a);
};
exports.version = "19.2.0-www-modern-a34c5dff-20250910";
exports.version = "19.2.0-www-modern-835b0090-20250910";
})();
+1 -1
View File
@@ -1 +1 @@
19.2.0-www-classic-a34c5dff-20250910
19.2.0-www-classic-835b0090-20250910
+1 -1
View File
@@ -1 +1 @@
19.2.0-www-modern-a34c5dff-20250910
19.2.0-www-modern-835b0090-20250910