@samitouri / QOS-React-2 / commits / 1e35f2b282

Put createRoot export under a feature flag (#11426)

Clement Hoang committed Nov 2, 2017 at 15:21 UTC 1e35f2b282a20b41000e6b048fa5a16e147d930b
4 files changed +16 -6
packages/react-cs-renderer/src/ReactNativeCSFeatureFlags.js
+1
@@ -13,6 +13,7 @@ var ReactNativeCSFeatureFlags: FeatureFlags = {
13 enableAsyncSubtreeAPI: true,
14 enableAsyncSchedulingByDefaultInReactDOM: false,
15 enableReactFragment: false,
16 + enableCreateRoot: false,
17 // React Native CS uses persistent reconciler.
18 enableMutatingReconciler: false,
19 enableNoopReconciler: false,
packages/react-dom/src/__tests__/ReactDOMRoot-test.js
+1
@@ -9,6 +9,7 @@
9
10 'use strict';
11
12 +require('shared/ReactFeatureFlags').enableCreateRoot = true;
13 var React = require('react');
14 var ReactDOM = require('react-dom');
15 var ReactDOMServer = require('react-dom/server');
packages/react-dom/src/client/ReactDOM.js
+11 -6
@@ -787,12 +787,7 @@ ReactRoot.prototype.unmount = function(callback) {
787 DOMRenderer.updateContainer(null, root, null, callback);
788 };
789
790 -var ReactDOM = {
791 - createRoot(container: DOMContainer, options?: RootOptions): ReactRootNode {
792 - const hydrate = options != null && options.hydrate === true;
793 - return new ReactRoot(container, hydrate);
794 - },
795 -
790 +var ReactDOM: Object = {
791 createPortal,
792
793 findDOMNode(
@@ -952,6 +947,16 @@ var ReactDOM = {
947 },
948 };
949
950 +if (ReactFeatureFlags.enableCreateRoot) {
951 + ReactDOM.createRoot = function createRoot(
952 + container: DOMContainer,
953 + options?: RootOptions,
954 + ): ReactRootNode {
955 + const hydrate = options != null && options.hydrate === true;
956 + return new ReactRoot(container, hydrate);
957 + };
958 +}
959 +
960 const foundDevTools = injectInternals({
961 findFiberByHostInstance: ReactDOMComponentTree.getClosestInstanceFromNode,
962 findHostInstanceByFiber: DOMRenderer.findHostInstance,
packages/shared/ReactFeatureFlags.js
+3
@@ -14,6 +14,7 @@ export type FeatureFlags = {|
14 enableNoopReconciler: boolean,
15 enablePersistentReconciler: boolean,
16 enableReactFragment: boolean,
17 + enableCreateRoot: boolean,
18 |};
19
20 var ReactFeatureFlags: FeatureFlags = {
@@ -27,6 +28,8 @@ var ReactFeatureFlags: FeatureFlags = {
28 enablePersistentReconciler: false,
29 // Exports React.Fragment
30 enableReactFragment: false,
31 + // Exports ReactDOM.createRoot
32 + enableCreateRoot: false,
33 };
34
35 if (__DEV__) {