From 7734d3d621079a4fd59ca317d93581d72f409b6d Mon Sep 17 00:00:00 2001 From: Vaadin Bot Date: Fri, 20 Sep 2024 16:19:26 +0200 Subject: [PATCH] fix: close overlay drawer on click (#19984) (#20016) * 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. Co-authored-by: caalador --- .../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 fbf9bad2224..cea61fa962b 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 @@ -188,6 +188,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) => { @@ -204,6 +206,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]);