@@ -2184,7 +2184,7 @@ export function createRouter(init: RouterInit): Router {
2184
2184
2185
2185
let match = getTargetMatch ( matches , path ) ;
2186
2186
2187
- pendingPreventScrollReset = ( opts && opts . preventScrollReset ) === true ;
2187
+ let preventScrollReset = ( opts && opts . preventScrollReset ) === true ;
2188
2188
2189
2189
if ( submission && isMutationMethod ( submission . formMethod ) ) {
2190
2190
handleFetcherAction (
@@ -2195,6 +2195,7 @@ export function createRouter(init: RouterInit): Router {
2195
2195
matches ,
2196
2196
fogOfWar . active ,
2197
2197
flushSync ,
2198
+ preventScrollReset ,
2198
2199
submission
2199
2200
) ;
2200
2201
return ;
@@ -2211,6 +2212,7 @@ export function createRouter(init: RouterInit): Router {
2211
2212
matches ,
2212
2213
fogOfWar . active ,
2213
2214
flushSync ,
2215
+ preventScrollReset ,
2214
2216
submission
2215
2217
) ;
2216
2218
}
@@ -2225,6 +2227,7 @@ export function createRouter(init: RouterInit): Router {
2225
2227
requestMatches : AgnosticDataRouteMatch [ ] ,
2226
2228
isFogOfWar : boolean ,
2227
2229
flushSync : boolean ,
2230
+ preventScrollReset : boolean ,
2228
2231
submission : Submission
2229
2232
) {
2230
2233
interruptActiveLoads ( ) ;
@@ -2339,6 +2342,7 @@ export function createRouter(init: RouterInit): Router {
2339
2342
updateFetcherState ( key , getLoadingFetcher ( submission ) ) ;
2340
2343
return startRedirectNavigation ( fetchRequest , actionResult , false , {
2341
2344
fetcherSubmission : submission ,
2345
+ preventScrollReset,
2342
2346
} ) ;
2343
2347
}
2344
2348
}
@@ -2453,7 +2457,8 @@ export function createRouter(init: RouterInit): Router {
2453
2457
return startRedirectNavigation (
2454
2458
revalidationRequest ,
2455
2459
redirect . result ,
2456
- false
2460
+ false ,
2461
+ { preventScrollReset }
2457
2462
) ;
2458
2463
}
2459
2464
@@ -2466,7 +2471,8 @@ export function createRouter(init: RouterInit): Router {
2466
2471
return startRedirectNavigation (
2467
2472
revalidationRequest ,
2468
2473
redirect . result ,
2469
- false
2474
+ false ,
2475
+ { preventScrollReset }
2470
2476
) ;
2471
2477
}
2472
2478
@@ -2534,6 +2540,7 @@ export function createRouter(init: RouterInit): Router {
2534
2540
matches : AgnosticDataRouteMatch [ ] ,
2535
2541
isFogOfWar : boolean ,
2536
2542
flushSync : boolean ,
2543
+ preventScrollReset : boolean ,
2537
2544
submission ?: Submission
2538
2545
) {
2539
2546
let existingFetcher = state . fetchers . get ( key ) ;
@@ -2630,7 +2637,9 @@ export function createRouter(init: RouterInit): Router {
2630
2637
return ;
2631
2638
} else {
2632
2639
fetchRedirectIds . add ( key ) ;
2633
- await startRedirectNavigation ( fetchRequest , result , false ) ;
2640
+ await startRedirectNavigation ( fetchRequest , result , false , {
2641
+ preventScrollReset,
2642
+ } ) ;
2634
2643
return ;
2635
2644
}
2636
2645
}
@@ -2673,10 +2682,12 @@ export function createRouter(init: RouterInit): Router {
2673
2682
{
2674
2683
submission,
2675
2684
fetcherSubmission,
2685
+ preventScrollReset,
2676
2686
replace,
2677
2687
} : {
2678
2688
submission ?: Submission ;
2679
2689
fetcherSubmission ?: Submission ;
2690
+ preventScrollReset ?: boolean ;
2680
2691
replace ?: boolean ;
2681
2692
} = { }
2682
2693
) {
@@ -2757,7 +2768,7 @@ export function createRouter(init: RouterInit): Router {
2757
2768
formAction : location ,
2758
2769
} ,
2759
2770
// Preserve these flags across redirects
2760
- preventScrollReset : pendingPreventScrollReset ,
2771
+ preventScrollReset : preventScrollReset || pendingPreventScrollReset ,
2761
2772
enableViewTransition : isNavigation
2762
2773
? pendingViewTransitionEnabled
2763
2774
: undefined ,
@@ -2774,7 +2785,7 @@ export function createRouter(init: RouterInit): Router {
2774
2785
// Send fetcher submissions through for shouldRevalidate
2775
2786
fetcherSubmission,
2776
2787
// Preserve these flags across redirects
2777
- preventScrollReset : pendingPreventScrollReset ,
2788
+ preventScrollReset : preventScrollReset || pendingPreventScrollReset ,
2778
2789
enableViewTransition : isNavigation
2779
2790
? pendingViewTransitionEnabled
2780
2791
: undefined ,
0 commit comments