diff --git a/packages/react-dom/src/client/ReactDOM.js b/packages/react-dom/src/client/ReactDOM.js index d257ac9679863..a3639e2109e50 100644 --- a/packages/react-dom/src/client/ReactDOM.js +++ b/packages/react-dom/src/client/ReactDOM.js @@ -21,7 +21,7 @@ import './ReactDOMClientInjection'; import ReactFiberReconciler from 'react-reconciler'; // TODO: direct imports like some-package/src/* are bad. Fix me. -import * as ReactPortal from 'react-reconciler/src/ReactPortal'; +import * as ReactPortal from 'shared/ReactPortal'; import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment'; import * as ReactGenericBatching from 'events/ReactGenericBatching'; import * as ReactControlledComponent from 'events/ReactControlledComponent'; diff --git a/packages/react-native-renderer/src/ReactNativeRenderer.js b/packages/react-native-renderer/src/ReactNativeRenderer.js index 89ec15c3c0488..792bca955f329 100644 --- a/packages/react-native-renderer/src/ReactNativeRenderer.js +++ b/packages/react-native-renderer/src/ReactNativeRenderer.js @@ -12,7 +12,7 @@ import type {ReactNodeList} from 'shared/ReactTypes'; import './ReactNativeInjection'; -import * as ReactPortal from 'react-reconciler/src/ReactPortal'; +import * as ReactPortal from 'shared/ReactPortal'; import * as ReactGenericBatching from 'events/ReactGenericBatching'; import TouchHistoryMath from 'events/TouchHistoryMath'; import * as ReactGlobalSharedState from 'shared/ReactGlobalSharedState'; diff --git a/packages/react-noop-renderer/src/ReactNoop.js b/packages/react-noop-renderer/src/ReactNoop.js index f472da3a975d0..ab778ddbce658 100644 --- a/packages/react-noop-renderer/src/ReactNoop.js +++ b/packages/react-noop-renderer/src/ReactNoop.js @@ -16,10 +16,11 @@ import type {Fiber} from 'react-reconciler/src/ReactFiber'; import type {UpdateQueue} from 'react-reconciler/src/ReactFiberUpdateQueue'; - +import type {ReactNodeList} from 'shared/ReactTypes'; import ReactFiberReconciler from 'react-reconciler'; import {enablePersistentReconciler} from 'shared/ReactFeatureFlags'; import * as ReactInstanceMap from 'shared/ReactInstanceMap'; +import * as ReactPortal from 'shared/ReactPortal'; import emptyObject from 'fbjs/lib/emptyObject'; import expect from 'expect'; @@ -318,6 +319,14 @@ var ReactNoop = { } }, + createPortal( + children: ReactNodeList, + container: Container, + key: ?string = null, + ) { + return ReactPortal.createPortal(children, container, null, key); + }, + // Shortcut for testing a single root render(element: React$Element, callback: ?Function) { ReactNoop.renderToRootWithID(element, DEFAULT_ROOT_ID, callback); diff --git a/packages/react-reconciler/src/__tests__/ReactIncrementalPerf-test.internal.js b/packages/react-reconciler/src/__tests__/ReactIncrementalPerf-test.internal.js index 8738e14c68638..e1e21dc2fc096 100644 --- a/packages/react-reconciler/src/__tests__/ReactIncrementalPerf-test.internal.js +++ b/packages/react-reconciler/src/__tests__/ReactIncrementalPerf-test.internal.js @@ -13,7 +13,6 @@ describe('ReactDebugFiberPerf', () => { let React; let ReactCallReturn; let ReactNoop; - let ReactPortal; let PropTypes; let root; @@ -121,8 +120,6 @@ describe('ReactDebugFiberPerf', () => { React = require('react'); ReactNoop = require('react-noop-renderer'); ReactCallReturn = require('react-call-return'); - // TODO: can we express this test with only public API? - ReactPortal = require('../ReactPortal'); PropTypes = require('prop-types'); }); @@ -514,9 +511,7 @@ describe('ReactDebugFiberPerf', () => { it('supports portals', () => { const noopContainer = {children: []}; ReactNoop.render( - - {ReactPortal.createPortal(, noopContainer, null)} - , + {ReactNoop.createPortal(, noopContainer, null)}, ); ReactNoop.flush(); expect(getFlameChart()).toMatchSnapshot(); diff --git a/packages/react-reconciler/src/__tests__/ReactPersistent-test.internal.js b/packages/react-reconciler/src/__tests__/ReactPersistent-test.internal.js index 48e7b646ff9d2..bba8cde849b9d 100644 --- a/packages/react-reconciler/src/__tests__/ReactPersistent-test.internal.js +++ b/packages/react-reconciler/src/__tests__/ReactPersistent-test.internal.js @@ -24,7 +24,7 @@ describe('ReactPersistent', () => { React = require('react'); ReactNoop = require('react-noop-renderer'); - ReactPortal = require('../ReactPortal'); + ReactPortal = require('shared/ReactPortal'); }); const DEFAULT_ROOT_ID = 'persistent-test'; diff --git a/packages/react-rt-renderer/src/ReactNativeRT.js b/packages/react-rt-renderer/src/ReactNativeRT.js index 97598139838ca..5b72f15fdee6a 100644 --- a/packages/react-rt-renderer/src/ReactNativeRT.js +++ b/packages/react-rt-renderer/src/ReactNativeRT.js @@ -19,7 +19,7 @@ import type {ReactNodeList} from 'shared/ReactTypes'; import 'InitializeCore'; import './ReactNativeRTEventEmitter'; -import * as ReactPortal from 'react-reconciler/src/ReactPortal'; +import * as ReactPortal from 'shared/ReactPortal'; import * as ReactGenericBatching from 'events/ReactGenericBatching'; import ReactVersion from 'shared/ReactVersion'; diff --git a/packages/react-reconciler/src/ReactPortal.js b/packages/shared/ReactPortal.js similarity index 100% rename from packages/react-reconciler/src/ReactPortal.js rename to packages/shared/ReactPortal.js