Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit c47f593

Browse files
authored
Move SuspenseList to experimental package (facebook#17130)
Also moves `withSuspenseConfig`
1 parent 685ed56 commit c47f593

9 files changed

+47
-9
lines changed

packages/react-dom/src/__tests__/ReactDOMServerPartialHydration-test.internal.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ describe('ReactDOMServerPartialHydration', () => {
8585
ReactDOMServer = require('react-dom/server');
8686
Scheduler = require('scheduler');
8787
Suspense = React.Suspense;
88-
SuspenseList = React.unstable_SuspenseList;
88+
SuspenseList = React.SuspenseList;
8989

9090
useHover = require('react-interactions/events/hover').useHover;
9191
});

packages/react-dom/src/__tests__/ReactDOMServerSuspense-test.internal.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,14 +107,14 @@ describe('ReactDOMServerSuspense', () => {
107107

108108
it('server renders a SuspenseList component and its children', async () => {
109109
const example = (
110-
<React.unstable_SuspenseList>
110+
<React.SuspenseList>
111111
<React.Suspense fallback="Loading A">
112112
<div>A</div>
113113
</React.Suspense>
114114
<React.Suspense fallback="Loading B">
115115
<div>B</div>
116116
</React.Suspense>
117-
</React.unstable_SuspenseList>
117+
</React.SuspenseList>
118118
);
119119
const element = await serverRender(example);
120120
const parent = element.parentNode;

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -724,7 +724,7 @@ function runActTests(label, render, unmount, rerender) {
724724
});
725725

726726
describe('suspense', () => {
727-
if (__DEV__) {
727+
if (__DEV__ && __EXPERIMENTAL__) {
728728
it('triggers fallbacks if available', async () => {
729729
let resolved = false;
730730
let resolve;

packages/react-reconciler/src/__tests__/ReactSuspenseList-test.internal.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@ let Suspense;
66
let SuspenseList;
77

88
describe('ReactSuspenseList', () => {
9+
if (!__EXPERIMENTAL__) {
10+
it("empty test so Jest doesn't complain", () => {});
11+
return;
12+
}
13+
914
beforeEach(() => {
1015
jest.resetModules();
1116
ReactFeatureFlags = require('shared/ReactFeatureFlags');
@@ -16,7 +21,7 @@ describe('ReactSuspenseList', () => {
1621
ReactNoop = require('react-noop-renderer');
1722
Scheduler = require('scheduler');
1823
Suspense = React.Suspense;
19-
SuspenseList = React.unstable_SuspenseList;
24+
SuspenseList = React.SuspenseList;
2025
});
2126

2227
function Text(props) {

packages/react-reconciler/src/__tests__/ReactSuspenseWithNoopRenderer-test.internal.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@ let TextResource;
1010
let textResourceShouldFail;
1111

1212
describe('ReactSuspenseWithNoopRenderer', () => {
13+
if (!__EXPERIMENTAL__) {
14+
it("empty test so Jest doesn't complain", () => {});
15+
return;
16+
}
17+
1318
beforeEach(() => {
1419
jest.resetModules();
1520
ReactFeatureFlags = require('shared/ReactFeatureFlags');

packages/react/index.fb.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
/**
2+
* Copyright (c) Facebook, Inc. and its affiliates.
3+
*
4+
* This source code is licensed under the MIT license found in the
5+
* LICENSE file in the root directory of this source tree.
6+
*/
7+
8+
'use strict';
9+
10+
const ReactFB = require('./src/ReactFB');
11+
12+
// TODO: decide on the top-level export form.
13+
// This is hacky but makes it work with both Rollup and Jest.
14+
module.exports = ReactFB.default || ReactFB;

packages/react/src/React.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,6 @@ const React = {
9696
Profiler: REACT_PROFILER_TYPE,
9797
StrictMode: REACT_STRICT_MODE_TYPE,
9898
Suspense: REACT_SUSPENSE_TYPE,
99-
unstable_SuspenseList: REACT_SUSPENSE_LIST_TYPE,
10099

101100
createElement: __DEV__ ? createElementWithValidation : createElement,
102101
cloneElement: __DEV__ ? cloneElementWithValidation : cloneElement,
@@ -105,14 +104,14 @@ const React = {
105104

106105
version: ReactVersion,
107106

108-
unstable_withSuspenseConfig: withSuspenseConfig,
109-
110107
__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: ReactSharedInternals,
111108
};
112109

113110
if (exposeConcurrentModeAPIs) {
114111
React.useTransition = useTransition;
115112
React.useDeferredValue = useDeferredValue;
113+
React.SuspenseList = REACT_SUSPENSE_LIST_TYPE;
114+
React.unstable_withSuspenseConfig = withSuspenseConfig;
116115
}
117116

118117
if (enableFlareAPI) {

packages/react/src/ReactFB.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
/**
2+
* Copyright (c) Facebook, Inc. and its affiliates.
3+
*
4+
* This source code is licensed under the MIT license found in the
5+
* LICENSE file in the root directory of this source tree.
6+
*
7+
* @flow
8+
*/
9+
10+
import React from './React';
11+
12+
// TODO: Temporary alias until we update the callers downstream.
13+
React.unstable_SuspenseList = React.SuspenseList;
14+
15+
export default React;

packages/react/src/__tests__/ReactDOMTracing-test.internal.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -523,7 +523,7 @@ describe('ReactDOMTracing', () => {
523523
});
524524

525525
it('should properly trace interactions through a multi-pass SuspenseList render', () => {
526-
const SuspenseList = React.unstable_SuspenseList;
526+
const SuspenseList = React.SuspenseList;
527527
const Suspense = React.Suspense;
528528
function Text({text}) {
529529
Scheduler.unstable_yieldValue(text);

0 commit comments

Comments
 (0)