From 5f34822a66aacf13f3d7d221b93283d273f61ed6 Mon Sep 17 00:00:00 2001 From: Jonathan Kelley Date: Mon, 28 Oct 2024 22:11:21 -0700 Subject: [PATCH] Fix prevent_default on external link --- packages/router/src/components/link.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/router/src/components/link.rs b/packages/router/src/components/link.rs index c8054cfcd..94ed58925 100644 --- a/packages/router/src/components/link.rs +++ b/packages/router/src/components/link.rs @@ -272,6 +272,12 @@ pub fn Link(props: LinkProps) -> Element { if event.trigger_button() != Some(dioxus_elements::input_data::MouseButton::Primary) { return; } + + // todo(jon): this is extra hacky for no reason - we should fix prevent default on Links + if do_default && is_external && cfg!(target_arch = "wasm32") { + return; + } + event.prevent_default(); if do_default && is_router_nav { @@ -296,7 +302,7 @@ pub fn Link(props: LinkProps) -> Element { // If the event is a click with the left mouse button and no modifiers, prevent the default action // and navigate to the href with client side routing router.is_liveview().then_some( - "if (event.button === 0 && !event.ctrlKey && !event.metaKey && !event.shiftKey && !event.altKey) { event.preventDefault() }" + "if (event.button === 0 && !event.ctrlKey && !event.metaKey && !event.shiftKey && !event.altKey) { event.preventDefault() }" ) };