From b37604f8071741017a83f74a67b73cf7975827ae Mon Sep 17 00:00:00 2001 From: Xevion Date: Sun, 1 Feb 2026 01:08:00 -0600 Subject: [PATCH] fix(web): skip view transitions for same-page navigations Prevents document-level view transitions from blocking pointer events during query param updates (e.g. filter changes). Only use transitions when the pathname actually changes. --- web/src/lib/stores/navigation.svelte.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/web/src/lib/stores/navigation.svelte.ts b/web/src/lib/stores/navigation.svelte.ts index ef98ce7..0558adb 100644 --- a/web/src/lib/stores/navigation.svelte.ts +++ b/web/src/lib/stores/navigation.svelte.ts @@ -70,8 +70,14 @@ export function initNavigation() { }); onNavigate((navigation) => { - if (!document.startViewTransition) { - // No view transitions — update path when navigation completes + // Skip document-level view transitions for same-page navigations (e.g. + // query param updates from filter changes). Document transitions apply + // visibility:hidden to the entire page, blocking all pointer interaction. + const fromPath = navigation.from?.url.pathname; + const toPath = navigation.to?.url.pathname; + const isPageChange = fromPath !== toPath; + + if (!document.startViewTransition || !isPageChange) { navigation.complete.then(() => { navbar.path = window.location.pathname; });