Skip to content

Commit e43be9d

Browse files
sebmarkbagerickhanlonii
authored andcommitted
Update cache() and use() to the canary aka next channel (#25502)
Testing what it would look like to move this to the `next` channel.
1 parent c3f5fe6 commit e43be9d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+325
-279
lines changed

ReactVersions.js

+2-6
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ const stablePackages = {
3030
react: ReactVersion,
3131
'react-art': ReactVersion,
3232
'react-dom': ReactVersion,
33+
'react-server-dom-webpack': ReactVersion,
3334
'react-is': ReactVersion,
3435
'react-reconciler': '0.30.0',
3536
'react-refresh': '0.15.0',
@@ -42,12 +43,7 @@ const stablePackages = {
4243
// These packages do not exist in the @next or @latest channel, only
4344
// @experimental. We don't use semver, just the commit sha, so this is just a
4445
// list of package names instead of a map.
45-
const experimentalPackages = [
46-
'react-fetch',
47-
'react-fs',
48-
'react-pg',
49-
'react-server-dom-webpack',
50-
];
46+
const experimentalPackages = ['react-fetch', 'react-fs', 'react-pg'];
5147

5248
module.exports = {
5349
ReactVersion,

fixtures/fizz-ssr-browser/index.html

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ <h1>Fizz Example</h1>
1717
</p>
1818
</div>
1919
<script src="../../build/node_modules/react/umd/react.development.js"></script>
20+
<script src="../../build/node_modules/react-dom/umd/react-dom.development.js"></script>
2021
<script src="../../build/node_modules/react-dom/umd/react-dom-server.browser.development.js"></script>
2122
<script src="https://unpkg.com/babel-standalone@6/babel.js"></script>
2223
<script type="text/babel">

fixtures/flight-browser/index.html

+4-3
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ <h1>Flight Example</h1>
8383
}
8484

8585
function Shell({ data }) {
86-
let model = React.experimental_use(data);
86+
let model = React.use(data);
8787
return <div>
8888
<Suspense fallback="...">
8989
<h1>{model.title}</h1>
@@ -94,11 +94,12 @@ <h1>{model.title}</h1>
9494

9595
function renderResult(data) {
9696
let container = document.getElementById('container');
97-
ReactDOM.render(
97+
ReactDOM.createRoot(
98+
container
99+
).render(
98100
<Suspense fallback="Loading...">
99101
<Shell data={data} />
100102
</Suspense>,
101-
container
102103
);
103104
}
104105
</script>

fixtures/flight/src/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import ReactServerDOMReader from 'react-server-dom-webpack/client';
66
let data = ReactServerDOMReader.createFromFetch(fetch('http://localhost:3001'));
77

88
function Content() {
9-
return React.experimental_use(data);
9+
return React.use(data);
1010
}
1111

1212
ReactDOM.createRoot(document.getElementById('root')).render(

packages/react-client/src/__tests__/ReactFlight-test.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ describe('ReactFlight', () => {
2727

2828
React = require('react');
2929
startTransition = React.startTransition;
30-
use = React.experimental_use;
30+
use = React.use;
3131
ReactNoop = require('react-noop-renderer');
3232
ReactNoopFlightServer = require('react-noop-renderer/flight-server');
3333
ReactNoopFlightClient = require('react-noop-renderer/flight-client');

packages/react-dom/index.classic.fb.js

+2
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ export {
3333
unstable_isNewReconciler,
3434
unstable_renderSubtreeIntoContainer,
3535
unstable_runWithPriority, // DO NOT USE: Temporarily exposed to migrate off of Scheduler.runWithPriority.
36+
preinit,
37+
preload,
3638
version,
3739
} from './src/client/ReactDOM';
3840

packages/react-dom/index.experimental.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export {
2020
unstable_batchedUpdates,
2121
unstable_renderSubtreeIntoContainer,
2222
unstable_runWithPriority, // DO NOT USE: Temporarily exposed to migrate off of Scheduler.runWithPriority.
23+
preinit,
24+
preload,
2325
version,
2426
} from './src/client/ReactDOM';
25-
26-
export {preinit, preload} from 'react-dom-bindings/src/shared/ReactDOMFloat';

packages/react-dom/index.js

+2
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,7 @@ export {
2525
unstable_isNewReconciler,
2626
unstable_renderSubtreeIntoContainer,
2727
unstable_runWithPriority, // DO NOT USE: Temporarily exposed to migrate off of Scheduler.runWithPriority.
28+
preinit,
29+
preload,
2830
version,
2931
} from './src/client/ReactDOM';

packages/react-dom/index.modern.fb.js

+2
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,7 @@ export {
1818
unstable_flushControlled,
1919
unstable_isNewReconciler,
2020
unstable_runWithPriority, // DO NOT USE: Temporarily exposed to migrate off of Scheduler.runWithPriority.
21+
preinit,
22+
preload,
2123
version,
2224
} from './src/client/ReactDOM';

packages/react-dom/index.stable.js

+2
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,7 @@ export {
1919
unmountComponentAtNode,
2020
unstable_batchedUpdates,
2121
unstable_renderSubtreeIntoContainer,
22+
preinit,
23+
preload,
2224
version,
2325
} from './src/client/ReactDOM';

packages/react-dom/server-rendering-stub.experimental.js

-22
This file was deleted.

packages/react-dom/server-rendering-stub.js

+2
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,6 @@ export {default as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED} from './s
1818
export {
1919
createPortal,
2020
flushSync,
21+
preload,
22+
preinit,
2123
} from './src/server/ReactDOMServerRenderingStub';

packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,9 @@ describe('ReactDOMFizzServer', () => {
4141
ReactDOMFizzServer = require('react-dom/server');
4242
Stream = require('stream');
4343
Suspense = React.Suspense;
44+
use = React.use;
4445
if (gate(flags => flags.enableSuspenseList)) {
4546
SuspenseList = React.SuspenseList;
46-
use = React.experimental_use;
4747
}
4848

4949
PropTypes = require('prop-types');

packages/react-dom/src/__tests__/ReactDOMFloat-test.js

+2-3
Original file line numberDiff line numberDiff line change
@@ -1963,7 +1963,7 @@ describe('ReactDOMFloat', () => {
19631963
);
19641964
});
19651965

1966-
// @gate enableFloat
1966+
// @gate enableFloat && enableHostSingletons && (enableClientRenderFallbackOnTextMismatch || !__DEV__)
19671967
it('can render a title before a singleton even if that singleton clears its contents', async () => {
19681968
await actIntoEmptyDocument(() => {
19691969
const {pipe} = ReactDOMFizzServer.renderToPipeableStream(
@@ -1975,7 +1975,6 @@ describe('ReactDOMFloat', () => {
19751975
<div>server</div>
19761976
</body>
19771977
</html>
1978-
,
19791978
</>,
19801979
);
19811980
pipe(writable);
@@ -2243,7 +2242,7 @@ describe('ReactDOMFloat', () => {
22432242
);
22442243
});
22452244

2246-
// @gate enableFloat && enableHostSingletons
2245+
// @gate enableFloat && enableHostSingletons && enableClientRenderFallbackOnTextMismatch
22472246
it('retains styles even when a new html, head, and/body mount', async () => {
22482247
await actIntoEmptyDocument(() => {
22492248
const {pipe} = ReactDOMFizzServer.renderToPipeableStream(

packages/react-dom/src/__tests__/ReactDOMInReactServer-test.js

-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ describe('ReactDOMInReactServer', () => {
1515
jest.mock('react', () => require('react/react.shared-subset'));
1616
});
1717

18-
// @gate experimental && !www
1918
it('can require react-dom', () => {
2019
// In RSC this will be aliased.
2120
require('react');

packages/react-dom/src/__tests__/ReactWrongReturnPointer-test.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ function resolveMostRecentTextCache(text) {
153153

154154
const resolveText = resolveMostRecentTextCache;
155155

156-
// @gate enableCache
156+
// @gate enableLegacyCache
157157
// @gate enableSuspenseList
158158
test('regression (#20932): return pointer is correct before entering deleted tree', async () => {
159159
// Based on a production bug. Designed to trigger a very specific

packages/react-dom/src/client/ReactDOM.js

+2
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ import {
7676
} from 'react-dom-bindings/src/events/ReactDOMControlledComponent';
7777
import Internals from '../ReactDOMSharedInternals';
7878

79+
export {preinit, preload} from 'react-dom-bindings/src/shared/ReactDOMFloat';
80+
7981
setAttemptSynchronousHydration(attemptSynchronousHydration);
8082
setAttemptDiscreteHydration(attemptDiscreteHydration);
8183
setAttemptContinuousHydration(attemptContinuousHydration);

packages/react-dom/src/server/ReactDOMServerRenderingStub.js

+2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
* @flow
88
*/
99

10+
export {preinit, preload} from 'react-dom-bindings/src/shared/ReactDOMFloat';
11+
1012
export function createPortal() {
1113
throw new Error(
1214
'createPortal was called on the server. Portals are not currently' +

packages/react-reconciler/src/ReactFiberHooks.new.js

+12-3
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ import {
4040
enableUseHook,
4141
enableUseMemoCacheHook,
4242
enableUseEventHook,
43+
enableLegacyCache,
4344
} from 'shared/ReactFeatureFlags';
4445
import {
4546
REACT_CONTEXT_TYPE,
@@ -2357,9 +2358,17 @@ function refreshCache<T>(fiber: Fiber, seedKey: ?() => T, seedValue: T) {
23572358
// unmount that boundary before the refresh completes.
23582359
const seededCache = createCache();
23592360
if (seedKey !== null && seedKey !== undefined && root !== null) {
2360-
// Seed the cache with the value passed by the caller. This could be
2361-
// from a server mutation, or it could be a streaming response.
2362-
seededCache.data.set(seedKey, seedValue);
2361+
if (enableLegacyCache) {
2362+
// Seed the cache with the value passed by the caller. This could be
2363+
// from a server mutation, or it could be a streaming response.
2364+
seededCache.data.set(seedKey, seedValue);
2365+
} else {
2366+
if (__DEV__) {
2367+
console.error(
2368+
'The seed argument is not enabled outside experimental channels.',
2369+
);
2370+
}
2371+
}
23632372
}
23642373

23652374
const payload = {

packages/react-reconciler/src/ReactFiberHooks.old.js

+12-3
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ import {
4040
enableUseHook,
4141
enableUseMemoCacheHook,
4242
enableUseEventHook,
43+
enableLegacyCache,
4344
} from 'shared/ReactFeatureFlags';
4445
import {
4546
REACT_CONTEXT_TYPE,
@@ -2357,9 +2358,17 @@ function refreshCache<T>(fiber: Fiber, seedKey: ?() => T, seedValue: T) {
23572358
// unmount that boundary before the refresh completes.
23582359
const seededCache = createCache();
23592360
if (seedKey !== null && seedKey !== undefined && root !== null) {
2360-
// Seed the cache with the value passed by the caller. This could be
2361-
// from a server mutation, or it could be a streaming response.
2362-
seededCache.data.set(seedKey, seedValue);
2361+
if (enableLegacyCache) {
2362+
// Seed the cache with the value passed by the caller. This could be
2363+
// from a server mutation, or it could be a streaming response.
2364+
seededCache.data.set(seedKey, seedValue);
2365+
} else {
2366+
if (__DEV__) {
2367+
console.error(
2368+
'The seed argument is not enabled outside experimental channels.',
2369+
);
2370+
}
2371+
}
23632372
}
23642373

23652374
const payload = {

packages/react-reconciler/src/__tests__/ReactActWarnings-test.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,7 @@ describe('act warnings', () => {
292292
});
293293

294294
// @gate __DEV__
295-
// @gate enableCache
295+
// @gate enableLegacyCache
296296
test('warns if Suspense retry is not wrapped', () => {
297297
function App() {
298298
return (
@@ -322,7 +322,7 @@ describe('act warnings', () => {
322322
});
323323

324324
// @gate __DEV__
325-
// @gate enableCache
325+
// @gate enableLegacyCache
326326
test('warns if Suspense ping is not wrapped', () => {
327327
function App({showMore}) {
328328
return (

0 commit comments

Comments
 (0)