From f20e66ad24865050c97724bb50d076b6ff899075 Mon Sep 17 00:00:00 2001 From: MoonBrillante <32852571+MoonBrillante@users.noreply.github.com> Date: Mon, 10 Aug 2026 19:25:37 +0000 Subject: [PATCH] fix(router-core): qualify pagehide event listener --- packages/router-core/src/scroll-restoration.ts | 2 +- packages/router-core/tests/scroll-restoration.test.ts | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/router-core/src/scroll-restoration.ts b/packages/router-core/src/scroll-restoration.ts index 5e4ae0d3ee3..5039895e500 100644 --- a/packages/router-core/src/scroll-restoration.ts +++ b/packages/router-core/src/scroll-restoration.ts @@ -219,7 +219,7 @@ export function setupScrollRestoration(router: AnyRouter, force?: boolean) { } trackedScrollTargets.clear() }) - addEventListener('pagehide', () => { + window.addEventListener('pagehide', () => { snapshotCurrentScrollTargets( getKey( router.stores.resolvedLocation.get() ?? router.stores.location.get(), diff --git a/packages/router-core/tests/scroll-restoration.test.ts b/packages/router-core/tests/scroll-restoration.test.ts index c02a8f8783e..a720bfbaed9 100644 --- a/packages/router-core/tests/scroll-restoration.test.ts +++ b/packages/router-core/tests/scroll-restoration.test.ts @@ -71,9 +71,11 @@ describe('setupScrollRestoration', () => { expect(router._scroll.restoring).toBe(true) expect(router._scroll.restoration).toBe(true) expect(window.history.scrollRestoration).toBe('manual') - expect( - windowAddEventListener.mock.calls.some(([event]) => event === 'pagehide'), - ).toBe(true) + const pagehideCallIndex = windowAddEventListener.mock.calls.findIndex( + ([event]) => event === 'pagehide', + ) + expect(pagehideCallIndex).toBeGreaterThanOrEqual(0) + expect(windowAddEventListener.mock.contexts[pagehideCallIndex]).toBe(window) expect( documentAddEventListener.mock.calls.some( ([event, _listener, options]) => event === 'scroll' && options === true,