fix(nav): scroll-restore key auf nav.from.url, nicht location
All checks were successful
Build & Publish Docker Image / build-and-push (push) Successful in 2m51s
All checks were successful
Build & Publish Docker Image / build-and-push (push) Successful in 2m51s
Live-Test auf kochwas-dev offenbarte: bei Browser-Back hat der Browser die History bereits gepoppt, bevor SvelteKit beforeNavigate feuert — location.pathname war damit schon die Ziel-URL. recordScroll() schrieb also den 0-Wert der Recipe-Page in den Slot der Home-Page und wischte den eigentlich gemerkten Wert (z. B. 500) raus. Restore las dann 0, fiel unter MIN_RESTORE_Y und tat nichts. Fix: recordScroll(nav.from?.url) und restoreScroll(type, nav.to?.url). Helper bekommen die URL explizit reingereicht — keine Abhängigkeit mehr von location und damit kein Race mit der Browser-History. Tests: zusätzliche Regression "does not overwrite a stored URL when called with a different from-url" plus Skip-Pfade fuer null URLs. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -98,8 +98,8 @@
|
||||
}
|
||||
}
|
||||
|
||||
beforeNavigate(() => {
|
||||
recordScroll();
|
||||
beforeNavigate((nav) => {
|
||||
recordScroll(nav.from?.url);
|
||||
});
|
||||
|
||||
afterNavigate((nav) => {
|
||||
@@ -112,7 +112,7 @@
|
||||
// wurde.
|
||||
void wishlistStore.refresh();
|
||||
void shoppingCartStore.refresh();
|
||||
restoreScroll(nav.type);
|
||||
restoreScroll(nav.type, nav.to?.url);
|
||||
});
|
||||
|
||||
onMount(() => {
|
||||
|
||||
Reference in New Issue
Block a user