From f8f9cf75e3fd4b7a53c803aeb4a253c3380444f3 Mon Sep 17 00:00:00 2001 From: Sebastian Markbage Date: Wed, 5 Nov 2025 14:14:31 -0500 Subject: [PATCH] Remove unstable_expectedLoadTime option It's now replaced by defer. --- .../src/ReactFiberBeginWork.js | 18 +------ .../src/__tests__/ReactCPUSuspense-test.js | 47 ------------------- packages/shared/ReactTypes.js | 1 - 3 files changed, 1 insertion(+), 65 deletions(-) diff --git a/packages/react-reconciler/src/ReactFiberBeginWork.js b/packages/react-reconciler/src/ReactFiberBeginWork.js index e9ea77fb4c6ab..7020af6e04357 100644 --- a/packages/react-reconciler/src/ReactFiberBeginWork.js +++ b/packages/react-reconciler/src/ReactFiberBeginWork.js @@ -325,7 +325,6 @@ export let didWarnAboutReassigningProps: boolean; let didWarnAboutRevealOrder; let didWarnAboutTailOptions; let didWarnAboutClassNameOnViewTransition; -let didWarnAboutExpectedLoadTime = false; if (__DEV__) { didWarnAboutBadClass = ({}: {[string]: boolean}); @@ -2457,22 +2456,7 @@ function updateSuspenseComponent( } return bailoutOffscreenComponent(null, primaryChildFragment); - } else if ( - enableCPUSuspense && - (typeof nextProps.unstable_expectedLoadTime === 'number' || - nextProps.defer === true) - ) { - if (__DEV__) { - if (typeof nextProps.unstable_expectedLoadTime === 'number') { - if (!didWarnAboutExpectedLoadTime) { - didWarnAboutExpectedLoadTime = true; - console.error( - ' is deprecated. ' + - 'Use instead.', - ); - } - } - } + } else if (enableCPUSuspense && nextProps.defer === true) { // This is a CPU-bound tree. Skip this tree and show a placeholder to // unblock the surrounding content. Then immediately retry after the // initial commit. diff --git a/packages/react-reconciler/src/__tests__/ReactCPUSuspense-test.js b/packages/react-reconciler/src/__tests__/ReactCPUSuspense-test.js index 7d4ebadc62d3a..54e4207c65681 100644 --- a/packages/react-reconciler/src/__tests__/ReactCPUSuspense-test.js +++ b/packages/react-reconciler/src/__tests__/ReactCPUSuspense-test.js @@ -13,7 +13,6 @@ let resolveText; // let rejectText; let assertLog; -let assertConsoleErrorDev; let waitForPaint; describe('ReactSuspenseWithNoopRenderer', () => { @@ -29,7 +28,6 @@ describe('ReactSuspenseWithNoopRenderer', () => { const InternalTestUtils = require('internal-test-utils'); assertLog = InternalTestUtils.assertLog; - assertConsoleErrorDev = InternalTestUtils.assertConsoleErrorDev; waitForPaint = InternalTestUtils.waitForPaint; textCache = new Map(); @@ -119,51 +117,6 @@ describe('ReactSuspenseWithNoopRenderer', () => { } } - // @gate enableCPUSuspense - it('warns for the old name is used', async () => { - function App() { - return ( - <> - -
- }> - - -
- - ); - } - - const root = ReactNoop.createRoot(); - await act(async () => { - root.render(); - await waitForPaint(['Outer', 'Loading...']); - assertConsoleErrorDev([ - ' is deprecated. ' + - 'Use instead.' + - '\n in Suspense (at **)' + - '\n in App (at **)', - ]); - expect(root).toMatchRenderedOutput( - <> - Outer -
Loading...
- , - ); - }); - - // Inner contents finish in separate commit from outer - assertLog(['Inner']); - expect(root).toMatchRenderedOutput( - <> - Outer -
Inner
- , - ); - }); - // @gate enableCPUSuspense it('skips CPU-bound trees on initial mount', async () => { function App() { diff --git a/packages/shared/ReactTypes.js b/packages/shared/ReactTypes.js index fe36b77ee2839..bcdda6da2a7c2 100644 --- a/packages/shared/ReactTypes.js +++ b/packages/shared/ReactTypes.js @@ -312,7 +312,6 @@ export type SuspenseProps = { suspenseCallback?: (Set | null) => mixed, unstable_avoidThisFallback?: boolean, - unstable_expectedLoadTime?: number, defer?: boolean, name?: string, };