diff --git a/templates/src/client/app.ts b/templates/src/client/app.ts index 36018ad..52f80dd 100644 --- a/templates/src/client/app.ts +++ b/templates/src/client/app.ts @@ -106,17 +106,18 @@ export function scroll_state() { }; } -export function navigate(target: Target, id: number, has_scroll = false): Promise { +export function navigate(target: Target, id: number, noscroll = false): Promise { if (id) { // popstate or initial navigation cid = id; } else { - const current_scroll = scroll_state() + const current_scroll = scroll_state(); + // clicked on a link. preserve scroll state scroll_history[cid] = current_scroll; id = cid = ++uid; - scroll_history[cid] = has_scroll ? current_scroll : { x: 0, y: 0 }; + scroll_history[cid] = noscroll ? current_scroll : { x: 0, y: 0 }; } cid = id; diff --git a/templates/src/client/start/index.ts b/templates/src/client/start/index.ts index a34f6b2..4d64506 100644 --- a/templates/src/client/start/index.ts +++ b/templates/src/client/start/index.ts @@ -102,9 +102,9 @@ function handle_click(event: MouseEvent) { if (url.pathname === location.pathname && url.search === location.search) return; const target = select_route(url); - const has_scroll = a.hasAttribute('sapper-noscroll') if (target) { - navigate(target, null, has_scroll); + const noscroll = a.hasAttribute('sapper-noscroll') + navigate(target, null, noscroll); event.preventDefault(); history.pushState({ id: cid }, '', url.href); }