From 12633cdf89710bd13b7f1b70fca83f4d65773f21 Mon Sep 17 00:00:00 2001 From: caalador Date: Fri, 20 Sep 2024 16:21:57 +0300 Subject: [PATCH] fix: close overlay drawer on click (#19984) * fix: close overlay drawer on click Close the overlay drawer even when clicking on same link and no actual navigation happens. Fixes #19823 * reset fromAnchor for navigation This in case the flag has for some reason not been reset after a click. --- .../main/resources/com/vaadin/flow/server/frontend/Flow.tsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/flow-server/src/main/resources/com/vaadin/flow/server/frontend/Flow.tsx b/flow-server/src/main/resources/com/vaadin/flow/server/frontend/Flow.tsx index 0f3a34c4e20..1849fd86311 100644 --- a/flow-server/src/main/resources/com/vaadin/flow/server/frontend/Flow.tsx +++ b/flow-server/src/main/resources/com/vaadin/flow/server/frontend/Flow.tsx @@ -239,6 +239,8 @@ function Flow() { // in order to get a server round-trip even when navigating to the same URL again fromAnchor.current = true; navigate(path); + // Dispatch close event for overlay drawer on click navigation. + window.dispatchEvent(new CustomEvent('close-overlay-drawer')); }, [navigate]); const vaadinRouterGoEventHandler = useCallback((event: CustomEvent) => { @@ -255,6 +257,7 @@ function Flow() { const vaadinNavigateEventHandler = useCallback((event: CustomEvent<{state: unknown, url: string, replace?: boolean, callback: boolean}>) => { const path = '/' + event.detail.url; navigated.current = !event.detail.callback; + fromAnchor.current = false; navigate(path, { state: event.detail.state, replace: event.detail.replace}); }, [navigate]);