@@ -2638,20 +2638,20 @@ function updateMemo<T>(
2638
2638
return nextValue ;
2639
2639
}
2640
2640
2641
- function mountDeferredValue < T > ( value : T ) : T {
2641
+ function mountDeferredValue < T > ( value : T , initialValue ? : T ) : T {
2642
2642
const hook = mountWorkInProgressHook ( ) ;
2643
2643
hook . memoizedState = value ;
2644
2644
return value ;
2645
2645
}
2646
2646
2647
- function updateDeferredValue < T > ( value : T ) : T {
2647
+ function updateDeferredValue < T > ( value : T , initialValue ? : T ) : T {
2648
2648
const hook = updateWorkInProgressHook ( ) ;
2649
2649
const resolvedCurrentHook : Hook = ( currentHook : any ) ;
2650
2650
const prevValue : T = resolvedCurrentHook . memoizedState ;
2651
- return updateDeferredValueImpl ( hook , prevValue , value ) ;
2651
+ return updateDeferredValueImpl ( hook , prevValue , value , initialValue ) ;
2652
2652
}
2653
2653
2654
- function rerenderDeferredValue < T > ( value : T ) : T {
2654
+ function rerenderDeferredValue < T > ( value : T , initialValue ? : T ) : T {
2655
2655
const hook = updateWorkInProgressHook ( ) ;
2656
2656
if ( currentHook === null ) {
2657
2657
// This is a rerender during a mount.
@@ -2660,11 +2660,16 @@ function rerenderDeferredValue<T>(value: T): T {
2660
2660
} else {
2661
2661
// This is a rerender during an update.
2662
2662
const prevValue : T = currentHook . memoizedState ;
2663
- return updateDeferredValueImpl ( hook , prevValue , value ) ;
2663
+ return updateDeferredValueImpl ( hook , prevValue , value , initialValue ) ;
2664
2664
}
2665
2665
}
2666
2666
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 {
2668
2673
const shouldDeferValue = ! includesOnlyNonUrgentLanes ( renderLanes ) ;
2669
2674
if ( shouldDeferValue ) {
2670
2675
// This is an urgent update. If the value has changed, keep using the
@@ -3633,10 +3638,10 @@ if (__DEV__) {
3633
3638
mountHookTypesDev ( ) ;
3634
3639
return mountDebugValue ( value , formatterFn ) ;
3635
3640
} ,
3636
- useDeferredValue< T > (value: T): T {
3641
+ useDeferredValue< T > (value: T, initialValue?: T ): T {
3637
3642
currentHookNameInDev = 'useDeferredValue' ;
3638
3643
mountHookTypesDev ( ) ;
3639
- return mountDeferredValue ( value ) ;
3644
+ return mountDeferredValue ( value , initialValue ) ;
3640
3645
} ,
3641
3646
useTransition(): [boolean, (() => void ) => void ] {
3642
3647
currentHookNameInDev = 'useTransition' ;
@@ -3802,10 +3807,10 @@ if (__DEV__) {
3802
3807
updateHookTypesDev ( ) ;
3803
3808
return mountDebugValue ( value , formatterFn ) ;
3804
3809
} ,
3805
- useDeferredValue< T > (value: T): T {
3810
+ useDeferredValue< T > (value: T, initialValue?: T ): T {
3806
3811
currentHookNameInDev = 'useDeferredValue' ;
3807
3812
updateHookTypesDev ( ) ;
3808
- return mountDeferredValue ( value ) ;
3813
+ return mountDeferredValue ( value , initialValue ) ;
3809
3814
} ,
3810
3815
useTransition(): [boolean, (() => void ) => void ] {
3811
3816
currentHookNameInDev = 'useTransition' ;
@@ -3975,10 +3980,10 @@ if (__DEV__) {
3975
3980
updateHookTypesDev ( ) ;
3976
3981
return updateDebugValue ( value , formatterFn ) ;
3977
3982
} ,
3978
- useDeferredValue< T > (value: T): T {
3983
+ useDeferredValue< T > (value: T, initialValue?: T ): T {
3979
3984
currentHookNameInDev = 'useDeferredValue' ;
3980
3985
updateHookTypesDev ( ) ;
3981
- return updateDeferredValue ( value ) ;
3986
+ return updateDeferredValue ( value , initialValue ) ;
3982
3987
} ,
3983
3988
useTransition(): [boolean, (() => void ) => void ] {
3984
3989
currentHookNameInDev = 'useTransition' ;
@@ -4147,10 +4152,10 @@ if (__DEV__) {
4147
4152
updateHookTypesDev ( ) ;
4148
4153
return updateDebugValue ( value , formatterFn ) ;
4149
4154
} ,
4150
- useDeferredValue< T > (value: T): T {
4155
+ useDeferredValue< T > (value: T, initialValue?: T ): T {
4151
4156
currentHookNameInDev = 'useDeferredValue' ;
4152
4157
updateHookTypesDev ( ) ;
4153
- return rerenderDeferredValue ( value ) ;
4158
+ return rerenderDeferredValue ( value , initialValue ) ;
4154
4159
} ,
4155
4160
useTransition(): [boolean, (() => void ) => void ] {
4156
4161
currentHookNameInDev = 'useTransition' ;
@@ -4331,11 +4336,11 @@ if (__DEV__) {
4331
4336
mountHookTypesDev ( ) ;
4332
4337
return mountDebugValue ( value , formatterFn ) ;
4333
4338
} ,
4334
- useDeferredValue< T > (value: T): T {
4339
+ useDeferredValue< T > (value: T, initialValue?: T ): T {
4335
4340
currentHookNameInDev = 'useDeferredValue' ;
4336
4341
warnInvalidHookAccess ( ) ;
4337
4342
mountHookTypesDev ( ) ;
4338
- return mountDeferredValue ( value ) ;
4343
+ return mountDeferredValue ( value , initialValue ) ;
4339
4344
} ,
4340
4345
useTransition(): [boolean, (() => void ) => void ] {
4341
4346
currentHookNameInDev = 'useTransition' ;
@@ -4529,11 +4534,11 @@ if (__DEV__) {
4529
4534
updateHookTypesDev ( ) ;
4530
4535
return updateDebugValue ( value , formatterFn ) ;
4531
4536
} ,
4532
- useDeferredValue< T > (value: T): T {
4537
+ useDeferredValue< T > (value: T, initialValue?: T ): T {
4533
4538
currentHookNameInDev = 'useDeferredValue' ;
4534
4539
warnInvalidHookAccess ( ) ;
4535
4540
updateHookTypesDev ( ) ;
4536
- return updateDeferredValue ( value ) ;
4541
+ return updateDeferredValue ( value , initialValue ) ;
4537
4542
} ,
4538
4543
useTransition(): [boolean, (() => void ) => void ] {
4539
4544
currentHookNameInDev = 'useTransition' ;
@@ -4727,11 +4732,11 @@ if (__DEV__) {
4727
4732
updateHookTypesDev ( ) ;
4728
4733
return updateDebugValue ( value , formatterFn ) ;
4729
4734
} ,
4730
- useDeferredValue< T > (value: T): T {
4735
+ useDeferredValue< T > (value: T, initialValue?: T ): T {
4731
4736
currentHookNameInDev = 'useDeferredValue' ;
4732
4737
warnInvalidHookAccess ( ) ;
4733
4738
updateHookTypesDev ( ) ;
4734
- return rerenderDeferredValue ( value ) ;
4739
+ return rerenderDeferredValue ( value , initialValue ) ;
4735
4740
} ,
4736
4741
useTransition(): [boolean, (() => void ) => void ] {
4737
4742
currentHookNameInDev = 'useTransition' ;
0 commit comments