From 8dea154f14550a8c8475caa4452cf6448947a4da Mon Sep 17 00:00:00 2001 From: Andrew Clark Date: Fri, 6 Mar 2020 10:37:54 -0800 Subject: [PATCH] Failing: Dropped effects in Legacy Mode Suspense --- packages/react-noop-renderer/src/ReactNoop.js | 1 + .../src/createReactNoop.js | 26 +++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/packages/react-noop-renderer/src/ReactNoop.js b/packages/react-noop-renderer/src/ReactNoop.js index eb9c8468bcb34..e463b77aa9b1a 100644 --- a/packages/react-noop-renderer/src/ReactNoop.js +++ b/packages/react-noop-renderer/src/ReactNoop.js @@ -24,6 +24,7 @@ export const { getOrCreateRootContainer, createRoot, createBlockingRoot, + createLegacyRoot, getChildrenAsJSX, getPendingChildrenAsJSX, createPortal, diff --git a/packages/react-noop-renderer/src/createReactNoop.js b/packages/react-noop-renderer/src/createReactNoop.js index 9987343b90f3b..7233f7976409a 100644 --- a/packages/react-noop-renderer/src/createReactNoop.js +++ b/packages/react-noop-renderer/src/createReactNoop.js @@ -785,6 +785,32 @@ function createReactNoop(reconciler: Function, useMutation: boolean) { }; }, + createLegacyRoot() { + const container = { + rootID: '' + idCounter++, + pendingChildren: [], + children: [], + }; + const fiberRoot = NoopRenderer.createContainer( + container, + LegacyRoot, + false, + null, + ); + return { + _Scheduler: Scheduler, + render(children: ReactNodeList) { + NoopRenderer.updateContainer(children, fiberRoot, null, null); + }, + getChildren() { + return getChildren(container); + }, + getChildrenAsJSX() { + return getChildrenAsJSX(container); + }, + }; + }, + getChildrenAsJSX(rootID: string = DEFAULT_ROOT_ID) { const container = rootContainers.get(rootID); return getChildrenAsJSX(container);