mirror of
https://github.com/facebook/react.git
synced 2025-11-01 09:12:30 +00:00
54e88ed12c
* Re-land recent flushSync changes Adds back #21776 and #21775, which were removed due to an internal e2e test failure. Will attempt to fix in subsequent commits. * Failing test: Legacy mode sync passive effects In concurrent roots, if a render is synchronous, we flush its passive effects synchronously. In legacy roots, we don't do this because all updates are synchronous — so we need to flush at the beginning of the next event. This is how `discreteUpdates` worked. * Flush legacy passive effects at beginning of event Fixes test added in previous commit.
56 lines
1.3 KiB
JavaScript
56 lines
1.3 KiB
JavaScript
/**
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*
|
|
* @flow
|
|
*/
|
|
|
|
/**
|
|
* This is a renderer of React that doesn't have a render target output.
|
|
* It is useful to demonstrate the internals of the reconciler in isolation
|
|
* and for testing semantics of reconciliation separate from the host
|
|
* environment.
|
|
*/
|
|
|
|
import ReactFiberReconciler from 'react-reconciler';
|
|
import createReactNoop from './createReactNoop';
|
|
|
|
export const {
|
|
_Scheduler,
|
|
getChildren,
|
|
getPendingChildren,
|
|
getOrCreateRootContainer,
|
|
createRoot,
|
|
createLegacyRoot,
|
|
getChildrenAsJSX,
|
|
getPendingChildrenAsJSX,
|
|
createPortal,
|
|
render,
|
|
renderLegacySyncRoot,
|
|
renderToRootWithID,
|
|
unmountRootWithID,
|
|
findInstance,
|
|
flushNextYield,
|
|
flushWithHostCounters,
|
|
expire,
|
|
flushExpired,
|
|
batchedUpdates,
|
|
deferredUpdates,
|
|
discreteUpdates,
|
|
idleUpdates,
|
|
flushDiscreteUpdates,
|
|
flushSync,
|
|
flushPassiveEffects,
|
|
act,
|
|
dumpTree,
|
|
getRoot,
|
|
// TODO: Remove this once callers migrate to alternatives.
|
|
// This should only be used by React internals.
|
|
unstable_runWithPriority,
|
|
} = createReactNoop(
|
|
ReactFiberReconciler, // reconciler
|
|
false, // useMutation
|
|
);
|