From 401192f5a4afa5fdb45ca37f141a43e7b4806046 Mon Sep 17 00:00:00 2001 From: sebmarkbage Date: Wed, 6 Mar 2024 01:58:04 +0000 Subject: [PATCH] Move tail hydration mismatch back to hydration context (#28501) In #23176 we added a special case in completeWork for SuspenseBoundaries if they still have trailing children. However, that misses a case because it doesn't log a recoverable error for the hydration mismatch. So we get an error that we rerendered. I think this special case was done to avoid contexts getting out of sync. I don't know why we didn't just move where the pop happens though so that's what I did here and let the regular pass throw instead. Seems to be pass the tests. DiffTrain build for [c11b196ae3e2e3c5d143d9102b35a6b6fa97c849](https://github.com/facebook/react/commit/c11b196ae3e2e3c5d143d9102b35a6b6fa97c849) --- compiled/facebook-www/REVISION | 2 +- compiled/facebook-www/React-prod.classic.js | 2 +- .../facebook-www/React-profiling.classic.js | 2 +- compiled/facebook-www/ReactART-dev.classic.js | 11 +- compiled/facebook-www/ReactART-dev.modern.js | 11 +- .../facebook-www/ReactART-prod.classic.js | 14 ++- compiled/facebook-www/ReactART-prod.modern.js | 14 ++- compiled/facebook-www/ReactDOM-dev.classic.js | 26 ++--- compiled/facebook-www/ReactDOM-dev.modern.js | 26 ++--- .../facebook-www/ReactDOM-prod.classic.js | 108 ++++++++---------- compiled/facebook-www/ReactDOM-prod.modern.js | 108 ++++++++---------- .../ReactDOM-profiling.classic.js | 94 +++++++-------- .../facebook-www/ReactDOM-profiling.modern.js | 94 +++++++-------- .../ReactDOMTesting-dev.classic.js | 26 ++--- .../ReactDOMTesting-dev.modern.js | 26 ++--- .../ReactDOMTesting-prod.classic.js | 108 ++++++++---------- .../ReactDOMTesting-prod.modern.js | 108 ++++++++---------- .../ReactTestRenderer-dev.classic.js | 11 +- .../ReactTestRenderer-dev.modern.js | 11 +- 19 files changed, 357 insertions(+), 445 deletions(-) diff --git a/compiled/facebook-www/REVISION b/compiled/facebook-www/REVISION index d5a03ab8ad720..6cd642ee52088 100644 --- a/compiled/facebook-www/REVISION +++ b/compiled/facebook-www/REVISION @@ -1 +1 @@ -113ab9af08c46e8a548a397154f5c9dfeb96ab6a +c11b196ae3e2e3c5d143d9102b35a6b6fa97c849 diff --git a/compiled/facebook-www/React-prod.classic.js b/compiled/facebook-www/React-prod.classic.js index d08a393122d9d..4d61d38c4c2d6 100644 --- a/compiled/facebook-www/React-prod.classic.js +++ b/compiled/facebook-www/React-prod.classic.js @@ -633,4 +633,4 @@ exports.useSyncExternalStore = function ( exports.useTransition = function () { return ReactCurrentDispatcher.current.useTransition(); }; -exports.version = "18.3.0-www-classic-f938cefa"; +exports.version = "18.3.0-www-classic-5741f0db"; diff --git a/compiled/facebook-www/React-profiling.classic.js b/compiled/facebook-www/React-profiling.classic.js index cbf0275eab1ef..84dd82def95de 100644 --- a/compiled/facebook-www/React-profiling.classic.js +++ b/compiled/facebook-www/React-profiling.classic.js @@ -637,7 +637,7 @@ exports.useSyncExternalStore = function ( exports.useTransition = function () { return ReactCurrentDispatcher.current.useTransition(); }; -exports.version = "18.3.0-www-classic-c1c1744a"; +exports.version = "18.3.0-www-classic-6ddd4df1"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/compiled/facebook-www/ReactART-dev.classic.js b/compiled/facebook-www/ReactART-dev.classic.js index 245c3c119cd70..bf295efa85579 100644 --- a/compiled/facebook-www/ReactART-dev.classic.js +++ b/compiled/facebook-www/ReactART-dev.classic.js @@ -66,7 +66,7 @@ if (__DEV__) { return self; } - var ReactVersion = "18.3.0-www-classic-20a604bc"; + var ReactVersion = "18.3.0-www-classic-14143ab0"; var LegacyRoot = 0; var ConcurrentRoot = 1; @@ -19974,7 +19974,6 @@ if (__DEV__) { } case SuspenseComponent: { - popSuspenseHandler(workInProgress); var nextState = workInProgress.memoizedState; // Special path for dehydrated boundaries. We may eventually move this // to its own fiber type so that we can add other kinds of hydration // boundaries that aren't associated with a Suspense tree. In anticipation @@ -19995,17 +19994,21 @@ if (__DEV__) { if (!fallthroughToNormalSuspensePath) { if (workInProgress.flags & ForceClientRender) { - // Special case. There were remaining unhydrated nodes. We treat + popSuspenseHandler(workInProgress); // Special case. There were remaining unhydrated nodes. We treat // this as a mismatch. Revert to client rendering. + return workInProgress; } else { - // Did not finish hydrating, either because this is the initial + popSuspenseHandler(workInProgress); // Did not finish hydrating, either because this is the initial // render or because something suspended. + return null; } } // Continue with the normal Suspense path. } + popSuspenseHandler(workInProgress); + if ((workInProgress.flags & DidCapture) !== NoFlags$1) { // Something suspended. Re-render with the fallback children. workInProgress.lanes = renderLanes; // Do not reset the effect list. diff --git a/compiled/facebook-www/ReactART-dev.modern.js b/compiled/facebook-www/ReactART-dev.modern.js index f0d61565bda0e..3c397f39db2f3 100644 --- a/compiled/facebook-www/ReactART-dev.modern.js +++ b/compiled/facebook-www/ReactART-dev.modern.js @@ -66,7 +66,7 @@ if (__DEV__) { return self; } - var ReactVersion = "18.3.0-www-modern-c0bbf979"; + var ReactVersion = "18.3.0-www-modern-0883d4be"; var LegacyRoot = 0; var ConcurrentRoot = 1; @@ -19655,7 +19655,6 @@ if (__DEV__) { } case SuspenseComponent: { - popSuspenseHandler(workInProgress); var nextState = workInProgress.memoizedState; // Special path for dehydrated boundaries. We may eventually move this // to its own fiber type so that we can add other kinds of hydration // boundaries that aren't associated with a Suspense tree. In anticipation @@ -19676,17 +19675,21 @@ if (__DEV__) { if (!fallthroughToNormalSuspensePath) { if (workInProgress.flags & ForceClientRender) { - // Special case. There were remaining unhydrated nodes. We treat + popSuspenseHandler(workInProgress); // Special case. There were remaining unhydrated nodes. We treat // this as a mismatch. Revert to client rendering. + return workInProgress; } else { - // Did not finish hydrating, either because this is the initial + popSuspenseHandler(workInProgress); // Did not finish hydrating, either because this is the initial // render or because something suspended. + return null; } } // Continue with the normal Suspense path. } + popSuspenseHandler(workInProgress); + if ((workInProgress.flags & DidCapture) !== NoFlags$1) { // Something suspended. Re-render with the fallback children. workInProgress.lanes = renderLanes; // Do not reset the effect list. diff --git a/compiled/facebook-www/ReactART-prod.classic.js b/compiled/facebook-www/ReactART-prod.classic.js index 00794bfa8135b..d76be3b4a164f 100644 --- a/compiled/facebook-www/ReactART-prod.classic.js +++ b/compiled/facebook-www/ReactART-prod.classic.js @@ -6253,7 +6253,6 @@ function completeWork(current, workInProgress, renderLanes) { bubbleProperties(workInProgress); return null; case 13: - popSuspenseHandler(workInProgress); newProps = workInProgress.memoizedState; if ( null === current || @@ -6274,9 +6273,14 @@ function completeWork(current, workInProgress, renderLanes) { null !== hydrationErrors && (queueRecoverableErrors(hydrationErrors), (hydrationErrors = null)), (instance = !0); - if (!instance) - return workInProgress.flags & 256 ? workInProgress : null; + if (!instance) { + if (workInProgress.flags & 256) + return popSuspenseHandler(workInProgress), workInProgress; + popSuspenseHandler(workInProgress); + return null; + } } + popSuspenseHandler(workInProgress); if (0 !== (workInProgress.flags & 128)) return (workInProgress.lanes = renderLanes), workInProgress; renderLanes = null !== newProps; @@ -10596,7 +10600,7 @@ var slice = Array.prototype.slice, return null; }, bundleType: 0, - version: "18.3.0-www-classic-0f4883c5", + version: "18.3.0-www-classic-cad557f7", rendererPackageName: "react-art" }; var internals$jscomp$inline_1320 = { @@ -10627,7 +10631,7 @@ var internals$jscomp$inline_1320 = { scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null, - reconcilerVersion: "18.3.0-www-classic-0f4883c5" + reconcilerVersion: "18.3.0-www-classic-cad557f7" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_1321 = __REACT_DEVTOOLS_GLOBAL_HOOK__; diff --git a/compiled/facebook-www/ReactART-prod.modern.js b/compiled/facebook-www/ReactART-prod.modern.js index 0b24b36db3115..d1887523a1782 100644 --- a/compiled/facebook-www/ReactART-prod.modern.js +++ b/compiled/facebook-www/ReactART-prod.modern.js @@ -5992,7 +5992,6 @@ function completeWork(current, workInProgress, renderLanes) { bubbleProperties(workInProgress); return null; case 13: - popSuspenseHandler(workInProgress); newProps = workInProgress.memoizedState; if ( null === current || @@ -6013,9 +6012,14 @@ function completeWork(current, workInProgress, renderLanes) { null !== hydrationErrors && (queueRecoverableErrors(hydrationErrors), (hydrationErrors = null)), (instance = !0); - if (!instance) - return workInProgress.flags & 256 ? workInProgress : null; + if (!instance) { + if (workInProgress.flags & 256) + return popSuspenseHandler(workInProgress), workInProgress; + popSuspenseHandler(workInProgress); + return null; + } } + popSuspenseHandler(workInProgress); if (0 !== (workInProgress.flags & 128)) return (workInProgress.lanes = renderLanes), workInProgress; renderLanes = null !== newProps; @@ -10251,7 +10255,7 @@ var slice = Array.prototype.slice, return null; }, bundleType: 0, - version: "18.3.0-www-modern-1b51d894", + version: "18.3.0-www-modern-5c2d3ed7", rendererPackageName: "react-art" }; var internals$jscomp$inline_1300 = { @@ -10282,7 +10286,7 @@ var internals$jscomp$inline_1300 = { scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null, - reconcilerVersion: "18.3.0-www-modern-1b51d894" + reconcilerVersion: "18.3.0-www-modern-5c2d3ed7" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_1301 = __REACT_DEVTOOLS_GLOBAL_HOOK__; diff --git a/compiled/facebook-www/ReactDOM-dev.classic.js b/compiled/facebook-www/ReactDOM-dev.classic.js index 37a7a5efb6847..cf712adcd393c 100644 --- a/compiled/facebook-www/ReactDOM-dev.classic.js +++ b/compiled/facebook-www/ReactDOM-dev.classic.js @@ -8941,10 +8941,6 @@ if (__DEV__) { return true; } - function hasUnhydratedTailNodes() { - return isHydrating && nextHydratableInstance !== null; - } - function warnIfUnhydratedTailNodes(fiber) { var nextInstance = nextHydratableInstance; @@ -24958,17 +24954,6 @@ if (__DEV__) { workInProgress, nextState ) { - if ( - hasUnhydratedTailNodes() && - (workInProgress.mode & ConcurrentMode) !== NoMode && - (workInProgress.flags & DidCapture) === NoFlags$1 - ) { - warnIfUnhydratedTailNodes(workInProgress); - resetHydrationState(); - workInProgress.flags |= ForceClientRender | DidCapture; - return false; - } - var wasHydrated = popHydrationState(workInProgress); if (nextState !== null && nextState.dehydrated !== null) { @@ -25405,7 +25390,6 @@ if (__DEV__) { } case SuspenseComponent: { - popSuspenseHandler(workInProgress); var nextState = workInProgress.memoizedState; // Special path for dehydrated boundaries. We may eventually move this // to its own fiber type so that we can add other kinds of hydration // boundaries that aren't associated with a Suspense tree. In anticipation @@ -25426,17 +25410,21 @@ if (__DEV__) { if (!fallthroughToNormalSuspensePath) { if (workInProgress.flags & ForceClientRender) { - // Special case. There were remaining unhydrated nodes. We treat + popSuspenseHandler(workInProgress); // Special case. There were remaining unhydrated nodes. We treat // this as a mismatch. Revert to client rendering. + return workInProgress; } else { - // Did not finish hydrating, either because this is the initial + popSuspenseHandler(workInProgress); // Did not finish hydrating, either because this is the initial // render or because something suspended. + return null; } } // Continue with the normal Suspense path. } + popSuspenseHandler(workInProgress); + if ((workInProgress.flags & DidCapture) !== NoFlags$1) { // Something suspended. Re-render with the fallback children. workInProgress.lanes = renderLanes; // Do not reset the effect list. @@ -36046,7 +36034,7 @@ if (__DEV__) { return root; } - var ReactVersion = "18.3.0-www-classic-e13660d6"; + var ReactVersion = "18.3.0-www-classic-78291ba2"; function createPortal$1( children, diff --git a/compiled/facebook-www/ReactDOM-dev.modern.js b/compiled/facebook-www/ReactDOM-dev.modern.js index a89385b064312..d7ec607dd6d31 100644 --- a/compiled/facebook-www/ReactDOM-dev.modern.js +++ b/compiled/facebook-www/ReactDOM-dev.modern.js @@ -8903,10 +8903,6 @@ if (__DEV__) { return true; } - function hasUnhydratedTailNodes() { - return isHydrating && nextHydratableInstance !== null; - } - function warnIfUnhydratedTailNodes(fiber) { var nextInstance = nextHydratableInstance; @@ -24843,17 +24839,6 @@ if (__DEV__) { workInProgress, nextState ) { - if ( - hasUnhydratedTailNodes() && - (workInProgress.mode & ConcurrentMode) !== NoMode && - (workInProgress.flags & DidCapture) === NoFlags$1 - ) { - warnIfUnhydratedTailNodes(workInProgress); - resetHydrationState(); - workInProgress.flags |= ForceClientRender | DidCapture; - return false; - } - var wasHydrated = popHydrationState(workInProgress); if (nextState !== null && nextState.dehydrated !== null) { @@ -25283,7 +25268,6 @@ if (__DEV__) { } case SuspenseComponent: { - popSuspenseHandler(workInProgress); var nextState = workInProgress.memoizedState; // Special path for dehydrated boundaries. We may eventually move this // to its own fiber type so that we can add other kinds of hydration // boundaries that aren't associated with a Suspense tree. In anticipation @@ -25304,17 +25288,21 @@ if (__DEV__) { if (!fallthroughToNormalSuspensePath) { if (workInProgress.flags & ForceClientRender) { - // Special case. There were remaining unhydrated nodes. We treat + popSuspenseHandler(workInProgress); // Special case. There were remaining unhydrated nodes. We treat // this as a mismatch. Revert to client rendering. + return workInProgress; } else { - // Did not finish hydrating, either because this is the initial + popSuspenseHandler(workInProgress); // Did not finish hydrating, either because this is the initial // render or because something suspended. + return null; } } // Continue with the normal Suspense path. } + popSuspenseHandler(workInProgress); + if ((workInProgress.flags & DidCapture) !== NoFlags$1) { // Something suspended. Re-render with the fallback children. workInProgress.lanes = renderLanes; // Do not reset the effect list. @@ -35893,7 +35881,7 @@ if (__DEV__) { return root; } - var ReactVersion = "18.3.0-www-modern-06a38f42"; + var ReactVersion = "18.3.0-www-modern-8a38254f"; function createPortal$1( children, diff --git a/compiled/facebook-www/ReactDOM-prod.classic.js b/compiled/facebook-www/ReactDOM-prod.classic.js index da580ad70561d..1279c5bd68092 100644 --- a/compiled/facebook-www/ReactDOM-prod.classic.js +++ b/compiled/facebook-www/ReactDOM-prod.classic.js @@ -1816,9 +1816,11 @@ function popHydrationState(fiber) { } JSCompiler_temp && (shouldClear = !0); if (shouldClear && (shouldClear = nextHydratableInstance)) - if (shouldClientRenderOnMismatch(fiber)) - warnIfUnhydratedTailNodes(), throwOnHydrationMismatch(); - else + if (shouldClientRenderOnMismatch(fiber)) { + for (shouldClear = nextHydratableInstance; shouldClear; ) + shouldClear = getNextHydratableSibling(shouldClear); + throwOnHydrationMismatch(); + } else for (; shouldClear; ) deleteHydratableInstance(fiber, shouldClear), (shouldClear = getNextHydratableSibling(shouldClear)); @@ -1852,10 +1854,6 @@ function popHydrationState(fiber) { : null; return !0; } -function warnIfUnhydratedTailNodes() { - for (var nextInstance = nextHydratableInstance; nextInstance; ) - nextInstance = getNextHydratableSibling(nextInstance); -} function resetHydrationState() { nextHydratableInstance = hydrationParentFiber = null; isHydrating = !1; @@ -7442,27 +7440,14 @@ function completeWork(current, workInProgress, renderLanes) { bubbleProperties(workInProgress); return null; case 13: - popSuspenseHandler(workInProgress); newProps = workInProgress.memoizedState; if ( null === current || (null !== current.memoizedState && null !== current.memoizedState.dehydrated) ) { - if ( - isHydrating && - null !== nextHydratableInstance && - 0 !== (workInProgress.mode & 1) && - 0 === (workInProgress.flags & 128) - ) - warnIfUnhydratedTailNodes(), - resetHydrationState(), - (workInProgress.flags |= 384), - (currentResource = !1); - else if ( - ((currentResource = popHydrationState(workInProgress)), - null !== newProps && null !== newProps.dehydrated) - ) { + currentResource = popHydrationState(workInProgress); + if (null !== newProps && null !== newProps.dehydrated) { if (null === current) { if (!currentResource) throw Error(formatProdErrorMessage(318)); currentResource = workInProgress.memoizedState; @@ -7481,9 +7466,14 @@ function completeWork(current, workInProgress, renderLanes) { null !== hydrationErrors && (queueRecoverableErrors(hydrationErrors), (hydrationErrors = null)), (currentResource = !0); - if (!currentResource) - return workInProgress.flags & 256 ? workInProgress : null; + if (!currentResource) { + if (workInProgress.flags & 256) + return popSuspenseHandler(workInProgress), workInProgress; + popSuspenseHandler(workInProgress); + return null; + } } + popSuspenseHandler(workInProgress); if (0 !== (workInProgress.flags & 128)) return (workInProgress.lanes = renderLanes), workInProgress; renderLanes = null !== newProps; @@ -13135,14 +13125,14 @@ var isInputEventSupported = !1; if (canUseDOM) { var JSCompiler_inline_result$jscomp$352; if (canUseDOM) { - var isSupported$jscomp$inline_1551 = "oninput" in document; - if (!isSupported$jscomp$inline_1551) { - var element$jscomp$inline_1552 = document.createElement("div"); - element$jscomp$inline_1552.setAttribute("oninput", "return;"); - isSupported$jscomp$inline_1551 = - "function" === typeof element$jscomp$inline_1552.oninput; + var isSupported$jscomp$inline_1554 = "oninput" in document; + if (!isSupported$jscomp$inline_1554) { + var element$jscomp$inline_1555 = document.createElement("div"); + element$jscomp$inline_1555.setAttribute("oninput", "return;"); + isSupported$jscomp$inline_1554 = + "function" === typeof element$jscomp$inline_1555.oninput; } - JSCompiler_inline_result$jscomp$352 = isSupported$jscomp$inline_1551; + JSCompiler_inline_result$jscomp$352 = isSupported$jscomp$inline_1554; } else JSCompiler_inline_result$jscomp$352 = !1; isInputEventSupported = JSCompiler_inline_result$jscomp$352 && @@ -13517,20 +13507,20 @@ function extractEvents$1( } } for ( - var i$jscomp$inline_1592 = 0; - i$jscomp$inline_1592 < simpleEventPluginEvents.length; - i$jscomp$inline_1592++ + var i$jscomp$inline_1595 = 0; + i$jscomp$inline_1595 < simpleEventPluginEvents.length; + i$jscomp$inline_1595++ ) { - var eventName$jscomp$inline_1593 = - simpleEventPluginEvents[i$jscomp$inline_1592], - domEventName$jscomp$inline_1594 = - eventName$jscomp$inline_1593.toLowerCase(), - capitalizedEvent$jscomp$inline_1595 = - eventName$jscomp$inline_1593[0].toUpperCase() + - eventName$jscomp$inline_1593.slice(1); + var eventName$jscomp$inline_1596 = + simpleEventPluginEvents[i$jscomp$inline_1595], + domEventName$jscomp$inline_1597 = + eventName$jscomp$inline_1596.toLowerCase(), + capitalizedEvent$jscomp$inline_1598 = + eventName$jscomp$inline_1596[0].toUpperCase() + + eventName$jscomp$inline_1596.slice(1); registerSimpleEvent( - domEventName$jscomp$inline_1594, - "on" + capitalizedEvent$jscomp$inline_1595 + domEventName$jscomp$inline_1597, + "on" + capitalizedEvent$jscomp$inline_1598 ); } registerSimpleEvent(ANIMATION_END, "onAnimationEnd"); @@ -17244,17 +17234,17 @@ Internals.Events = [ restoreStateIfNeeded, batchedUpdates$1 ]; -var devToolsConfig$jscomp$inline_1819 = { +var devToolsConfig$jscomp$inline_1822 = { findFiberByHostInstance: getClosestInstanceFromNode, bundleType: 0, - version: "18.3.0-www-classic-d9a421c8", + version: "18.3.0-www-classic-513335d7", rendererPackageName: "react-dom" }; -var internals$jscomp$inline_2178 = { - bundleType: devToolsConfig$jscomp$inline_1819.bundleType, - version: devToolsConfig$jscomp$inline_1819.version, - rendererPackageName: devToolsConfig$jscomp$inline_1819.rendererPackageName, - rendererConfig: devToolsConfig$jscomp$inline_1819.rendererConfig, +var internals$jscomp$inline_2181 = { + bundleType: devToolsConfig$jscomp$inline_1822.bundleType, + version: devToolsConfig$jscomp$inline_1822.version, + rendererPackageName: devToolsConfig$jscomp$inline_1822.rendererPackageName, + rendererConfig: devToolsConfig$jscomp$inline_1822.rendererConfig, overrideHookState: null, overrideHookStateDeletePath: null, overrideHookStateRenamePath: null, @@ -17270,26 +17260,26 @@ var internals$jscomp$inline_2178 = { return null === fiber ? null : fiber.stateNode; }, findFiberByHostInstance: - devToolsConfig$jscomp$inline_1819.findFiberByHostInstance || + devToolsConfig$jscomp$inline_1822.findFiberByHostInstance || emptyFindFiberByHostInstance, findHostInstancesForRefresh: null, scheduleRefresh: null, scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null, - reconcilerVersion: "18.3.0-www-classic-d9a421c8" + reconcilerVersion: "18.3.0-www-classic-513335d7" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { - var hook$jscomp$inline_2179 = __REACT_DEVTOOLS_GLOBAL_HOOK__; + var hook$jscomp$inline_2182 = __REACT_DEVTOOLS_GLOBAL_HOOK__; if ( - !hook$jscomp$inline_2179.isDisabled && - hook$jscomp$inline_2179.supportsFiber + !hook$jscomp$inline_2182.isDisabled && + hook$jscomp$inline_2182.supportsFiber ) try { - (rendererID = hook$jscomp$inline_2179.inject( - internals$jscomp$inline_2178 + (rendererID = hook$jscomp$inline_2182.inject( + internals$jscomp$inline_2181 )), - (injectedHook = hook$jscomp$inline_2179); + (injectedHook = hook$jscomp$inline_2182); } catch (err) {} } assign(Internals, { @@ -17608,4 +17598,4 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactCurrentDispatcher$2.current.useHostTransitionStatus(); }; -exports.version = "18.3.0-www-classic-d9a421c8"; +exports.version = "18.3.0-www-classic-513335d7"; diff --git a/compiled/facebook-www/ReactDOM-prod.modern.js b/compiled/facebook-www/ReactDOM-prod.modern.js index 5bd3c5285e6e0..19f7333955093 100644 --- a/compiled/facebook-www/ReactDOM-prod.modern.js +++ b/compiled/facebook-www/ReactDOM-prod.modern.js @@ -1710,9 +1710,11 @@ function popHydrationState(fiber) { } JSCompiler_temp && (shouldClear = !0); if (shouldClear && (shouldClear = nextHydratableInstance)) - if (shouldClientRenderOnMismatch(fiber)) - warnIfUnhydratedTailNodes(), throwOnHydrationMismatch(); - else + if (shouldClientRenderOnMismatch(fiber)) { + for (shouldClear = nextHydratableInstance; shouldClear; ) + shouldClear = getNextHydratableSibling(shouldClear); + throwOnHydrationMismatch(); + } else for (; shouldClear; ) deleteHydratableInstance(fiber, shouldClear), (shouldClear = getNextHydratableSibling(shouldClear)); @@ -1746,10 +1748,6 @@ function popHydrationState(fiber) { : null; return !0; } -function warnIfUnhydratedTailNodes() { - for (var nextInstance = nextHydratableInstance; nextInstance; ) - nextInstance = getNextHydratableSibling(nextInstance); -} function resetHydrationState() { nextHydratableInstance = hydrationParentFiber = null; isHydrating = !1; @@ -7279,27 +7277,14 @@ function completeWork(current, workInProgress, renderLanes) { bubbleProperties(workInProgress); return null; case 13: - popSuspenseHandler(workInProgress); newProps = workInProgress.memoizedState; if ( null === current || (null !== current.memoizedState && null !== current.memoizedState.dehydrated) ) { - if ( - isHydrating && - null !== nextHydratableInstance && - 0 !== (workInProgress.mode & 1) && - 0 === (workInProgress.flags & 128) - ) - warnIfUnhydratedTailNodes(), - resetHydrationState(), - (workInProgress.flags |= 384), - (currentResource = !1); - else if ( - ((currentResource = popHydrationState(workInProgress)), - null !== newProps && null !== newProps.dehydrated) - ) { + currentResource = popHydrationState(workInProgress); + if (null !== newProps && null !== newProps.dehydrated) { if (null === current) { if (!currentResource) throw Error(formatProdErrorMessage(318)); currentResource = workInProgress.memoizedState; @@ -7318,9 +7303,14 @@ function completeWork(current, workInProgress, renderLanes) { null !== hydrationErrors && (queueRecoverableErrors(hydrationErrors), (hydrationErrors = null)), (currentResource = !0); - if (!currentResource) - return workInProgress.flags & 256 ? workInProgress : null; + if (!currentResource) { + if (workInProgress.flags & 256) + return popSuspenseHandler(workInProgress), workInProgress; + popSuspenseHandler(workInProgress); + return null; + } } + popSuspenseHandler(workInProgress); if (0 !== (workInProgress.flags & 128)) return (workInProgress.lanes = renderLanes), workInProgress; renderLanes = null !== newProps; @@ -13502,14 +13492,14 @@ var isInputEventSupported = !1; if (canUseDOM) { var JSCompiler_inline_result$jscomp$350; if (canUseDOM) { - var isSupported$jscomp$inline_1551 = "oninput" in document; - if (!isSupported$jscomp$inline_1551) { - var element$jscomp$inline_1552 = document.createElement("div"); - element$jscomp$inline_1552.setAttribute("oninput", "return;"); - isSupported$jscomp$inline_1551 = - "function" === typeof element$jscomp$inline_1552.oninput; + var isSupported$jscomp$inline_1554 = "oninput" in document; + if (!isSupported$jscomp$inline_1554) { + var element$jscomp$inline_1555 = document.createElement("div"); + element$jscomp$inline_1555.setAttribute("oninput", "return;"); + isSupported$jscomp$inline_1554 = + "function" === typeof element$jscomp$inline_1555.oninput; } - JSCompiler_inline_result$jscomp$350 = isSupported$jscomp$inline_1551; + JSCompiler_inline_result$jscomp$350 = isSupported$jscomp$inline_1554; } else JSCompiler_inline_result$jscomp$350 = !1; isInputEventSupported = JSCompiler_inline_result$jscomp$350 && @@ -13821,20 +13811,20 @@ function registerSimpleEvent(domEventName, reactName) { registerTwoPhaseEvent(reactName, [domEventName]); } for ( - var i$jscomp$inline_1592 = 0; - i$jscomp$inline_1592 < simpleEventPluginEvents.length; - i$jscomp$inline_1592++ + var i$jscomp$inline_1595 = 0; + i$jscomp$inline_1595 < simpleEventPluginEvents.length; + i$jscomp$inline_1595++ ) { - var eventName$jscomp$inline_1593 = - simpleEventPluginEvents[i$jscomp$inline_1592], - domEventName$jscomp$inline_1594 = - eventName$jscomp$inline_1593.toLowerCase(), - capitalizedEvent$jscomp$inline_1595 = - eventName$jscomp$inline_1593[0].toUpperCase() + - eventName$jscomp$inline_1593.slice(1); + var eventName$jscomp$inline_1596 = + simpleEventPluginEvents[i$jscomp$inline_1595], + domEventName$jscomp$inline_1597 = + eventName$jscomp$inline_1596.toLowerCase(), + capitalizedEvent$jscomp$inline_1598 = + eventName$jscomp$inline_1596[0].toUpperCase() + + eventName$jscomp$inline_1596.slice(1); registerSimpleEvent( - domEventName$jscomp$inline_1594, - "on" + capitalizedEvent$jscomp$inline_1595 + domEventName$jscomp$inline_1597, + "on" + capitalizedEvent$jscomp$inline_1598 ); } registerSimpleEvent(ANIMATION_END, "onAnimationEnd"); @@ -16760,17 +16750,17 @@ Internals.Events = [ restoreStateIfNeeded, batchedUpdates$1 ]; -var devToolsConfig$jscomp$inline_1778 = { +var devToolsConfig$jscomp$inline_1781 = { findFiberByHostInstance: getClosestInstanceFromNode, bundleType: 0, - version: "18.3.0-www-modern-7bb4d6b0", + version: "18.3.0-www-modern-f13b626a", rendererPackageName: "react-dom" }; -var internals$jscomp$inline_2142 = { - bundleType: devToolsConfig$jscomp$inline_1778.bundleType, - version: devToolsConfig$jscomp$inline_1778.version, - rendererPackageName: devToolsConfig$jscomp$inline_1778.rendererPackageName, - rendererConfig: devToolsConfig$jscomp$inline_1778.rendererConfig, +var internals$jscomp$inline_2145 = { + bundleType: devToolsConfig$jscomp$inline_1781.bundleType, + version: devToolsConfig$jscomp$inline_1781.version, + rendererPackageName: devToolsConfig$jscomp$inline_1781.rendererPackageName, + rendererConfig: devToolsConfig$jscomp$inline_1781.rendererConfig, overrideHookState: null, overrideHookStateDeletePath: null, overrideHookStateRenamePath: null, @@ -16787,26 +16777,26 @@ var internals$jscomp$inline_2142 = { return null === fiber ? null : fiber.stateNode; }, findFiberByHostInstance: - devToolsConfig$jscomp$inline_1778.findFiberByHostInstance || + devToolsConfig$jscomp$inline_1781.findFiberByHostInstance || emptyFindFiberByHostInstance, findHostInstancesForRefresh: null, scheduleRefresh: null, scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null, - reconcilerVersion: "18.3.0-www-modern-7bb4d6b0" + reconcilerVersion: "18.3.0-www-modern-f13b626a" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { - var hook$jscomp$inline_2143 = __REACT_DEVTOOLS_GLOBAL_HOOK__; + var hook$jscomp$inline_2146 = __REACT_DEVTOOLS_GLOBAL_HOOK__; if ( - !hook$jscomp$inline_2143.isDisabled && - hook$jscomp$inline_2143.supportsFiber + !hook$jscomp$inline_2146.isDisabled && + hook$jscomp$inline_2146.supportsFiber ) try { - (rendererID = hook$jscomp$inline_2143.inject( - internals$jscomp$inline_2142 + (rendererID = hook$jscomp$inline_2146.inject( + internals$jscomp$inline_2145 )), - (injectedHook = hook$jscomp$inline_2143); + (injectedHook = hook$jscomp$inline_2146); } catch (err) {} } exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = Internals; @@ -17053,4 +17043,4 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactCurrentDispatcher$2.current.useHostTransitionStatus(); }; -exports.version = "18.3.0-www-modern-7bb4d6b0"; +exports.version = "18.3.0-www-modern-f13b626a"; diff --git a/compiled/facebook-www/ReactDOM-profiling.classic.js b/compiled/facebook-www/ReactDOM-profiling.classic.js index 9d08c897684c9..ba1ed89c678cb 100644 --- a/compiled/facebook-www/ReactDOM-profiling.classic.js +++ b/compiled/facebook-www/ReactDOM-profiling.classic.js @@ -1954,9 +1954,11 @@ function popHydrationState(fiber) { } JSCompiler_temp && (shouldClear = !0); if (shouldClear && (shouldClear = nextHydratableInstance)) - if (shouldClientRenderOnMismatch(fiber)) - warnIfUnhydratedTailNodes(), throwOnHydrationMismatch(); - else + if (shouldClientRenderOnMismatch(fiber)) { + for (shouldClear = nextHydratableInstance; shouldClear; ) + shouldClear = getNextHydratableSibling(shouldClear); + throwOnHydrationMismatch(); + } else for (; shouldClear; ) deleteHydratableInstance(fiber, shouldClear), (shouldClear = getNextHydratableSibling(shouldClear)); @@ -1990,10 +1992,6 @@ function popHydrationState(fiber) { : null; return !0; } -function warnIfUnhydratedTailNodes() { - for (var nextInstance = nextHydratableInstance; nextInstance; ) - nextInstance = getNextHydratableSibling(nextInstance); -} function resetHydrationState() { nextHydratableInstance = hydrationParentFiber = null; isHydrating = !1; @@ -7722,27 +7720,14 @@ function completeWork(current, workInProgress, renderLanes) { bubbleProperties(workInProgress); return null; case 13: - popSuspenseHandler(workInProgress); newProps = workInProgress.memoizedState; if ( null === current || (null !== current.memoizedState && null !== current.memoizedState.dehydrated) ) { - if ( - isHydrating && - null !== nextHydratableInstance && - 0 !== (workInProgress.mode & 1) && - 0 === (workInProgress.flags & 128) - ) - warnIfUnhydratedTailNodes(), - resetHydrationState(), - (workInProgress.flags |= 384), - (currentResource = !1); - else if ( - ((currentResource = popHydrationState(workInProgress)), - null !== newProps && null !== newProps.dehydrated) - ) { + currentResource = popHydrationState(workInProgress); + if (null !== newProps && null !== newProps.dehydrated) { if (null === current) { if (!currentResource) throw Error(formatProdErrorMessage(318)); currentResource = workInProgress.memoizedState; @@ -7774,9 +7759,14 @@ function completeWork(current, workInProgress, renderLanes) { null !== hydrationErrors && (queueRecoverableErrors(hydrationErrors), (hydrationErrors = null)), (currentResource = !0); - if (!currentResource) - return workInProgress.flags & 256 ? workInProgress : null; + if (!currentResource) { + if (workInProgress.flags & 256) + return popSuspenseHandler(workInProgress), workInProgress; + popSuspenseHandler(workInProgress); + return null; + } } + popSuspenseHandler(workInProgress); if (0 !== (workInProgress.flags & 128)) return ( (workInProgress.lanes = renderLanes), @@ -13904,14 +13894,14 @@ var isInputEventSupported = !1; if (canUseDOM) { var JSCompiler_inline_result$jscomp$373; if (canUseDOM) { - var isSupported$jscomp$inline_1636 = "oninput" in document; - if (!isSupported$jscomp$inline_1636) { - var element$jscomp$inline_1637 = document.createElement("div"); - element$jscomp$inline_1637.setAttribute("oninput", "return;"); - isSupported$jscomp$inline_1636 = - "function" === typeof element$jscomp$inline_1637.oninput; + var isSupported$jscomp$inline_1639 = "oninput" in document; + if (!isSupported$jscomp$inline_1639) { + var element$jscomp$inline_1640 = document.createElement("div"); + element$jscomp$inline_1640.setAttribute("oninput", "return;"); + isSupported$jscomp$inline_1639 = + "function" === typeof element$jscomp$inline_1640.oninput; } - JSCompiler_inline_result$jscomp$373 = isSupported$jscomp$inline_1636; + JSCompiler_inline_result$jscomp$373 = isSupported$jscomp$inline_1639; } else JSCompiler_inline_result$jscomp$373 = !1; isInputEventSupported = JSCompiler_inline_result$jscomp$373 && @@ -14286,20 +14276,20 @@ function extractEvents$1( } } for ( - var i$jscomp$inline_1677 = 0; - i$jscomp$inline_1677 < simpleEventPluginEvents.length; - i$jscomp$inline_1677++ + var i$jscomp$inline_1680 = 0; + i$jscomp$inline_1680 < simpleEventPluginEvents.length; + i$jscomp$inline_1680++ ) { - var eventName$jscomp$inline_1678 = - simpleEventPluginEvents[i$jscomp$inline_1677], - domEventName$jscomp$inline_1679 = - eventName$jscomp$inline_1678.toLowerCase(), - capitalizedEvent$jscomp$inline_1680 = - eventName$jscomp$inline_1678[0].toUpperCase() + - eventName$jscomp$inline_1678.slice(1); + var eventName$jscomp$inline_1681 = + simpleEventPluginEvents[i$jscomp$inline_1680], + domEventName$jscomp$inline_1682 = + eventName$jscomp$inline_1681.toLowerCase(), + capitalizedEvent$jscomp$inline_1683 = + eventName$jscomp$inline_1681[0].toUpperCase() + + eventName$jscomp$inline_1681.slice(1); registerSimpleEvent( - domEventName$jscomp$inline_1679, - "on" + capitalizedEvent$jscomp$inline_1680 + domEventName$jscomp$inline_1682, + "on" + capitalizedEvent$jscomp$inline_1683 ); } registerSimpleEvent(ANIMATION_END, "onAnimationEnd"); @@ -18013,10 +18003,10 @@ Internals.Events = [ restoreStateIfNeeded, batchedUpdates$1 ]; -var devToolsConfig$jscomp$inline_1904 = { +var devToolsConfig$jscomp$inline_1907 = { findFiberByHostInstance: getClosestInstanceFromNode, bundleType: 0, - version: "18.3.0-www-classic-86500a4d", + version: "18.3.0-www-classic-a5679a0f", rendererPackageName: "react-dom" }; (function (internals) { @@ -18034,10 +18024,10 @@ var devToolsConfig$jscomp$inline_1904 = { } catch (err) {} return hook.checkDCE ? !0 : !1; })({ - bundleType: devToolsConfig$jscomp$inline_1904.bundleType, - version: devToolsConfig$jscomp$inline_1904.version, - rendererPackageName: devToolsConfig$jscomp$inline_1904.rendererPackageName, - rendererConfig: devToolsConfig$jscomp$inline_1904.rendererConfig, + bundleType: devToolsConfig$jscomp$inline_1907.bundleType, + version: devToolsConfig$jscomp$inline_1907.version, + rendererPackageName: devToolsConfig$jscomp$inline_1907.rendererPackageName, + rendererConfig: devToolsConfig$jscomp$inline_1907.rendererConfig, overrideHookState: null, overrideHookStateDeletePath: null, overrideHookStateRenamePath: null, @@ -18053,14 +18043,14 @@ var devToolsConfig$jscomp$inline_1904 = { return null === fiber ? null : fiber.stateNode; }, findFiberByHostInstance: - devToolsConfig$jscomp$inline_1904.findFiberByHostInstance || + devToolsConfig$jscomp$inline_1907.findFiberByHostInstance || emptyFindFiberByHostInstance, findHostInstancesForRefresh: null, scheduleRefresh: null, scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null, - reconcilerVersion: "18.3.0-www-classic-86500a4d" + reconcilerVersion: "18.3.0-www-classic-a5679a0f" }); assign(Internals, { ReactBrowserEventEmitter: { @@ -18378,7 +18368,7 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactCurrentDispatcher$2.current.useHostTransitionStatus(); }; -exports.version = "18.3.0-www-classic-86500a4d"; +exports.version = "18.3.0-www-classic-a5679a0f"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/compiled/facebook-www/ReactDOM-profiling.modern.js b/compiled/facebook-www/ReactDOM-profiling.modern.js index 7f810317495c2..7c1f237b2b31f 100644 --- a/compiled/facebook-www/ReactDOM-profiling.modern.js +++ b/compiled/facebook-www/ReactDOM-profiling.modern.js @@ -1848,9 +1848,11 @@ function popHydrationState(fiber) { } JSCompiler_temp && (shouldClear = !0); if (shouldClear && (shouldClear = nextHydratableInstance)) - if (shouldClientRenderOnMismatch(fiber)) - warnIfUnhydratedTailNodes(), throwOnHydrationMismatch(); - else + if (shouldClientRenderOnMismatch(fiber)) { + for (shouldClear = nextHydratableInstance; shouldClear; ) + shouldClear = getNextHydratableSibling(shouldClear); + throwOnHydrationMismatch(); + } else for (; shouldClear; ) deleteHydratableInstance(fiber, shouldClear), (shouldClear = getNextHydratableSibling(shouldClear)); @@ -1884,10 +1886,6 @@ function popHydrationState(fiber) { : null; return !0; } -function warnIfUnhydratedTailNodes() { - for (var nextInstance = nextHydratableInstance; nextInstance; ) - nextInstance = getNextHydratableSibling(nextInstance); -} function resetHydrationState() { nextHydratableInstance = hydrationParentFiber = null; isHydrating = !1; @@ -7553,27 +7551,14 @@ function completeWork(current, workInProgress, renderLanes) { bubbleProperties(workInProgress); return null; case 13: - popSuspenseHandler(workInProgress); newProps = workInProgress.memoizedState; if ( null === current || (null !== current.memoizedState && null !== current.memoizedState.dehydrated) ) { - if ( - isHydrating && - null !== nextHydratableInstance && - 0 !== (workInProgress.mode & 1) && - 0 === (workInProgress.flags & 128) - ) - warnIfUnhydratedTailNodes(), - resetHydrationState(), - (workInProgress.flags |= 384), - (currentResource = !1); - else if ( - ((currentResource = popHydrationState(workInProgress)), - null !== newProps && null !== newProps.dehydrated) - ) { + currentResource = popHydrationState(workInProgress); + if (null !== newProps && null !== newProps.dehydrated) { if (null === current) { if (!currentResource) throw Error(formatProdErrorMessage(318)); currentResource = workInProgress.memoizedState; @@ -7605,9 +7590,14 @@ function completeWork(current, workInProgress, renderLanes) { null !== hydrationErrors && (queueRecoverableErrors(hydrationErrors), (hydrationErrors = null)), (currentResource = !0); - if (!currentResource) - return workInProgress.flags & 256 ? workInProgress : null; + if (!currentResource) { + if (workInProgress.flags & 256) + return popSuspenseHandler(workInProgress), workInProgress; + popSuspenseHandler(workInProgress); + return null; + } } + popSuspenseHandler(workInProgress); if (0 !== (workInProgress.flags & 128)) return ( (workInProgress.lanes = renderLanes), @@ -14265,14 +14255,14 @@ var isInputEventSupported = !1; if (canUseDOM) { var JSCompiler_inline_result$jscomp$371; if (canUseDOM) { - var isSupported$jscomp$inline_1636 = "oninput" in document; - if (!isSupported$jscomp$inline_1636) { - var element$jscomp$inline_1637 = document.createElement("div"); - element$jscomp$inline_1637.setAttribute("oninput", "return;"); - isSupported$jscomp$inline_1636 = - "function" === typeof element$jscomp$inline_1637.oninput; + var isSupported$jscomp$inline_1639 = "oninput" in document; + if (!isSupported$jscomp$inline_1639) { + var element$jscomp$inline_1640 = document.createElement("div"); + element$jscomp$inline_1640.setAttribute("oninput", "return;"); + isSupported$jscomp$inline_1639 = + "function" === typeof element$jscomp$inline_1640.oninput; } - JSCompiler_inline_result$jscomp$371 = isSupported$jscomp$inline_1636; + JSCompiler_inline_result$jscomp$371 = isSupported$jscomp$inline_1639; } else JSCompiler_inline_result$jscomp$371 = !1; isInputEventSupported = JSCompiler_inline_result$jscomp$371 && @@ -14584,20 +14574,20 @@ function registerSimpleEvent(domEventName, reactName) { registerTwoPhaseEvent(reactName, [domEventName]); } for ( - var i$jscomp$inline_1677 = 0; - i$jscomp$inline_1677 < simpleEventPluginEvents.length; - i$jscomp$inline_1677++ + var i$jscomp$inline_1680 = 0; + i$jscomp$inline_1680 < simpleEventPluginEvents.length; + i$jscomp$inline_1680++ ) { - var eventName$jscomp$inline_1678 = - simpleEventPluginEvents[i$jscomp$inline_1677], - domEventName$jscomp$inline_1679 = - eventName$jscomp$inline_1678.toLowerCase(), - capitalizedEvent$jscomp$inline_1680 = - eventName$jscomp$inline_1678[0].toUpperCase() + - eventName$jscomp$inline_1678.slice(1); + var eventName$jscomp$inline_1681 = + simpleEventPluginEvents[i$jscomp$inline_1680], + domEventName$jscomp$inline_1682 = + eventName$jscomp$inline_1681.toLowerCase(), + capitalizedEvent$jscomp$inline_1683 = + eventName$jscomp$inline_1681[0].toUpperCase() + + eventName$jscomp$inline_1681.slice(1); registerSimpleEvent( - domEventName$jscomp$inline_1679, - "on" + capitalizedEvent$jscomp$inline_1680 + domEventName$jscomp$inline_1682, + "on" + capitalizedEvent$jscomp$inline_1683 ); } registerSimpleEvent(ANIMATION_END, "onAnimationEnd"); @@ -17523,10 +17513,10 @@ Internals.Events = [ restoreStateIfNeeded, batchedUpdates$1 ]; -var devToolsConfig$jscomp$inline_1863 = { +var devToolsConfig$jscomp$inline_1866 = { findFiberByHostInstance: getClosestInstanceFromNode, bundleType: 0, - version: "18.3.0-www-modern-c0bbf979", + version: "18.3.0-www-modern-0883d4be", rendererPackageName: "react-dom" }; (function (internals) { @@ -17544,10 +17534,10 @@ var devToolsConfig$jscomp$inline_1863 = { } catch (err) {} return hook.checkDCE ? !0 : !1; })({ - bundleType: devToolsConfig$jscomp$inline_1863.bundleType, - version: devToolsConfig$jscomp$inline_1863.version, - rendererPackageName: devToolsConfig$jscomp$inline_1863.rendererPackageName, - rendererConfig: devToolsConfig$jscomp$inline_1863.rendererConfig, + bundleType: devToolsConfig$jscomp$inline_1866.bundleType, + version: devToolsConfig$jscomp$inline_1866.version, + rendererPackageName: devToolsConfig$jscomp$inline_1866.rendererPackageName, + rendererConfig: devToolsConfig$jscomp$inline_1866.rendererConfig, overrideHookState: null, overrideHookStateDeletePath: null, overrideHookStateRenamePath: null, @@ -17564,14 +17554,14 @@ var devToolsConfig$jscomp$inline_1863 = { return null === fiber ? null : fiber.stateNode; }, findFiberByHostInstance: - devToolsConfig$jscomp$inline_1863.findFiberByHostInstance || + devToolsConfig$jscomp$inline_1866.findFiberByHostInstance || emptyFindFiberByHostInstance, findHostInstancesForRefresh: null, scheduleRefresh: null, scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null, - reconcilerVersion: "18.3.0-www-modern-c0bbf979" + reconcilerVersion: "18.3.0-www-modern-0883d4be" }); exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = Internals; exports.createPortal = function (children, container) { @@ -17817,7 +17807,7 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactCurrentDispatcher$2.current.useHostTransitionStatus(); }; -exports.version = "18.3.0-www-modern-c0bbf979"; +exports.version = "18.3.0-www-modern-0883d4be"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/compiled/facebook-www/ReactDOMTesting-dev.classic.js b/compiled/facebook-www/ReactDOMTesting-dev.classic.js index 389c03b538e88..7b944bb38dd0e 100644 --- a/compiled/facebook-www/ReactDOMTesting-dev.classic.js +++ b/compiled/facebook-www/ReactDOMTesting-dev.classic.js @@ -9078,10 +9078,6 @@ if (__DEV__) { return true; } - function hasUnhydratedTailNodes() { - return isHydrating && nextHydratableInstance !== null; - } - function warnIfUnhydratedTailNodes(fiber) { var nextInstance = nextHydratableInstance; @@ -25095,17 +25091,6 @@ if (__DEV__) { workInProgress, nextState ) { - if ( - hasUnhydratedTailNodes() && - (workInProgress.mode & ConcurrentMode) !== NoMode && - (workInProgress.flags & DidCapture) === NoFlags$1 - ) { - warnIfUnhydratedTailNodes(workInProgress); - resetHydrationState(); - workInProgress.flags |= ForceClientRender | DidCapture; - return false; - } - var wasHydrated = popHydrationState(workInProgress); if (nextState !== null && nextState.dehydrated !== null) { @@ -25542,7 +25527,6 @@ if (__DEV__) { } case SuspenseComponent: { - popSuspenseHandler(workInProgress); var nextState = workInProgress.memoizedState; // Special path for dehydrated boundaries. We may eventually move this // to its own fiber type so that we can add other kinds of hydration // boundaries that aren't associated with a Suspense tree. In anticipation @@ -25563,17 +25547,21 @@ if (__DEV__) { if (!fallthroughToNormalSuspensePath) { if (workInProgress.flags & ForceClientRender) { - // Special case. There were remaining unhydrated nodes. We treat + popSuspenseHandler(workInProgress); // Special case. There were remaining unhydrated nodes. We treat // this as a mismatch. Revert to client rendering. + return workInProgress; } else { - // Did not finish hydrating, either because this is the initial + popSuspenseHandler(workInProgress); // Did not finish hydrating, either because this is the initial // render or because something suspended. + return null; } } // Continue with the normal Suspense path. } + popSuspenseHandler(workInProgress); + if ((workInProgress.flags & DidCapture) !== NoFlags$1) { // Something suspended. Re-render with the fallback children. workInProgress.lanes = renderLanes; // Do not reset the effect list. @@ -36670,7 +36658,7 @@ if (__DEV__) { return root; } - var ReactVersion = "18.3.0-www-classic-f938cefa"; + var ReactVersion = "18.3.0-www-classic-5741f0db"; function createPortal$1( children, diff --git a/compiled/facebook-www/ReactDOMTesting-dev.modern.js b/compiled/facebook-www/ReactDOMTesting-dev.modern.js index af7362afed6e7..79ff65b8e472d 100644 --- a/compiled/facebook-www/ReactDOMTesting-dev.modern.js +++ b/compiled/facebook-www/ReactDOMTesting-dev.modern.js @@ -9040,10 +9040,6 @@ if (__DEV__) { return true; } - function hasUnhydratedTailNodes() { - return isHydrating && nextHydratableInstance !== null; - } - function warnIfUnhydratedTailNodes(fiber) { var nextInstance = nextHydratableInstance; @@ -24980,17 +24976,6 @@ if (__DEV__) { workInProgress, nextState ) { - if ( - hasUnhydratedTailNodes() && - (workInProgress.mode & ConcurrentMode) !== NoMode && - (workInProgress.flags & DidCapture) === NoFlags$1 - ) { - warnIfUnhydratedTailNodes(workInProgress); - resetHydrationState(); - workInProgress.flags |= ForceClientRender | DidCapture; - return false; - } - var wasHydrated = popHydrationState(workInProgress); if (nextState !== null && nextState.dehydrated !== null) { @@ -25420,7 +25405,6 @@ if (__DEV__) { } case SuspenseComponent: { - popSuspenseHandler(workInProgress); var nextState = workInProgress.memoizedState; // Special path for dehydrated boundaries. We may eventually move this // to its own fiber type so that we can add other kinds of hydration // boundaries that aren't associated with a Suspense tree. In anticipation @@ -25441,17 +25425,21 @@ if (__DEV__) { if (!fallthroughToNormalSuspensePath) { if (workInProgress.flags & ForceClientRender) { - // Special case. There were remaining unhydrated nodes. We treat + popSuspenseHandler(workInProgress); // Special case. There were remaining unhydrated nodes. We treat // this as a mismatch. Revert to client rendering. + return workInProgress; } else { - // Did not finish hydrating, either because this is the initial + popSuspenseHandler(workInProgress); // Did not finish hydrating, either because this is the initial // render or because something suspended. + return null; } } // Continue with the normal Suspense path. } + popSuspenseHandler(workInProgress); + if ((workInProgress.flags & DidCapture) !== NoFlags$1) { // Something suspended. Re-render with the fallback children. workInProgress.lanes = renderLanes; // Do not reset the effect list. @@ -36517,7 +36505,7 @@ if (__DEV__) { return root; } - var ReactVersion = "18.3.0-www-modern-0576ced4"; + var ReactVersion = "18.3.0-www-modern-3b677659"; function createPortal$1( children, diff --git a/compiled/facebook-www/ReactDOMTesting-prod.classic.js b/compiled/facebook-www/ReactDOMTesting-prod.classic.js index 4727af65f7a80..c26913ff5f0fe 100644 --- a/compiled/facebook-www/ReactDOMTesting-prod.classic.js +++ b/compiled/facebook-www/ReactDOMTesting-prod.classic.js @@ -1902,9 +1902,11 @@ function popHydrationState(fiber) { } JSCompiler_temp && (shouldClear = !0); if (shouldClear && (shouldClear = nextHydratableInstance)) - if (shouldClientRenderOnMismatch(fiber)) - warnIfUnhydratedTailNodes(), throwOnHydrationMismatch(); - else + if (shouldClientRenderOnMismatch(fiber)) { + for (shouldClear = nextHydratableInstance; shouldClear; ) + shouldClear = getNextHydratableSibling(shouldClear); + throwOnHydrationMismatch(); + } else for (; shouldClear; ) deleteHydratableInstance(fiber, shouldClear), (shouldClear = getNextHydratableSibling(shouldClear)); @@ -1938,10 +1940,6 @@ function popHydrationState(fiber) { : null; return !0; } -function warnIfUnhydratedTailNodes() { - for (var nextInstance = nextHydratableInstance; nextInstance; ) - nextInstance = getNextHydratableSibling(nextInstance); -} function resetHydrationState() { nextHydratableInstance = hydrationParentFiber = null; isHydrating = !1; @@ -7528,27 +7526,14 @@ function completeWork(current, workInProgress, renderLanes) { bubbleProperties(workInProgress); return null; case 13: - popSuspenseHandler(workInProgress); newProps = workInProgress.memoizedState; if ( null === current || (null !== current.memoizedState && null !== current.memoizedState.dehydrated) ) { - if ( - isHydrating && - null !== nextHydratableInstance && - 0 !== (workInProgress.mode & 1) && - 0 === (workInProgress.flags & 128) - ) - warnIfUnhydratedTailNodes(), - resetHydrationState(), - (workInProgress.flags |= 384), - (currentResource = !1); - else if ( - ((currentResource = popHydrationState(workInProgress)), - null !== newProps && null !== newProps.dehydrated) - ) { + currentResource = popHydrationState(workInProgress); + if (null !== newProps && null !== newProps.dehydrated) { if (null === current) { if (!currentResource) throw Error(formatProdErrorMessage(318)); currentResource = workInProgress.memoizedState; @@ -7567,9 +7552,14 @@ function completeWork(current, workInProgress, renderLanes) { null !== hydrationErrors && (queueRecoverableErrors(hydrationErrors), (hydrationErrors = null)), (currentResource = !0); - if (!currentResource) - return workInProgress.flags & 256 ? workInProgress : null; + if (!currentResource) { + if (workInProgress.flags & 256) + return popSuspenseHandler(workInProgress), workInProgress; + popSuspenseHandler(workInProgress); + return null; + } } + popSuspenseHandler(workInProgress); if (0 !== (workInProgress.flags & 128)) return (workInProgress.lanes = renderLanes), workInProgress; renderLanes = null !== newProps; @@ -13407,14 +13397,14 @@ var isInputEventSupported = !1; if (canUseDOM) { var JSCompiler_inline_result$jscomp$354; if (canUseDOM) { - var isSupported$jscomp$inline_1578 = "oninput" in document; - if (!isSupported$jscomp$inline_1578) { - var element$jscomp$inline_1579 = document.createElement("div"); - element$jscomp$inline_1579.setAttribute("oninput", "return;"); - isSupported$jscomp$inline_1578 = - "function" === typeof element$jscomp$inline_1579.oninput; + var isSupported$jscomp$inline_1581 = "oninput" in document; + if (!isSupported$jscomp$inline_1581) { + var element$jscomp$inline_1582 = document.createElement("div"); + element$jscomp$inline_1582.setAttribute("oninput", "return;"); + isSupported$jscomp$inline_1581 = + "function" === typeof element$jscomp$inline_1582.oninput; } - JSCompiler_inline_result$jscomp$354 = isSupported$jscomp$inline_1578; + JSCompiler_inline_result$jscomp$354 = isSupported$jscomp$inline_1581; } else JSCompiler_inline_result$jscomp$354 = !1; isInputEventSupported = JSCompiler_inline_result$jscomp$354 && @@ -13789,20 +13779,20 @@ function extractEvents$1( } } for ( - var i$jscomp$inline_1619 = 0; - i$jscomp$inline_1619 < simpleEventPluginEvents.length; - i$jscomp$inline_1619++ + var i$jscomp$inline_1622 = 0; + i$jscomp$inline_1622 < simpleEventPluginEvents.length; + i$jscomp$inline_1622++ ) { - var eventName$jscomp$inline_1620 = - simpleEventPluginEvents[i$jscomp$inline_1619], - domEventName$jscomp$inline_1621 = - eventName$jscomp$inline_1620.toLowerCase(), - capitalizedEvent$jscomp$inline_1622 = - eventName$jscomp$inline_1620[0].toUpperCase() + - eventName$jscomp$inline_1620.slice(1); + var eventName$jscomp$inline_1623 = + simpleEventPluginEvents[i$jscomp$inline_1622], + domEventName$jscomp$inline_1624 = + eventName$jscomp$inline_1623.toLowerCase(), + capitalizedEvent$jscomp$inline_1625 = + eventName$jscomp$inline_1623[0].toUpperCase() + + eventName$jscomp$inline_1623.slice(1); registerSimpleEvent( - domEventName$jscomp$inline_1621, - "on" + capitalizedEvent$jscomp$inline_1622 + domEventName$jscomp$inline_1624, + "on" + capitalizedEvent$jscomp$inline_1625 ); } registerSimpleEvent(ANIMATION_END, "onAnimationEnd"); @@ -17573,17 +17563,17 @@ Internals.Events = [ restoreStateIfNeeded, batchedUpdates$1 ]; -var devToolsConfig$jscomp$inline_1824 = { +var devToolsConfig$jscomp$inline_1827 = { findFiberByHostInstance: getClosestInstanceFromNode, bundleType: 0, - version: "18.3.0-www-classic-c1c1744a", + version: "18.3.0-www-classic-6ddd4df1", rendererPackageName: "react-dom" }; -var internals$jscomp$inline_2190 = { - bundleType: devToolsConfig$jscomp$inline_1824.bundleType, - version: devToolsConfig$jscomp$inline_1824.version, - rendererPackageName: devToolsConfig$jscomp$inline_1824.rendererPackageName, - rendererConfig: devToolsConfig$jscomp$inline_1824.rendererConfig, +var internals$jscomp$inline_2193 = { + bundleType: devToolsConfig$jscomp$inline_1827.bundleType, + version: devToolsConfig$jscomp$inline_1827.version, + rendererPackageName: devToolsConfig$jscomp$inline_1827.rendererPackageName, + rendererConfig: devToolsConfig$jscomp$inline_1827.rendererConfig, overrideHookState: null, overrideHookStateDeletePath: null, overrideHookStateRenamePath: null, @@ -17599,26 +17589,26 @@ var internals$jscomp$inline_2190 = { return null === fiber ? null : fiber.stateNode; }, findFiberByHostInstance: - devToolsConfig$jscomp$inline_1824.findFiberByHostInstance || + devToolsConfig$jscomp$inline_1827.findFiberByHostInstance || emptyFindFiberByHostInstance, findHostInstancesForRefresh: null, scheduleRefresh: null, scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null, - reconcilerVersion: "18.3.0-www-classic-c1c1744a" + reconcilerVersion: "18.3.0-www-classic-6ddd4df1" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { - var hook$jscomp$inline_2191 = __REACT_DEVTOOLS_GLOBAL_HOOK__; + var hook$jscomp$inline_2194 = __REACT_DEVTOOLS_GLOBAL_HOOK__; if ( - !hook$jscomp$inline_2191.isDisabled && - hook$jscomp$inline_2191.supportsFiber + !hook$jscomp$inline_2194.isDisabled && + hook$jscomp$inline_2194.supportsFiber ) try { - (rendererID = hook$jscomp$inline_2191.inject( - internals$jscomp$inline_2190 + (rendererID = hook$jscomp$inline_2194.inject( + internals$jscomp$inline_2193 )), - (injectedHook = hook$jscomp$inline_2191); + (injectedHook = hook$jscomp$inline_2194); } catch (err) {} } assign(Internals, { @@ -18088,4 +18078,4 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactCurrentDispatcher$2.current.useHostTransitionStatus(); }; -exports.version = "18.3.0-www-classic-c1c1744a"; +exports.version = "18.3.0-www-classic-6ddd4df1"; diff --git a/compiled/facebook-www/ReactDOMTesting-prod.modern.js b/compiled/facebook-www/ReactDOMTesting-prod.modern.js index 9ff631fe9c4f1..a13579df54775 100644 --- a/compiled/facebook-www/ReactDOMTesting-prod.modern.js +++ b/compiled/facebook-www/ReactDOMTesting-prod.modern.js @@ -1857,9 +1857,11 @@ function popHydrationState(fiber) { } JSCompiler_temp && (shouldClear = !0); if (shouldClear && (shouldClear = nextHydratableInstance)) - if (shouldClientRenderOnMismatch(fiber)) - warnIfUnhydratedTailNodes(), throwOnHydrationMismatch(); - else + if (shouldClientRenderOnMismatch(fiber)) { + for (shouldClear = nextHydratableInstance; shouldClear; ) + shouldClear = getNextHydratableSibling(shouldClear); + throwOnHydrationMismatch(); + } else for (; shouldClear; ) deleteHydratableInstance(fiber, shouldClear), (shouldClear = getNextHydratableSibling(shouldClear)); @@ -1893,10 +1895,6 @@ function popHydrationState(fiber) { : null; return !0; } -function warnIfUnhydratedTailNodes() { - for (var nextInstance = nextHydratableInstance; nextInstance; ) - nextInstance = getNextHydratableSibling(nextInstance); -} function resetHydrationState() { nextHydratableInstance = hydrationParentFiber = null; isHydrating = !1; @@ -7426,27 +7424,14 @@ function completeWork(current, workInProgress, renderLanes) { bubbleProperties(workInProgress); return null; case 13: - popSuspenseHandler(workInProgress); newProps = workInProgress.memoizedState; if ( null === current || (null !== current.memoizedState && null !== current.memoizedState.dehydrated) ) { - if ( - isHydrating && - null !== nextHydratableInstance && - 0 !== (workInProgress.mode & 1) && - 0 === (workInProgress.flags & 128) - ) - warnIfUnhydratedTailNodes(), - resetHydrationState(), - (workInProgress.flags |= 384), - (currentResource = !1); - else if ( - ((currentResource = popHydrationState(workInProgress)), - null !== newProps && null !== newProps.dehydrated) - ) { + currentResource = popHydrationState(workInProgress); + if (null !== newProps && null !== newProps.dehydrated) { if (null === current) { if (!currentResource) throw Error(formatProdErrorMessage(318)); currentResource = workInProgress.memoizedState; @@ -7465,9 +7450,14 @@ function completeWork(current, workInProgress, renderLanes) { null !== hydrationErrors && (queueRecoverableErrors(hydrationErrors), (hydrationErrors = null)), (currentResource = !0); - if (!currentResource) - return workInProgress.flags & 256 ? workInProgress : null; + if (!currentResource) { + if (workInProgress.flags & 256) + return popSuspenseHandler(workInProgress), workInProgress; + popSuspenseHandler(workInProgress); + return null; + } } + popSuspenseHandler(workInProgress); if (0 !== (workInProgress.flags & 128)) return (workInProgress.lanes = renderLanes), workInProgress; renderLanes = null !== newProps; @@ -13835,14 +13825,14 @@ var isInputEventSupported = !1; if (canUseDOM) { var JSCompiler_inline_result$jscomp$352; if (canUseDOM) { - var isSupported$jscomp$inline_1578 = "oninput" in document; - if (!isSupported$jscomp$inline_1578) { - var element$jscomp$inline_1579 = document.createElement("div"); - element$jscomp$inline_1579.setAttribute("oninput", "return;"); - isSupported$jscomp$inline_1578 = - "function" === typeof element$jscomp$inline_1579.oninput; + var isSupported$jscomp$inline_1581 = "oninput" in document; + if (!isSupported$jscomp$inline_1581) { + var element$jscomp$inline_1582 = document.createElement("div"); + element$jscomp$inline_1582.setAttribute("oninput", "return;"); + isSupported$jscomp$inline_1581 = + "function" === typeof element$jscomp$inline_1582.oninput; } - JSCompiler_inline_result$jscomp$352 = isSupported$jscomp$inline_1578; + JSCompiler_inline_result$jscomp$352 = isSupported$jscomp$inline_1581; } else JSCompiler_inline_result$jscomp$352 = !1; isInputEventSupported = JSCompiler_inline_result$jscomp$352 && @@ -14154,20 +14144,20 @@ function registerSimpleEvent(domEventName, reactName) { registerTwoPhaseEvent(reactName, [domEventName]); } for ( - var i$jscomp$inline_1619 = 0; - i$jscomp$inline_1619 < simpleEventPluginEvents.length; - i$jscomp$inline_1619++ + var i$jscomp$inline_1622 = 0; + i$jscomp$inline_1622 < simpleEventPluginEvents.length; + i$jscomp$inline_1622++ ) { - var eventName$jscomp$inline_1620 = - simpleEventPluginEvents[i$jscomp$inline_1619], - domEventName$jscomp$inline_1621 = - eventName$jscomp$inline_1620.toLowerCase(), - capitalizedEvent$jscomp$inline_1622 = - eventName$jscomp$inline_1620[0].toUpperCase() + - eventName$jscomp$inline_1620.slice(1); + var eventName$jscomp$inline_1623 = + simpleEventPluginEvents[i$jscomp$inline_1622], + domEventName$jscomp$inline_1624 = + eventName$jscomp$inline_1623.toLowerCase(), + capitalizedEvent$jscomp$inline_1625 = + eventName$jscomp$inline_1623[0].toUpperCase() + + eventName$jscomp$inline_1623.slice(1); registerSimpleEvent( - domEventName$jscomp$inline_1621, - "on" + capitalizedEvent$jscomp$inline_1622 + domEventName$jscomp$inline_1624, + "on" + capitalizedEvent$jscomp$inline_1625 ); } registerSimpleEvent(ANIMATION_END, "onAnimationEnd"); @@ -17150,17 +17140,17 @@ Internals.Events = [ restoreStateIfNeeded, batchedUpdates$1 ]; -var devToolsConfig$jscomp$inline_1783 = { +var devToolsConfig$jscomp$inline_1786 = { findFiberByHostInstance: getClosestInstanceFromNode, bundleType: 0, - version: "18.3.0-www-modern-7e0344a2", + version: "18.3.0-www-modern-05c693f4", rendererPackageName: "react-dom" }; -var internals$jscomp$inline_2153 = { - bundleType: devToolsConfig$jscomp$inline_1783.bundleType, - version: devToolsConfig$jscomp$inline_1783.version, - rendererPackageName: devToolsConfig$jscomp$inline_1783.rendererPackageName, - rendererConfig: devToolsConfig$jscomp$inline_1783.rendererConfig, +var internals$jscomp$inline_2156 = { + bundleType: devToolsConfig$jscomp$inline_1786.bundleType, + version: devToolsConfig$jscomp$inline_1786.version, + rendererPackageName: devToolsConfig$jscomp$inline_1786.rendererPackageName, + rendererConfig: devToolsConfig$jscomp$inline_1786.rendererConfig, overrideHookState: null, overrideHookStateDeletePath: null, overrideHookStateRenamePath: null, @@ -17177,26 +17167,26 @@ var internals$jscomp$inline_2153 = { return null === fiber ? null : fiber.stateNode; }, findFiberByHostInstance: - devToolsConfig$jscomp$inline_1783.findFiberByHostInstance || + devToolsConfig$jscomp$inline_1786.findFiberByHostInstance || emptyFindFiberByHostInstance, findHostInstancesForRefresh: null, scheduleRefresh: null, scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null, - reconcilerVersion: "18.3.0-www-modern-7e0344a2" + reconcilerVersion: "18.3.0-www-modern-05c693f4" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { - var hook$jscomp$inline_2154 = __REACT_DEVTOOLS_GLOBAL_HOOK__; + var hook$jscomp$inline_2157 = __REACT_DEVTOOLS_GLOBAL_HOOK__; if ( - !hook$jscomp$inline_2154.isDisabled && - hook$jscomp$inline_2154.supportsFiber + !hook$jscomp$inline_2157.isDisabled && + hook$jscomp$inline_2157.supportsFiber ) try { - (rendererID = hook$jscomp$inline_2154.inject( - internals$jscomp$inline_2153 + (rendererID = hook$jscomp$inline_2157.inject( + internals$jscomp$inline_2156 )), - (injectedHook = hook$jscomp$inline_2154); + (injectedHook = hook$jscomp$inline_2157); } catch (err) {} } exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = Internals; @@ -17593,4 +17583,4 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactCurrentDispatcher$2.current.useHostTransitionStatus(); }; -exports.version = "18.3.0-www-modern-7e0344a2"; +exports.version = "18.3.0-www-modern-05c693f4"; diff --git a/compiled/facebook-www/ReactTestRenderer-dev.classic.js b/compiled/facebook-www/ReactTestRenderer-dev.classic.js index 3149b8c7a286c..ba279f73ed24d 100644 --- a/compiled/facebook-www/ReactTestRenderer-dev.classic.js +++ b/compiled/facebook-www/ReactTestRenderer-dev.classic.js @@ -17512,7 +17512,6 @@ if (__DEV__) { } case SuspenseComponent: { - popSuspenseHandler(workInProgress); var nextState = workInProgress.memoizedState; // Special path for dehydrated boundaries. We may eventually move this // to its own fiber type so that we can add other kinds of hydration // boundaries that aren't associated with a Suspense tree. In anticipation @@ -17533,17 +17532,21 @@ if (__DEV__) { if (!fallthroughToNormalSuspensePath) { if (workInProgress.flags & ForceClientRender) { - // Special case. There were remaining unhydrated nodes. We treat + popSuspenseHandler(workInProgress); // Special case. There were remaining unhydrated nodes. We treat // this as a mismatch. Revert to client rendering. + return workInProgress; } else { - // Did not finish hydrating, either because this is the initial + popSuspenseHandler(workInProgress); // Did not finish hydrating, either because this is the initial // render or because something suspended. + return null; } } // Continue with the normal Suspense path. } + popSuspenseHandler(workInProgress); + if ((workInProgress.flags & DidCapture) !== NoFlags$1) { // Something suspended. Re-render with the fallback children. workInProgress.lanes = renderLanes; // Do not reset the effect list. @@ -26102,7 +26105,7 @@ if (__DEV__) { return root; } - var ReactVersion = "18.3.0-www-classic-767ddd4e"; + var ReactVersion = "18.3.0-www-classic-ce114f6f"; // Might add PROFILE later. diff --git a/compiled/facebook-www/ReactTestRenderer-dev.modern.js b/compiled/facebook-www/ReactTestRenderer-dev.modern.js index 81919bee13292..5cea648a4efe0 100644 --- a/compiled/facebook-www/ReactTestRenderer-dev.modern.js +++ b/compiled/facebook-www/ReactTestRenderer-dev.modern.js @@ -17512,7 +17512,6 @@ if (__DEV__) { } case SuspenseComponent: { - popSuspenseHandler(workInProgress); var nextState = workInProgress.memoizedState; // Special path for dehydrated boundaries. We may eventually move this // to its own fiber type so that we can add other kinds of hydration // boundaries that aren't associated with a Suspense tree. In anticipation @@ -17533,17 +17532,21 @@ if (__DEV__) { if (!fallthroughToNormalSuspensePath) { if (workInProgress.flags & ForceClientRender) { - // Special case. There were remaining unhydrated nodes. We treat + popSuspenseHandler(workInProgress); // Special case. There were remaining unhydrated nodes. We treat // this as a mismatch. Revert to client rendering. + return workInProgress; } else { - // Did not finish hydrating, either because this is the initial + popSuspenseHandler(workInProgress); // Did not finish hydrating, either because this is the initial // render or because something suspended. + return null; } } // Continue with the normal Suspense path. } + popSuspenseHandler(workInProgress); + if ((workInProgress.flags & DidCapture) !== NoFlags$1) { // Something suspended. Re-render with the fallback children. workInProgress.lanes = renderLanes; // Do not reset the effect list. @@ -26102,7 +26105,7 @@ if (__DEV__) { return root; } - var ReactVersion = "18.3.0-www-modern-34e32e54"; + var ReactVersion = "18.3.0-www-modern-9e4f77da"; // Might add PROFILE later.