88 */
99
1010import type { AnyNativeEvent } from '../events/PluginModuleType' ;
11- import type { FiberRoot } from 'react-reconciler/src/ReactInternalTypes' ;
11+ import type {
12+ FiberRoot ,
13+ ReactPriorityLevel ,
14+ } from 'react-reconciler/src/ReactInternalTypes' ;
1215import type { Container , SuspenseInstance } from '../client/ReactDOMHostConfig' ;
1316import type { DOMEventName } from '../events/DOMEventNames' ;
1417
@@ -50,18 +53,27 @@ import {
5053 DefaultLanePriority as DefaultLanePriority_old ,
5154 getCurrentUpdateLanePriority as getCurrentUpdateLanePriority_old ,
5255 setCurrentUpdateLanePriority as setCurrentUpdateLanePriority_old ,
53- schedulerPriorityToLanePriority as schedulerPriorityToLanePriority_old ,
5456} from 'react-reconciler/src/ReactFiberLane.old' ;
5557import {
5658 InputDiscreteLanePriority as InputDiscreteLanePriority_new ,
5759 InputContinuousLanePriority as InputContinuousLanePriority_new ,
5860 DefaultLanePriority as DefaultLanePriority_new ,
5961 getCurrentUpdateLanePriority as getCurrentUpdateLanePriority_new ,
6062 setCurrentUpdateLanePriority as setCurrentUpdateLanePriority_new ,
61- schedulerPriorityToLanePriority as schedulerPriorityToLanePriority_new ,
63+ SyncLanePriority ,
64+ IdleLanePriority ,
65+ NoLanePriority ,
6266} from 'react-reconciler/src/ReactFiberLane.new' ;
6367import { getCurrentPriorityLevel as getCurrentPriorityLevel_old } from 'react-reconciler/src/SchedulerWithReactIntegration.old' ;
64- import { getCurrentPriorityLevel as getCurrentPriorityLevel_new } from 'react-reconciler/src/SchedulerWithReactIntegration.new' ;
68+ import {
69+ getCurrentPriorityLevel as getCurrentPriorityLevel_new ,
70+ IdlePriority as IdleSchedulerPriority ,
71+ ImmediatePriority as ImmediateSchedulerPriority ,
72+ LowPriority as LowSchedulerPriority ,
73+ NormalPriority as NormalSchedulerPriority ,
74+ UserBlockingPriority as UserBlockingSchedulerPriority ,
75+ } from 'react-reconciler/src/SchedulerWithReactIntegration.new' ;
76+ import type { LanePriority } from 'react-reconciler/src/ReactFiberLane.new' ;
6577
6678const InputDiscreteLanePriority = enableNewReconciler
6779 ? InputDiscreteLanePriority_new
@@ -78,13 +90,29 @@ const getCurrentUpdateLanePriority = enableNewReconciler
7890const setCurrentUpdateLanePriority = enableNewReconciler
7991 ? setCurrentUpdateLanePriority_new
8092 : setCurrentUpdateLanePriority_old ;
81- const schedulerPriorityToLanePriority = enableNewReconciler
82- ? schedulerPriorityToLanePriority_new
83- : schedulerPriorityToLanePriority_old ;
8493const getCurrentPriorityLevel = enableNewReconciler
8594 ? getCurrentPriorityLevel_new
8695 : getCurrentPriorityLevel_old ;
8796
97+ function schedulerPriorityToLanePriority (
98+ schedulerPriorityLevel : ReactPriorityLevel ,
99+ ) : LanePriority {
100+ switch ( schedulerPriorityLevel ) {
101+ case ImmediateSchedulerPriority :
102+ return SyncLanePriority ;
103+ case UserBlockingSchedulerPriority :
104+ return InputContinuousLanePriority ;
105+ case NormalSchedulerPriority :
106+ case LowSchedulerPriority :
107+ // TODO: Handle LowSchedulerPriority, somehow. Maybe the same lane as hydration.
108+ return DefaultLanePriority ;
109+ case IdleSchedulerPriority :
110+ return IdleLanePriority ;
111+ default :
112+ return NoLanePriority ;
113+ }
114+ }
115+
88116// TODO: can we stop exporting these?
89117export let _enabled = true ;
90118
@@ -410,8 +438,6 @@ export function getEventPriority(domEventName: DOMEventName): * {
410438 // Eventually this mechanism will be replaced by a check
411439 // of the current priority on the native scheduler.
412440 const schedulerPriority = getCurrentPriorityLevel ( ) ;
413- // TODO: Inline schedulerPriorityToLanePriority into this file
414- // when we delete the enableNativeEventPriorityInference flag.
415441 return schedulerPriorityToLanePriority ( schedulerPriority ) ;
416442 }
417443 default :
0 commit comments