Skip to content

Commit

Permalink
Inject reconciler functions to avoid importing src/
Browse files Browse the repository at this point in the history
  • Loading branch information
rickhanlonii committed Jul 6, 2020
1 parent 383eb73 commit 23eb05a
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 15 deletions.
5 changes: 5 additions & 0 deletions packages/react-dom/src/client/ReactDOM.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ import {
attemptContinuousHydration,
attemptHydrationAtCurrentPriority,
runWithPriority,
getCurrentUpdatePriority,
} from 'react-reconciler/src/ReactFiberReconciler';
import {createPortal as createPortalImpl} from 'react-reconciler/src/ReactPortal';
import {canUseDOM} from 'shared/ExecutionEnvironment';
Expand All @@ -59,6 +60,8 @@ import {
setAttemptContinuousHydration,
setAttemptHydrationAtCurrentPriority,
queueExplicitHydrationTarget,
setGetCurrentUpdatePriority,
setAttemptHydrationAtPriority,
} from '../events/ReactDOMEventReplaying';
import {setBatchingImplementation} from '../events/ReactDOMUpdateBatching';
import {
Expand All @@ -71,6 +74,8 @@ setAttemptSynchronousHydration(attemptSynchronousHydration);
setAttemptUserBlockingHydration(attemptUserBlockingHydration);
setAttemptContinuousHydration(attemptContinuousHydration);
setAttemptHydrationAtCurrentPriority(attemptHydrationAtCurrentPriority);
setGetCurrentUpdatePriority(getCurrentUpdatePriority);
setAttemptHydrationAtPriority(runWithPriority);

let didWarnAboutUnstableCreatePortal = false;
let didWarnAboutUnstableRenderSubtreeIntoContainer = false;
Expand Down
19 changes: 4 additions & 15 deletions packages/react-dom/src/events/ReactDOMEventReplaying.js
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,6 @@ import {
} from '../client/ReactDOMComponentTree';
import {unsafeCastDOMTopLevelTypeToString} from '../events/TopLevelEventTypes';
import {HostRoot, SuspenseComponent} from 'react-reconciler/src/ReactWorkTags';
import {
getCurrentUpdateLanePriority,
setCurrentUpdateLanePriority,
} from 'react-reconciler/src/ReactFiberLane';
import type {LanePriority} from 'react-reconciler/src/ReactFiberLane';

let attemptSynchronousHydration: (fiber: Object) => void;

Expand Down Expand Up @@ -173,7 +168,7 @@ type QueuedHydrationTarget = {|
blockedOn: null | Container | SuspenseInstance,
target: Node,
priority: number,
lanePriority: LanePriority,
lanePriority: ReactPriorityLevel,
|};
const queuedExplicitHydrationTargets: Array<QueuedHydrationTarget> = [];

Expand Down Expand Up @@ -535,17 +530,11 @@ function attemptExplicitHydrationTarget(
// We're blocked on hydrating this boundary.
// Increase its priority.
queuedTarget.blockedOn = instance;
const previousLanePriority = getCurrentUpdateLanePriority();
try {
setCurrentUpdateLanePriority(queuedTarget.lanePriority);

// TODO: Double wrapping is temporary while we remove Scheduler runWithPriority.
attemptHydrationAtPriority(queuedTarget.lanePriority, () => {
runWithPriority(queuedTarget.priority, () => {
attemptHydrationAtCurrentPriority(nearestMounted);
});
} finally {
setCurrentUpdateLanePriority(previousLanePriority);
}
});

return;
}
Expand All @@ -566,7 +555,7 @@ function attemptExplicitHydrationTarget(
export function queueExplicitHydrationTarget(target: Node): void {
if (enableSelectiveHydration) {
const schedulerPriority = getCurrentPriorityLevel();
const updateLanePriority = getCurrentUpdateLanePriority();
const updateLanePriority = getCurrentUpdatePriority();
const queuedTarget: QueuedHydrationTarget = {
blockedOn: null,
target: target,
Expand Down
5 changes: 5 additions & 0 deletions packages/react-reconciler/src/ReactFiberReconciler.js
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ import {
observeVisibleRects as observeVisibleRects_old,
registerMutableSourceForHydration as registerMutableSourceForHydration_old,
runWithPriority as runWithPriority_old,
getCurrentUpdatePriority as getCurrentUpdatePriority_old,
} from './ReactFiberReconciler.old';

import {
Expand Down Expand Up @@ -90,6 +91,7 @@ import {
observeVisibleRects as observeVisibleRects_new,
registerMutableSourceForHydration as registerMutableSourceForHydration_new,
runWithPriority as runWithPriority_new,
getCurrentUpdatePriority as getCurrentUpdatePriority_new,
} from './ReactFiberReconciler.new';

export const createContainer = enableNewReconciler
Expand Down Expand Up @@ -141,6 +143,9 @@ export const attemptContinuousHydration = enableNewReconciler
export const attemptHydrationAtCurrentPriority = enableNewReconciler
? attemptHydrationAtCurrentPriority_new
: attemptHydrationAtCurrentPriority_old;
export const getCurrentUpdatePriority = enableNewReconciler
? getCurrentUpdatePriority_new
: getCurrentUpdatePriority_old;
export const findHostInstance = enableNewReconciler
? findHostInstance_new
: findHostInstance_old;
Expand Down
5 changes: 5 additions & 0 deletions packages/react-reconciler/src/ReactFiberReconciler.new.js
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ import {
getCurrentUpdateLanePriority,
setCurrentUpdateLanePriority,
schedulerPriorityToLanePriority,
lanePriorityToSchedulerPriority,
} from './ReactFiberLane';
import {requestCurrentSuspenseConfig} from './ReactFiberSuspenseConfig';
import {
Expand Down Expand Up @@ -441,6 +442,10 @@ export function runWithPriority<T>(priority: ReactPriorityLevel, fn: () => T) {
}
}

export function getCurrentUpdatePriority(): ReactPriorityLevel {
return lanePriorityToSchedulerPriority(getCurrentUpdateLanePriority());
}

export {findHostInstance};

export {findHostInstanceWithWarning};
Expand Down
5 changes: 5 additions & 0 deletions packages/react-reconciler/src/ReactFiberReconciler.old.js
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ import {
getCurrentUpdateLanePriority,
setCurrentUpdateLanePriority,
schedulerPriorityToLanePriority,
lanePriorityToSchedulerPriority,
} from './ReactFiberLane';
import {requestCurrentSuspenseConfig} from './ReactFiberSuspenseConfig';
import {
Expand Down Expand Up @@ -441,6 +442,10 @@ export function runWithPriority<T>(priority: ReactPriorityLevel, fn: () => T) {
}
}

export function getCurrentUpdatePriority(): ReactPriorityLevel {
return lanePriorityToSchedulerPriority(getCurrentUpdateLanePriority());
}

export {findHostInstance};

export {findHostInstanceWithWarning};
Expand Down

0 comments on commit 23eb05a

Please sign in to comment.