From 562cf013dbd80cade517e25192ee19e958aef55b Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Fri, 6 Mar 2020 18:46:32 +0000 Subject: [PATCH] Add a flag to disable module pattern components (#18133) --- packages/react-reconciler/src/ReactFiberBeginWork.js | 2 ++ packages/shared/ReactFeatureFlags.js | 2 ++ packages/shared/forks/ReactFeatureFlags.native-fb.js | 1 + packages/shared/forks/ReactFeatureFlags.native-oss.js | 1 + packages/shared/forks/ReactFeatureFlags.persistent.js | 1 + packages/shared/forks/ReactFeatureFlags.test-renderer.js | 1 + packages/shared/forks/ReactFeatureFlags.test-renderer.www.js | 1 + packages/shared/forks/ReactFeatureFlags.testing.js | 1 + packages/shared/forks/ReactFeatureFlags.testing.www.js | 1 + packages/shared/forks/ReactFeatureFlags.www.js | 2 ++ 10 files changed, 13 insertions(+) diff --git a/packages/react-reconciler/src/ReactFiberBeginWork.js b/packages/react-reconciler/src/ReactFiberBeginWork.js index 4ccc3db66c..9e9a96299b 100644 --- a/packages/react-reconciler/src/ReactFiberBeginWork.js +++ b/packages/react-reconciler/src/ReactFiberBeginWork.js @@ -59,6 +59,7 @@ import ReactSharedInternals from 'shared/ReactSharedInternals'; import { debugRenderPhaseSideEffectsForStrictMode, disableLegacyContext, + disableModulePatternComponents, enableProfilerTimer, enableSchedulerTracing, enableSuspenseServerRenderer, @@ -1377,6 +1378,7 @@ function mountIndeterminateComponent( workInProgress.effectTag |= PerformedWork; if ( + !disableModulePatternComponents && typeof value === 'object' && value !== null && typeof value.render === 'function' && diff --git a/packages/shared/ReactFeatureFlags.js b/packages/shared/ReactFeatureFlags.js index e1e18251b3..6ae5572512 100644 --- a/packages/shared/ReactFeatureFlags.js +++ b/packages/shared/ReactFeatureFlags.js @@ -126,6 +126,8 @@ export const disableTextareaChildren = false; // Disables Maps as ReactElement children export const disableMapsAsChildren = false; +export const disableModulePatternComponents = false; + // We should remove this flag once the above flag becomes enabled export const warnUnstableRenderSubtreeIntoContainer = false; diff --git a/packages/shared/forks/ReactFeatureFlags.native-fb.js b/packages/shared/forks/ReactFeatureFlags.native-fb.js index 0c0746565a..4d81ea55a6 100644 --- a/packages/shared/forks/ReactFeatureFlags.native-fb.js +++ b/packages/shared/forks/ReactFeatureFlags.native-fb.js @@ -40,6 +40,7 @@ export const disableSchedulerTimeoutBasedOnReactExpirationTime = false; export const enableTrustedTypesIntegration = false; export const disableTextareaChildren = false; export const disableMapsAsChildren = false; +export const disableModulePatternComponents = false; export const warnUnstableRenderSubtreeIntoContainer = false; export const deferPassiveEffectCleanupDuringUnmount = false; export const runAllPassiveEffectDestroysBeforeCreates = false; diff --git a/packages/shared/forks/ReactFeatureFlags.native-oss.js b/packages/shared/forks/ReactFeatureFlags.native-oss.js index c09e125c2d..ccc6f66918 100644 --- a/packages/shared/forks/ReactFeatureFlags.native-oss.js +++ b/packages/shared/forks/ReactFeatureFlags.native-oss.js @@ -39,6 +39,7 @@ export const disableSchedulerTimeoutBasedOnReactExpirationTime = false; export const enableTrustedTypesIntegration = false; export const disableTextareaChildren = false; export const disableMapsAsChildren = false; +export const disableModulePatternComponents = false; export const warnUnstableRenderSubtreeIntoContainer = false; export const deferPassiveEffectCleanupDuringUnmount = false; export const runAllPassiveEffectDestroysBeforeCreates = false; diff --git a/packages/shared/forks/ReactFeatureFlags.persistent.js b/packages/shared/forks/ReactFeatureFlags.persistent.js index 84ecb560d9..68055d71fc 100644 --- a/packages/shared/forks/ReactFeatureFlags.persistent.js +++ b/packages/shared/forks/ReactFeatureFlags.persistent.js @@ -39,6 +39,7 @@ export const disableSchedulerTimeoutBasedOnReactExpirationTime = false; export const enableTrustedTypesIntegration = false; export const disableTextareaChildren = false; export const disableMapsAsChildren = false; +export const disableModulePatternComponents = false; export const warnUnstableRenderSubtreeIntoContainer = false; export const deferPassiveEffectCleanupDuringUnmount = false; export const runAllPassiveEffectDestroysBeforeCreates = false; diff --git a/packages/shared/forks/ReactFeatureFlags.test-renderer.js b/packages/shared/forks/ReactFeatureFlags.test-renderer.js index f818502f14..53ec9981ca 100644 --- a/packages/shared/forks/ReactFeatureFlags.test-renderer.js +++ b/packages/shared/forks/ReactFeatureFlags.test-renderer.js @@ -39,6 +39,7 @@ export const disableSchedulerTimeoutBasedOnReactExpirationTime = false; export const enableTrustedTypesIntegration = false; export const disableTextareaChildren = false; export const disableMapsAsChildren = false; +export const disableModulePatternComponents = false; export const warnUnstableRenderSubtreeIntoContainer = false; export const deferPassiveEffectCleanupDuringUnmount = false; export const runAllPassiveEffectDestroysBeforeCreates = false; diff --git a/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js b/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js index fda44eb118..44d6c9ff44 100644 --- a/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js +++ b/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js @@ -39,6 +39,7 @@ export const disableSchedulerTimeoutBasedOnReactExpirationTime = false; export const enableTrustedTypesIntegration = false; export const disableTextareaChildren = false; export const disableMapsAsChildren = false; +export const disableModulePatternComponents = false; export const warnUnstableRenderSubtreeIntoContainer = false; export const deferPassiveEffectCleanupDuringUnmount = false; export const runAllPassiveEffectDestroysBeforeCreates = false; diff --git a/packages/shared/forks/ReactFeatureFlags.testing.js b/packages/shared/forks/ReactFeatureFlags.testing.js index 3d5e42e9a2..162023a3b3 100644 --- a/packages/shared/forks/ReactFeatureFlags.testing.js +++ b/packages/shared/forks/ReactFeatureFlags.testing.js @@ -39,6 +39,7 @@ export const disableSchedulerTimeoutBasedOnReactExpirationTime = false; export const enableTrustedTypesIntegration = false; export const disableTextareaChildren = false; export const disableMapsAsChildren = false; +export const disableModulePatternComponents = false; export const warnUnstableRenderSubtreeIntoContainer = false; export const deferPassiveEffectCleanupDuringUnmount = false; export const runAllPassiveEffectDestroysBeforeCreates = false; diff --git a/packages/shared/forks/ReactFeatureFlags.testing.www.js b/packages/shared/forks/ReactFeatureFlags.testing.www.js index 155daeb593..11880b55f9 100644 --- a/packages/shared/forks/ReactFeatureFlags.testing.www.js +++ b/packages/shared/forks/ReactFeatureFlags.testing.www.js @@ -39,6 +39,7 @@ export const disableSchedulerTimeoutBasedOnReactExpirationTime = false; export const enableTrustedTypesIntegration = false; export const disableTextareaChildren = __EXPERIMENTAL__; export const disableMapsAsChildren = __EXPERIMENTAL__; +export const disableModulePatternComponents = false; export const warnUnstableRenderSubtreeIntoContainer = false; export const deferPassiveEffectCleanupDuringUnmount = false; export const runAllPassiveEffectDestroysBeforeCreates = false; diff --git a/packages/shared/forks/ReactFeatureFlags.www.js b/packages/shared/forks/ReactFeatureFlags.www.js index e9919256bc..7a25a14d8e 100644 --- a/packages/shared/forks/ReactFeatureFlags.www.js +++ b/packages/shared/forks/ReactFeatureFlags.www.js @@ -98,6 +98,8 @@ export const disableTextareaChildren = __EXPERIMENTAL__; export const disableMapsAsChildren = __EXPERIMENTAL__; +export const disableModulePatternComponents = __EXPERIMENTAL__; + export const warnUnstableRenderSubtreeIntoContainer = false; export const enableLegacyFBPrimerSupport = !__EXPERIMENTAL__;