mirror of
https://github.com/facebook/react.git
synced 2026-02-23 20:23:02 +00:00
57 lines
1.5 KiB
JavaScript
57 lines
1.5 KiB
JavaScript
/** @flow */
|
|
|
|
// This test harness mounts each test app as a separate root to test multi-root applications.
|
|
|
|
import { createElement } from 'react';
|
|
import {
|
|
// $FlowFixMe Flow does not yet know about createRoot()
|
|
unstable_createRoot as createRoot,
|
|
} from 'react-dom';
|
|
import DeeplyNestedComponents from './DeeplyNestedComponents';
|
|
import EditableProps from './EditableProps';
|
|
import ElementTypes from './ElementTypes';
|
|
import Hydration from './Hydration';
|
|
import InspectableElements from './InspectableElements';
|
|
import InteractionTracing from './InteractionTracing';
|
|
import PriorityLevels from './PriorityLevels';
|
|
import ToDoList from './ToDoList';
|
|
import Toggle from './Toggle';
|
|
import SuspenseTree from './SuspenseTree';
|
|
|
|
import './styles.css';
|
|
|
|
const roots = [];
|
|
|
|
function mountHelper(App) {
|
|
const container = document.createElement('div');
|
|
|
|
((document.body: any): HTMLBodyElement).appendChild(container);
|
|
|
|
const root = createRoot(container);
|
|
root.render(createElement(App));
|
|
|
|
roots.push(root);
|
|
}
|
|
|
|
function mountTestApp() {
|
|
mountHelper(ToDoList);
|
|
mountHelper(InteractionTracing);
|
|
mountHelper(InspectableElements);
|
|
mountHelper(Hydration);
|
|
mountHelper(ElementTypes);
|
|
mountHelper(EditableProps);
|
|
mountHelper(PriorityLevels);
|
|
mountHelper(Toggle);
|
|
mountHelper(SuspenseTree);
|
|
mountHelper(DeeplyNestedComponents);
|
|
}
|
|
|
|
function unmountTestApp() {
|
|
roots.forEach(root => root.unmount());
|
|
}
|
|
|
|
mountTestApp();
|
|
|
|
window.parent.mountTestApp = mountTestApp;
|
|
window.parent.unmountTestApp = unmountTestApp;
|