@samitouri / QOS-React / commits / b2382a7150

Add ReactDOM.unstable_renderSubtreeIntoContainer warning flag (#17936)

Dominic Gannaway committed Jan 30, 2020 at 11:56 UTC b2382a71503595288a63050d1c71ff0be6650d6f
9 files changed +26 -9
packages/react-dom/src/__tests__/renderSubtreeIntoContainer-test.js
+12 -8
@@ -56,14 +56,18 @@ if (ReactFeatureFlags.disableUnstableRenderSubtreeIntoContainer) {
56 }
57
58 componentDidMount() {
59 - expect(
60 - function() {
61 - renderSubtreeIntoContainer(this, <Component />, portal);
62 - }.bind(this),
63 - ).toWarnDev(
64 - 'ReactDOM.unstable_renderSubtreeIntoContainer() is deprecated and ' +
65 - 'will be removed in a future major release. Consider using React Portals instead.',
66 - );
59 + if (ReactFeatureFlags.warnUnstableRenderSubtreeIntoContainer) {
60 + expect(
61 + function() {
62 + renderSubtreeIntoContainer(this, <Component />, portal);
63 + }.bind(this),
64 + ).toWarnDev(
65 + 'ReactDOM.unstable_renderSubtreeIntoContainer() is deprecated and ' +
66 + 'will be removed in a future major release. Consider using React Portals instead.',
67 + );
68 + } else {
69 + renderSubtreeIntoContainer(this, <Component />, portal);
70 + }
71 }
72 }
73
packages/react-dom/src/client/ReactDOM.js
+5 -1
@@ -57,6 +57,7 @@ import {
57 exposeConcurrentModeAPIs,
58 disableUnstableCreatePortal,
59 disableUnstableRenderSubtreeIntoContainer,
60 + warnUnstableRenderSubtreeIntoContainer,
61 } from 'shared/ReactFeatureFlags';
62
63 import {
@@ -179,7 +180,10 @@ if (exposeConcurrentModeAPIs) {
180 if (!disableUnstableRenderSubtreeIntoContainer) {
181 ReactDOM.unstable_renderSubtreeIntoContainer = function(...args) {
182 if (__DEV__) {
182 - if (!didWarnAboutUnstableRenderSubtreeIntoContainer) {
183 + if (
184 + warnUnstableRenderSubtreeIntoContainer &&
185 + !didWarnAboutUnstableRenderSubtreeIntoContainer
186 + ) {
187 didWarnAboutUnstableRenderSubtreeIntoContainer = true;
188 console.warn(
189 'ReactDOM.unstable_renderSubtreeIntoContainer() is deprecated ' +
packages/shared/ReactFeatureFlags.js
+2
@@ -111,6 +111,8 @@ export const disableTextareaChildren = false;
111
112 // Disables ReactDOM.unstable_renderSubtreeIntoContainer
113 export const disableUnstableRenderSubtreeIntoContainer = false;
114 +// We should remove this flag once the above flag becomes enabled
115 +export const warnUnstableRenderSubtreeIntoContainer = false;
116
117 // Disables ReactDOM.unstable_createPortal
118 export const disableUnstableCreatePortal = false;
packages/shared/forks/ReactFeatureFlags.native-fb.js
+1
@@ -48,6 +48,7 @@ export const enableTrustedTypesIntegration = false;
48 export const disableCreateFactory = false;
49 export const disableTextareaChildren = false;
50 export const disableUnstableRenderSubtreeIntoContainer = false;
51 +export const warnUnstableRenderSubtreeIntoContainer = false;
52 export const disableUnstableCreatePortal = false;
53
54 // Only used in www builds.
packages/shared/forks/ReactFeatureFlags.native-oss.js
+1
@@ -43,6 +43,7 @@ export const enableNativeTargetAsInstance = false;
43 export const disableCreateFactory = false;
44 export const disableTextareaChildren = false;
45 export const disableUnstableRenderSubtreeIntoContainer = false;
46 +export const warnUnstableRenderSubtreeIntoContainer = false;
47 export const disableUnstableCreatePortal = false;
48
49 // Only used in www builds.
packages/shared/forks/ReactFeatureFlags.persistent.js
+1
@@ -43,6 +43,7 @@ export const enableNativeTargetAsInstance = false;
43 export const disableCreateFactory = false;
44 export const disableTextareaChildren = false;
45 export const disableUnstableRenderSubtreeIntoContainer = false;
46 +export const warnUnstableRenderSubtreeIntoContainer = false;
47 export const disableUnstableCreatePortal = false;
48
49 // Only used in www builds.
packages/shared/forks/ReactFeatureFlags.test-renderer.js
+1
@@ -43,6 +43,7 @@ export const enableNativeTargetAsInstance = false;
43 export const disableCreateFactory = false;
44 export const disableTextareaChildren = false;
45 export const disableUnstableRenderSubtreeIntoContainer = false;
46 +export const warnUnstableRenderSubtreeIntoContainer = false;
47 export const disableUnstableCreatePortal = false;
48
49 // Only used in www builds.
packages/shared/forks/ReactFeatureFlags.test-renderer.www.js
+1
@@ -41,6 +41,7 @@ export const enableNativeTargetAsInstance = false;
41 export const disableCreateFactory = false;
42 export const disableTextareaChildren = false;
43 export const disableUnstableRenderSubtreeIntoContainer = false;
44 +export const warnUnstableRenderSubtreeIntoContainer = false;
45 export const disableUnstableCreatePortal = false;
46
47 // Only used in www builds.
packages/shared/forks/ReactFeatureFlags.www.js
+2
@@ -97,6 +97,8 @@ export const disableTextareaChildren = false;
97
98 export const disableUnstableRenderSubtreeIntoContainer = false;
99
100 +export const warnUnstableRenderSubtreeIntoContainer = false;
101 +
102 export const disableUnstableCreatePortal = false;
103
104 // Flow magic to verify the exports of this file match the original version.