From d2efafdb8243ffe400a115916cfc2669dfcc1428 Mon Sep 17 00:00:00 2001 From: Sebastian Markbage Date: Tue, 13 Apr 2021 23:37:02 -0400 Subject: [PATCH] Add Scope Component --- packages/react-server/src/ReactFizzServer.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/packages/react-server/src/ReactFizzServer.js b/packages/react-server/src/ReactFizzServer.js index b17885b6de9c5..69632828cf34d 100644 --- a/packages/react-server/src/ReactFizzServer.js +++ b/packages/react-server/src/ReactFizzServer.js @@ -92,12 +92,14 @@ import { REACT_MEMO_TYPE, REACT_PROVIDER_TYPE, REACT_CONTEXT_TYPE, + REACT_SCOPE_TYPE, } from 'shared/ReactSymbols'; import ReactSharedInternals from 'shared/ReactSharedInternals'; import { disableLegacyContext, disableModulePatternComponents, warnAboutDefaultPropsOnFunctionComponents, + enableScopeAPI, } from 'shared/ReactFeatureFlags'; import getComponentNameFromType from 'shared/getComponentNameFromType'; @@ -888,6 +890,14 @@ function renderElement( renderNodeDestructive(request, task, props.children); return; } + case REACT_SCOPE_TYPE: { + if (enableScopeAPI) { + renderNodeDestructive(request, task, props.children); + return; + } + invariant(false, 'ReactDOMServer does not yet support scope components.'); + } + // eslint-disable-next-line-no-fallthrough case REACT_SUSPENSE_TYPE: { renderSuspenseBoundary(request, task, props); return; @@ -991,6 +1001,7 @@ function renderNodeDestructive( 'Portals are not currently supported by the server renderer. ' + 'Render them conditionally so that they only appear on the client render.', ); + // eslint-disable-next-line-no-fallthrough case REACT_LAZY_TYPE: throw new Error('Not yet implemented node type.'); }