@@ -2638,20 +2638,20 @@ function updateMemo<T>(
26382638 return nextValue ;
26392639}
26402640
2641- function mountDeferredValue < T > ( value : T ) : T {
2641+ function mountDeferredValue < T > ( value : T , initialValue ? : T ) : T {
26422642 const hook = mountWorkInProgressHook ( ) ;
26432643 hook . memoizedState = value ;
26442644 return value ;
26452645}
26462646
2647- function updateDeferredValue < T > ( value : T ) : T {
2647+ function updateDeferredValue < T > ( value : T , initialValue ? : T ) : T {
26482648 const hook = updateWorkInProgressHook ( ) ;
26492649 const resolvedCurrentHook : Hook = ( currentHook : any ) ;
26502650 const prevValue : T = resolvedCurrentHook . memoizedState ;
2651- return updateDeferredValueImpl ( hook , prevValue , value ) ;
2651+ return updateDeferredValueImpl ( hook , prevValue , value , initialValue ) ;
26522652}
26532653
2654- function rerenderDeferredValue < T > ( value : T ) : T {
2654+ function rerenderDeferredValue < T > ( value : T , initialValue ? : T ) : T {
26552655 const hook = updateWorkInProgressHook ( ) ;
26562656 if ( currentHook === null ) {
26572657 // This is a rerender during a mount.
@@ -2660,11 +2660,16 @@ function rerenderDeferredValue<T>(value: T): T {
26602660 } else {
26612661 // This is a rerender during an update.
26622662 const prevValue : T = currentHook . memoizedState ;
2663- return updateDeferredValueImpl ( hook , prevValue , value ) ;
2663+ return updateDeferredValueImpl ( hook , prevValue , value , initialValue ) ;
26642664 }
26652665}
26662666
2667- function updateDeferredValueImpl< T > (hook: Hook, prevValue: T, value: T): T {
2667+ function updateDeferredValueImpl< T > (
2668+ hook: Hook,
2669+ prevValue: T,
2670+ value: T,
2671+ initialValue: ?T,
2672+ ): T {
26682673 const shouldDeferValue = ! includesOnlyNonUrgentLanes ( renderLanes ) ;
26692674 if ( shouldDeferValue ) {
26702675 // This is an urgent update. If the value has changed, keep using the
@@ -3633,10 +3638,10 @@ if (__DEV__) {
36333638 mountHookTypesDev ( ) ;
36343639 return mountDebugValue ( value , formatterFn ) ;
36353640 } ,
3636- useDeferredValue< T > (value: T): T {
3641+ useDeferredValue< T > (value: T, initialValue?: T ): T {
36373642 currentHookNameInDev = 'useDeferredValue' ;
36383643 mountHookTypesDev ( ) ;
3639- return mountDeferredValue ( value ) ;
3644+ return mountDeferredValue ( value , initialValue ) ;
36403645 } ,
36413646 useTransition(): [boolean, (() => void ) => void ] {
36423647 currentHookNameInDev = 'useTransition' ;
@@ -3802,10 +3807,10 @@ if (__DEV__) {
38023807 updateHookTypesDev ( ) ;
38033808 return mountDebugValue ( value , formatterFn ) ;
38043809 } ,
3805- useDeferredValue< T > (value: T): T {
3810+ useDeferredValue< T > (value: T, initialValue?: T ): T {
38063811 currentHookNameInDev = 'useDeferredValue' ;
38073812 updateHookTypesDev ( ) ;
3808- return mountDeferredValue ( value ) ;
3813+ return mountDeferredValue ( value , initialValue ) ;
38093814 } ,
38103815 useTransition(): [boolean, (() => void ) => void ] {
38113816 currentHookNameInDev = 'useTransition' ;
@@ -3975,10 +3980,10 @@ if (__DEV__) {
39753980 updateHookTypesDev ( ) ;
39763981 return updateDebugValue ( value , formatterFn ) ;
39773982 } ,
3978- useDeferredValue< T > (value: T): T {
3983+ useDeferredValue< T > (value: T, initialValue?: T ): T {
39793984 currentHookNameInDev = 'useDeferredValue' ;
39803985 updateHookTypesDev ( ) ;
3981- return updateDeferredValue ( value ) ;
3986+ return updateDeferredValue ( value , initialValue ) ;
39823987 } ,
39833988 useTransition(): [boolean, (() => void ) => void ] {
39843989 currentHookNameInDev = 'useTransition' ;
@@ -4147,10 +4152,10 @@ if (__DEV__) {
41474152 updateHookTypesDev ( ) ;
41484153 return updateDebugValue ( value , formatterFn ) ;
41494154 } ,
4150- useDeferredValue< T > (value: T): T {
4155+ useDeferredValue< T > (value: T, initialValue?: T ): T {
41514156 currentHookNameInDev = 'useDeferredValue' ;
41524157 updateHookTypesDev ( ) ;
4153- return rerenderDeferredValue ( value ) ;
4158+ return rerenderDeferredValue ( value , initialValue ) ;
41544159 } ,
41554160 useTransition(): [boolean, (() => void ) => void ] {
41564161 currentHookNameInDev = 'useTransition' ;
@@ -4331,11 +4336,11 @@ if (__DEV__) {
43314336 mountHookTypesDev ( ) ;
43324337 return mountDebugValue ( value , formatterFn ) ;
43334338 } ,
4334- useDeferredValue< T > (value: T): T {
4339+ useDeferredValue< T > (value: T, initialValue?: T ): T {
43354340 currentHookNameInDev = 'useDeferredValue' ;
43364341 warnInvalidHookAccess ( ) ;
43374342 mountHookTypesDev ( ) ;
4338- return mountDeferredValue ( value ) ;
4343+ return mountDeferredValue ( value , initialValue ) ;
43394344 } ,
43404345 useTransition(): [boolean, (() => void ) => void ] {
43414346 currentHookNameInDev = 'useTransition' ;
@@ -4529,11 +4534,11 @@ if (__DEV__) {
45294534 updateHookTypesDev ( ) ;
45304535 return updateDebugValue ( value , formatterFn ) ;
45314536 } ,
4532- useDeferredValue< T > (value: T): T {
4537+ useDeferredValue< T > (value: T, initialValue?: T ): T {
45334538 currentHookNameInDev = 'useDeferredValue' ;
45344539 warnInvalidHookAccess ( ) ;
45354540 updateHookTypesDev ( ) ;
4536- return updateDeferredValue ( value ) ;
4541+ return updateDeferredValue ( value , initialValue ) ;
45374542 } ,
45384543 useTransition(): [boolean, (() => void ) => void ] {
45394544 currentHookNameInDev = 'useTransition' ;
@@ -4727,11 +4732,11 @@ if (__DEV__) {
47274732 updateHookTypesDev ( ) ;
47284733 return updateDebugValue ( value , formatterFn ) ;
47294734 } ,
4730- useDeferredValue< T > (value: T): T {
4735+ useDeferredValue< T > (value: T, initialValue?: T ): T {
47314736 currentHookNameInDev = 'useDeferredValue' ;
47324737 warnInvalidHookAccess ( ) ;
47334738 updateHookTypesDev ( ) ;
4734- return rerenderDeferredValue ( value ) ;
4739+ return rerenderDeferredValue ( value , initialValue ) ;
47354740 } ,
47364741 useTransition(): [boolean, (() => void ) => void ] {
47374742 currentHookNameInDev = 'useTransition' ;
0 commit comments